Матричный квадратный корень
X = sqrtm(A)
[X,resnorm]
= sqrtm(A)
Вычислите квадратный корень из этой матрицы. Поскольку эти числа не являются символьными объектами, вы получаете результаты с плавающей точкой.
A = [2 -2 0; -1 3 0; -1/3 5/3 2]; X = sqrtm(A)
X = 1.3333 -0.6667 0.0000 -0.3333 1.6667 -0.0000 -0.0572 0.5286 1.4142
Теперь, преобразуйте эту матрицу в символьный объект и вычислите его квадратный корень снова:
A = sym([2 -2 0; -1 3 0; -1/3 5/3 2]); X = sqrtm(A)
X = [ 4/3, -2/3, 0] [ -1/3, 5/3, 0] [ (2*2^(1/2))/3 - 1, 1 - 2^(1/2)/3, 2^(1/2)]
Проверяйте правильность результата:
isAlways(X^2 == A)
ans = 3×3 logical array 1 1 1 1 1 1 1 1 1
Используйте синтаксис с двумя выходными аргументами, чтобы возвратить квадратный корень из матрицы и невязки:
A = vpa(sym([0 0; 0 5/3]), 100); [X,resnorm] = sqrtm(A)
X = [ 0, 0] [ 0, 1.2909944487358056283930884665941] resnorm = 2.9387358770557187699218413430556e-40
Вызов sqrtm
для матрицы, которая не является символьным объектом, вызывает функцию MATLAB® sqrtm
.