Как найти ранг матрицы в matlab

Main Content

Syntax

Description

example

k = rank(A) returns the rank of
matrix A.

Use sprank to determine the
structural rank of a sparse matrix.

example

k = rank(A,tol)
specifies a different tolerance to use in the rank computation. The rank is computed
as the number of singular values of A that are larger than
tol.

Examples

collapse all

Rank of Matrix

Determine whether a matrix is full rank.

Create a 3-by-3 matrix. The values in the third column are twice as large as those in the second column.

A = [3 2 4; -1 1 2; 9 5 10]
A = 3×3

     3     2     4
    -1     1     2
     9     5    10

Calculate the rank of the matrix. If the matrix is full rank, then the rank is equal to the number of columns, size(A,2).

Since the columns are linearly dependent, the matrix is rank deficient.

Specify Rank Tolerance

Calculate the rank of a matrix using a tolerance.

Create a 4-by-4 diagonal matrix. The diagonal has one small value equal to 1e-15.

A = [10 0 0 0; 0 25 0 0; 0 0 34 0; 0 0 0 1e-15]
A = 4×4

   10.0000         0         0         0
         0   25.0000         0         0
         0         0   34.0000         0
         0         0         0    0.0000

Calculate the rank of the matrix.

The matrix is not considered to be full rank, since the default algorithm calculates the number of singular values larger than max(size(A))*eps(norm(A)). For this matrix, the small value on the diagonal is excluded since it is smaller than the tolerance.

Calculate the rank of the matrix again, but specify a tolerance of 1e-16.

Input Arguments

collapse all

AInput matrix
matrix

Input matrix.

Data Types: single | double
Complex Number Support: Yes

tolTolerance
max(size(A))*eps(norm(A)) | scalar

Tolerance, specified as a scalar. See the Algorithms
section for more information.

Example: rank(A,1e-5)

More About

collapse all

Rank

The number of linearly independent columns in a matrix is the
rank of the matrix. The row and column rank of a matrix are
always equal.

A matrix is full rank if its rank is the highest possible for
a matrix of the same size, and rank deficient if it does not
have full rank. The rank gives a measure of the dimension of the
range or column space of the matrix,
which is the collection of all linear combinations of the columns.

Algorithms

rank uses a method based on the singular value decomposition, or
SVD. The SVD algorithm is more time consuming than some alternatives, but it is also the
most reliable.

The rank of a matrix A is computed as the number of singular values
that are larger than a tolerance. By default, the tolerance is
max(size(A))*eps(norm(A)). However, you can specify a different
tolerance with the command rank(A,tol).

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

  • Code generation does not support sparse matrix inputs for this
    function.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

Usage notes and limitations:

  • Code generation does not support
    sparse matrix inputs for this function.

Thread-Based Environment
Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool.

This function fully supports thread-based environments. For
more information, see Run MATLAB Functions in Thread-Based Environment.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

This function fully supports distributed arrays. For more
information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).

Version History

Introduced before R2006a

  • Trial Software
  • Trial Software
  • Product Updates
  • Product Updates

rank

Синтаксис

Описание

пример

k = rank(A) возвращает ранг матричного A.

Использование sprank определить структурный ранг разреженной матрицы.

пример

k = rank(A,tol) задает различный допуск, чтобы использовать в расчете ранга. Ранг вычисляется как число сингулярных значений A это больше, чем tol.

Примеры

свернуть все

Ранг матрицы

Определите, является ли матрица полным рангом.

Создайте 3х3 матрицу. Значения в третьем столбце являются вдвое более большими, чем те во втором столбце.

A = [3 2 4; -1 1 2; 9 5 10]
A = 3×3

     3     2     4
    -1     1     2
     9     5    10

Вычислите ранг матрицы. Если матрица является полным рангом, то ранг равен количеству столбцов, size(A,2).

Поскольку столбцы линейно зависимы, матрица имеет неполный ранг.

Задайте допуск ранга

Вычислите ранг матрицы с помощью допуска.

Создайте диагональную матрицу 4 на 4. Диагональ имеет одно маленькое значение, равное 1e-15.

A = [10 0 0 0; 0 25 0 0; 0 0 34 0; 0 0 0 1e-15]
A = 4×4

   10.0000         0         0         0
         0   25.0000         0         0
         0         0   34.0000         0
         0         0         0    0.0000

Вычислите ранг матрицы.

Матрица не считается полным рангом, поскольку алгоритм по умолчанию вычисляет число сингулярных значений, больше, чем max(size(A))*eps(norm(A)). Для этой матрицы исключено маленькое значение на диагонали, поскольку это меньше, чем допуск.

