orth

Ортонормированный базис для области значений символьной матрицы

Синтаксис

orth(A)
orth(A,'real')
orth(A,'skipnormalization')
orth(A,'real','skipnormalization')

Описание

пример

orth(A) вычисляет ортонормированный базис для области значений A.

пример

orth(A,'real') вычисляет ортонормированный базис с помощью действительного скалярного произведения в процессе ортогонализации.

пример

orth(A,'skipnormalization') вычисляет ненормированное ортогональное основание. В этом случае векторы, формирующие столбцы B, не обязательно имеют длину 1.

пример

orth(A,'real','skipnormalization') вычисляет ненормированное ортогональное основание с помощью действительного скалярного произведения в процессе ортогонализации.

Примеры

Вычислите ортонормированный базис

Вычислите ортонормированный базис области значений этой матрицы. Поскольку эти числа не являются символьными объектами, вы получаете результаты с плавающей точкой.

A = [2 -3 -1; 1 1 -1; 0 1 -1];
B = orth(A)
B =
   -0.9859   -0.1195    0.1168
    0.0290   -0.8108   -0.5846
    0.1646   -0.5729    0.8029

Теперь, преобразуйте эту матрицу в символьный объект и вычислите ортонормированный базис:

A = sym([2 -3 -1; 1 1 -1; 0 1 -1]);
B = orth(A)
B =
[ (2*5^(1/2))/5, -6^(1/2)/6, -(2^(1/2)*15^(1/2))/30]
[     5^(1/2)/5,  6^(1/2)/3,  (2^(1/2)*15^(1/2))/15]
[             0,  6^(1/2)/6,  -(2^(1/2)*15^(1/2))/6]

Можно использовать double, чтобы преобразовать этот результат в числовую форму с двойной точностью. Получившаяся матрица отличается от матрицы, возвращенной функцией MATLAB® orth, потому что эти функции используют различные версии алгоритма Ортогонализации Грама-Шмидта:

double(B)
ans =
    0.8944   -0.4082   -0.1826
    0.4472    0.8165    0.3651
         0    0.4082   -0.9129

Проверьте, что B'*B = I, где I является единичной матрицей:

B'*B
ans =
[ 1, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]

Теперь, проверьте, что 2-норма каждого столбца B равняется 1:

norm(B(:, 1))
norm(B(:, 2))
norm(B(:, 3))
ans =
1
 
ans =
1
 
ans =
1

Вычислите действительный ортонормированный базис

Вычислите ортонормированный базис этой матрицы с помощью 'real', чтобы избежать сопряженных комплексных чисел:

syms a
A = [a 1; 1 a];
B = orth(A,'real')
B =
[ a/(a^2 + 1)^(1/2),    -(a^2 - 1)/((a^2 + 1)*((a^2 -...
 1)^2/(a^2 + 1)^2 + (a^2*(a^2 - 1)^2)/(a^2 + 1)^2)^(1/2))]
[ 1/(a^2 + 1)^(1/2), (a*(a^2 - 1))/((a^2 + 1)*((a^2 -...
 1)^2/(a^2 + 1)^2 + (a^2*(a^2 - 1)^2)/(a^2 + 1)^2)^(1/2))]

Вычислите ортогональное основание путем пропуска нормализации

Вычислите ортогональное основание этой матрицы с помощью 'skipnormalization'. Длины итоговых векторов (столбцы матричного B) не требуются, чтобы быть 1

syms a
A = [a 1; 1 a];
B = orth(A,'skipnormalization')
B =
[ a,               -(a^2 - 1)/(a*conj(a) + 1)]
[ 1, -(conj(a) - a^2*conj(a))/(a*conj(a) + 1)]

Вычислите действительное ортогональное основание

Вычислите ортогональное основание этой матрицы с помощью 'skipnormalization' и 'real':

syms a
A = [a 1; 1 a];
B = orth(A,'skipnormalization','real')
B =
[ a,    -(a^2 - 1)/(a^2 + 1)]
[ 1, (a*(a^2 - 1))/(a^2 + 1)]

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

свернуть все

Введите, заданный как символьная матрица.

Больше о

свернуть все

Ортонормированный базис

Ортонормированным базисом для области значений матричного A является матричный B, такой что:

  • B'*B = I, где I является единичной матрицей.

  • Столбцы B охватывают тот же пробел как столбцы A.

  • Количество столбцов B является рангом A.

Советы

  • Вызов orth для числовых аргументов, которые не являются символьными объектами, вызывает функцию orth MATLAB. Результаты, возвращенные MATLAB, orth может отличаться от результатов, возвращенных orth, потому что эти две функции используют различные алгоритмы, чтобы вычислить ортонормированный базис. Функция orth Symbolic Math Toolbox™ использует классический алгоритм Ортогонализации Грама-Шмидта. Функция orth MATLAB использует измененный Алгоритм Грама-Шмидта, потому что классический алгоритм численно нестабилен.

  • Используя 'skipnormalization', чтобы вычислить ортогональное основание вместо ортонормированного базиса может ускорить ваши вычисления.

Алгоритмы

orth использует классический алгоритм Ортогонализации Грама-Шмидта.

Смотрите также

| | | |

Введенный в R2013a