点除与矩阵除法

点除与矩阵除法: 
在书写程序的时候,点乘和矩阵乘法写错的时候再进行程序调适的 
时候MATLAB会返回错误说明。 
但是对于点除容易出现问题,下面以一个简单的例子说明这个问题:

比如我们要计算: 
A = [1,1]; 
B = [2,1]; 
C = A/B; 
上面的程序我们计算的是A与B的点除。但是由于疏忽而把点除“./” 
写为“/”这样结果是不同的,大家可以看看它们的结果:

>> A/B

ans =

    0.6000 
>> A./B

ans =

    0.5000    1.0000

它们的结果明显不同,而用“/”去代替“./”将在以后的计算中引 
起误差,程序语法错误很难调适。我们只能从期望的结果来检查程 
序。希望网友在书写向量或者矩阵的“点除”和“除法”运算的时 
候注意这一点。

下面我们看一下“A/B”的结果是怎么计算的(这里提供一段MATLAB 
文档):

/ Slash or matrix right division. B/A is roughly the same 
as B*inv(A). More precisely, B/A = (A'/B')'. See /.

/ Backslash or matrix left division. If A is a square matrix, 
A/B is roughly the same as inv(A)*B, except it is computed in 
a different way. If A is an n-by-n matrix and B is a column 
vector with n components, or a matrix with several such columns, 
then X = A/B is the solution to the equation AX = B computed by 
Gaussian elimination (see Algorithm for details). A warning 
message prints if A is badly scaled or nearly singular.

If A is an m-by-n matrix with m ~= n and B is a column vector 
with m components, or a matrix with several such columns, then 
X = A/B is the solution in the least squares sense to the under- 
or overdetermined system of equations AX = B. The effective rank, 
k, of A, is determined from the QR decomposition with pivoting 
(see "Algorithm" for details). A solution X is computed which has 
at most k nonzero components per column. If k < n, this is usually 
not the same solution as pinv(A)*B, which is the least squares 
solution with the smallest norm, ||X||.

也就是说A/B和A*pinv(B)输出的结果是一样的,如: 
>> A=[1,2,3];B=[1,2,1];A/B,A*pinv(B)

ans =

    1.3333


ans =

    1.3333


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值