Matlab左 - 向量分裂?

时间:2013-03-02 00:27:11

标签: matlab division

  
    

X = [1; 2; 3]

  

x =

 1
 2
 3
  
    

Y = [4; 5; 6]

  

y =

 4
 5
 6
  
    

X \ý

  

ans =

2.2857

Matlab是如何找到结果的? (我搜索过许多论坛,但我不明白他们告诉了什么。我想知道给出这个结果的算法。)

2 个答案:

答案 0 :(得分:5)

来自\的MATLAB文档:

如果A是具有M-by-N的{​​{1}}矩阵,B是具有M个分量的列向量,或具有多个此类列的矩阵,则M < or > N是最小二乘法中的解对欠定或超定方程组X = A\B的意义。

此处您的系统未被过度/过度确定。由于两者都有3行。因此,您可以将您的等式可视化为:

A*X = B

现在,由于矩阵不是方形,它将使用SVD计算伪逆。因此,

xM=y
M=inv(x)*y

您将获得M的值为2.2857。

另一种解释是:它将为您提供M=pinv(x)*y; 在最小二乘意义上的解决方案。您可以按如下方式验证:

xM=y

这将为您提供M = 2.2857的值。

您可以随时在MATLAB命令窗口中执行M=lsqr(x,y) 以获取更多信息。

建议您查看有关最小二乘和伪逆的更多详细信息。

答案 1 :(得分:-1)

本文档应解释

http://www.mathworks.com/help/matlab/ref/mrdivide.html

以下是算法的链接

http://www.maths.lth.se/na/courses/NUM115/NUM115-11/backslash.html

您可以更轻松地在matlab中查看源代码。 (我没有本地的所以我无法检查,但matlab中有很多matlab函数的来源)