X = [1; 2; 3]Matlab左 - 向量中的划分?
X =
1
2
3
Y = [4; 5; 6]
Y =
4
5
6
X \ Y^
ANS =
2.2857
怎么Matlab的发现,结果呢? (我搜索很多论坛,但我不明白他们told.I想知道这给了此结果的算法是什么。)
X = [1; 2; 3]Matlab左 - 向量中的划分?
X =
1
2
3
Y = [4; 5; 6]
Y =
4
5
6
X \ Y^
ANS =
2.2857
怎么Matlab的发现,结果呢? (我搜索很多论坛,但我不明白他们told.I想知道这给了此结果的算法是什么。)
此文档应该说明它
http://www.mathworks.com/help/matlab/ref/mrdivide.html
这里是一个链接该算法
http://www.maths.lth.se/na/courses/NUM115/NUM115-11/backslash.html
你可以看到里面的matlab源更容易不过。 (我没有在本地,所以我不能检查,但很多功能的MATLAB的源可用内部MATLAB)
从\
MATLAB文档:
如果A是一个M-by-N
矩阵M <or> N
B是具有M个分量的列向量或者具有多个这种列的矩阵,那么X = A\B
是方程A*X = B
的欠方程或超定方程系统的最小二乘意义上的解。
在这里你的系统没有超出/超过确定。因为两者都有3行。所以,你可以想像你的公式为:现在
xM=y
M=inv(x)*y
,因为你的矩阵不是方形,它会用SVD计算伪逆。因此,
M=pinv(x)*y;
您将得到M的值为2.2857。
另一种解释可以是:它会给你最小二乘意义上的xM=y
的解决方案。你可以验证如下:
M=lsqr(x,y)
这会给你M = 2.2857的值。
您可以在MATLAB命令窗口中始终执行help \
以获取更多信息。
建议您检查有关最小二乘和伪逆的更多细节。