Matlab:用矩阵的除法替代逆运算的操作(inv)

在matlab中直接用逆运算常常会提示,建议用矩阵的左除或右除替换,因为inv(A)*b速度更慢且准确度更低。

matlab中部分详细信息:为了求解线性方程组,矩阵的逆主要是理论值。 切勿使用矩阵的逆 ,即 x = inv(A)*b 来求解线性系统 Ax = b,因为它缓慢且不准确。 

1、两个元素 

(1)用 A\b 替换 inv(A)*b

% 用 A\b 替换 inv(A)*b
A = [1 2;3 4];
b = [5;6];
a1 = inv(A)*b;
a2 = A\b;

(2) 用 b/A 替换 b*inv(A)

% 用 b/A 替换 b*inv(A)
A = [1 2;3 4];
b = [5 6];
a1 = b*inv(A);
a2 = b/A;

Matlab:用矩阵的除法替代逆运算的操作(inv)_第1张图片

2、三个元素 

P.s.:注意 加括号

% 用 A*(B\C) 替换 A*inv(B)*C

A = [1 2;3 4];B = [7 8;5 6];C = [5 6;1 2];
a1 = A*inv(B)*C;
a2 = A/B*C;

a3 = A*B\C; % 结果错误 必须加括号

a4 = A*(B\C); % 加括号后结果正确

Matlab:用矩阵的除法替代逆运算的操作(inv)_第2张图片

你可能感兴趣的:(matlab)