在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;
2、三个元素
P.s.:注意 加括号
% 用 A*(B\C) 替换 A*inv(B)*CA = [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); % 加括号后结果正确