Matlab左 - 向量分裂?

llb*_*nll 2 matlab division

X = [1; 2; 3]

x =

 1
 2
 3
Run Code Online (Sandbox Code Playgroud)

Y = [4; 5; 6]

y =

 4
 5
 6
Run Code Online (Sandbox Code Playgroud)

X\Y ^

ans =

2.2857
Run Code Online (Sandbox Code Playgroud)

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

Par*_*kar 5

从MATLAB文档\:

如果A是M-by-N矩阵,M < or > N并且B是具有M个分量的列向量,或者是具有几个这样的列的矩阵,那么X = A\B对于欠方差或超定方程系统,则是最小二乘意义上的解A*X = B.

在这里,您的系统不会过度/过度确定.由于两者都有3行.因此,您可以将您的等式可视化为:

xM=y
M=inv(x)*y
Run Code Online (Sandbox Code Playgroud)

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

M=pinv(x)*y;
Run Code Online (Sandbox Code Playgroud)

您将获得M的值2.2857.

另一种解释是:它将为您提供xM=y最小二乘意义上的解决方案.您可以按如下方式验证:

M=lsqr(x,y)
Run Code Online (Sandbox Code Playgroud)

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

您可以随时help \在MATLAB命令窗口中获取更多信息.

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