Вычислите ранг матрицы снова, но задайте допуск 1e-16.

Входные параметры

свернуть все

AВведите матрицу
матрица

Введите матрицу.

Типы данных: single | double
Поддержка комплексного числа: Да

tol Допуск
max(size(A))*eps(norm(A)) | скаляр

Допуск в виде скаляра. Смотрите раздел Algorithms для получения дополнительной информации.

Пример: rank(A,1e-5)

Больше о

свернуть все

Ранг

Количество линейно независимых столбцов в матрице является рангом матрицы. Ранг строки и столбца матрицы всегда равен.

Матрица A является полным рангом, если его ранг является максимально возможным для матрицы, одного размера, и неполный ранг, если это не имеет полного ранга. Ранг дает меру размерности области значений или пробела столбца матрицы, которая является набором всех линейных комбинаций столбцов.

Алгоритмы

rank использует метод на основе сингулярного разложения или SVD. Алгоритм SVD является более трудоемким, чем некоторые альтернативы, но это является также самым надежным.

Ранг матричного A вычисляется как число сингулярных значений, которые больше, чем допуск. По умолчанию допуском является max(size(A))*eps(norm(A)). Однако можно задать различный допуск с командой rank(A,tol).

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Указания и ограничения по применению:

  • Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Указания и ограничения по применению:

  • Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.

Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool.

Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.

Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).

Представлено до R2006a

rank

Rank of a matrix

Syntax

  • k = rank(A)
    k = rank(A,tol)
    

Description

The rank function provides an estimate of the number of linearly independent rows or columns of a full matrix.

k = rank(A)
returns the number of singular values of A that are larger than the default tolerance, max(size(A))*norm(A)*eps.

k = rank(A,tol)
returns the number of singular values of A that are larger than tol.

Remark

Use sprank to determine the structural rank of a sparse matrix.

Algorithm

There are a number of ways to compute the rank of a matrix. MATLAB uses the method based on the singular value decomposition, or SVD. The SVD algorithm is the most time consuming, but also the most reliable.

The rank algorithm is

  • s = svd(A);
    tol = max(size(A))*s(1)*eps;
    r = sum(s > tol);
    

See Also

sprank

References

[1]  Anderson, E., Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra,
J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen,
LAPACK User’s Guide (http://www.netlib.org/lapack/lug/
lapack_lug.html), Third Edition, SIAM, Philadelphia, 1999.

   randperm   rat, rats 

Определитель и ранг матрицы

Для нахождения
определителя
(детерминанта)
и
ранга матриц в MATLAB имеются следующие
функции:

  • det(X) — возвращает
    определитель квадратной матрицы X. Если
    X содержит только целые элементы, то
    результат — тоже целое число. Использование
    det(X)=0 как теста на вырожденность матрицы
    действительно только для матрицы малого
    порядка с целыми элементами.

Пример:

»
А=[2,3,6;1,8,4;3,6,7] 

А

2

3

6

1

8

4

3

6

7

»
det(A)

ans

-29

Ранг матрицы
определяется количеством сингулярных
чисел, превышающих порог

Для вычисления
ранга используется функция rank:

  • rank (А) — возвращает
    количество сингулярных чисел, которые
    являются большими, чем заданный по
    умолчанию допуск; 

  • rank(A,tol) — возвращает
    количество сингулярных чисел, которые
    превышают tol.

Пример:

»
rank(A,1)

ans= 3

Обращение
матриц — функция inv

Обращение матриц — одна из наиболее
распространенных операций матричного
анализа. Обратной
называют
матрицу, получаемую в результате деления
единичной матрицы Е на исходную матрицу
X. Таким образом, Х-1=Е/Х.
Следующие функции обеспечивают реализацию
данной операции:  inv(X) — возвращает
матрицу, обратную квадратной матрице
X. Предупреждающее сообщение выдается,
если X плохо масштабирована или близка
к вырожденной. Пример: »
inv(rand(4,4)) 
ans
=

2.2631
-2.3495 -0.4696 -0.6631

-0.7620
1.2122 1.7041 -1.2146

-2.0408
1.4228 1.5538 1.3730 

1.3075-0.0183-2.54830.6344

На практике вычисление явной
обратной матрицы не так уж необходимо.
Чаще операцию обращения применяют при
решении системы линейных уравнений
вида Ах=b. Один из путей решения этой
системы — вычисление x=inv(A)*b. Но лучшим
с точки зрения минимизации времени
расчета и повышения точности вычислений
является использование оператора
матричного деления х=Аb. Эта операция
использует метод исключения Гаусса без
явного формирования обратной матрицы.
Понятие о
многомерных массивах

