Matlab中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A矩阵是非奇异方阵,则A\B是A的逆矩阵乘B,即inv(A)*B;而B/A是B乘A的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算.
通常:
x=A\B就是A*x=B的解;
x=B/A就是x*A=B的解.
当B与A矩阵行数相等可进行左除.如果A是方阵,用高斯消元法分解因数.解方程:A*x(:, j)=B(:, j),式中的(:, j)表示B矩阵的第j列,返回的结果x具有与B矩阵相同的阶数,如果A是奇异矩阵将给出警告信息.
如果A矩阵不是方阵,可由以列为基准的Householder正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m×n的x矩阵.m是A矩阵的列数,n是B矩阵的列数.每个矩阵的列向量最多有k个非零元素,k 是A的有效秩.
加点(.)是对每个元素运算
你如果直接/,matlab知道这个标量要除以那个矩阵元素哪?
当然要./,指标量对每个矩阵元素都做一次除法,
也就是你要的结果了.
类似还有.*和*
F=G*M*m./r.^2(这样就可以了。
标量除以矩阵需要./
M,m,G是数值,而r是数组。只能用点除。所以F=G*M*m/r.^2是错的。