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;

Matlab(用矩阵的除法替代逆运算的操作(inv))
文章图片

(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))
文章图片

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); % 加括号后结果正确

【Matlab(用矩阵的除法替代逆运算的操作(inv))】Matlab(用矩阵的除法替代逆运算的操作(inv))
文章图片

    推荐阅读