В MATLAB двумерный массив является частным
случаем многомерного массива. Многомерные
массивы характеризуются размерностью
более двух. Таким массивам можно дать
наглядную интерпретацию. Так, матрицу
(двумерный массив) можно записать на
одном листе бумаги в виде строк и
столбцов, состоящих из элементов матрицы.
Тогда блокнот с такими листками можно
считать трехмерным массивом, полку в
шкафу с блокнотами — четырехмерным
массивом, шкаф со множеством полок —
пятимерным массивом и т. д.

Соседние файлы в папке Matlab

  • #
  • #

    20.02.201635.74 Mб80Инженерные расчеты в Mathcad Макаров 2005.djvu

·       
Length
(
V)
определяет
длину вектора
V;

·       
Prod
(
V)
или
prod
(
A,
K)
– вычисляет произведение элементов массива
V или произведения столбцов или
строк матрицы в зависимости от значения
k;

·       
Sum
(
V)
или
sum
(
A,
k)

вычисляет сумму элементов массива
V или сумму столбцов или строк
матрицы в зависимости от значения
k;

·       
Dot
(
v1,
v2)

вычисляет скалярное произведение векторов
v1 и v2, то же значение выдаст функция sum (v1.*v2);

·       
Cross
(
v1,
v2)
– определяет векторное произведение векторов
v1 и v2;

·       
Min
(
V)
находит
минимальный элемент массива
V,
вызов  в формате [
k, n]=min (V) дает возможность определить
минимальный элемент
k
и его номер в массиве
n;

·       
Max
(
V)
находит
максимальный элемент массива
V или при [k, n]=max (V) определяет максимум и его номер;

·       
Sort
(
V)
– выполняет упорядочивание массива
V;

·       
Det
(М)
  — вычисляет опеределитель квадратной матрицы
М;

·       
Rank
(
M)

определяет ранг матрицы М;

·       
Norm
(
M,
p)
возвращает
различные виды норм матрицы
M в зависимости от  p
(
p=1,
2
inf,
fro);

·       
Cond
(
M,
p)
возвращает
число обусловленности матрицы
M,
основанное на норме 
p;

·       
Eye
(
n,
m)
или
eye
(
n)

возвращает прямоугольную матрицу с единицами по главной диагонали или
квадратную единичную матрицу;

·       
Ones
(
n,
m)
или ones (n) – формирует
прямоугольную или квадратную матрицу, состоящую из единиц;

·       
Zeros
(
n,
m)
или
zeros
(
n)
– возвращает прямоугольную или квадратную нулевую матрицу;

·       
 Diag (V, n) или diag (V) – возвращает
квадратную матрицу с элементами
V
на
k
диагонали или элементами
V
на главной диагонали;

·       
Cat
(
n,
A,
B)
или
cat
(
n,
A,
B,
C,
…) –
объединяет матрицы A и B или все входящие матрицы;

·       
Inv
(
M)

возвращает матрицу, обратную к М;

·       
Eig
(
M)
– возвращает вектор собственных значений матрицы М, вызов функции в формате [
V, D]=eig (M) даст матрицу V, столбцы которой – собственные
векторы матрицы
M,
и диагональную матрицу
D,
содержащую собственные значения матрицы
M;

·       
Linsolve
(
A,
b)

возвращает решение системы линейных уравнений
A*x=b, вызов в формате  linsolve (A, b, options) позволяет задать
метод решения уравнения. Если задать функцию в виде [
x, r]= linsolve (A, b), то она вернет x – решение системы и r – ранг матрицы A.

·       
Rref
(
M)

осуществляет приведение матрицы М к треугольной форме, используя метод
исключений Гаусса;

·       
Chol
(
M)
возвращает
разложение по Халецкому для положительно определенной симметрической матрицы М;

·       
Lu
(
M)
выполняет
LU-разложение,
возвращает две матрицы: нижнюю треугольную
L  и верхнюю треугольную U;

·       
Gr
(
M)

выполняет
QR
– разложение, возвращает ортогональную матрицу
Q и верхнюю треугольную R;

Понравилась статья? Поделить с друзьями:
  • Брага пригорела как исправить
  • Как найти cos угла зная sin
  • Как найти в контакте мои встречи
  • Как составить план работы на неделю образец для работы
  • Как грамотно составить петицию