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是如何找到结果的?(我搜索了很多论坛,但我不明白他们告诉了什么.我想知道给出这个结果的算法.)
从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命令窗口中获取更多信息.
建议您查看有关最小二乘和伪逆的更多详细信息.
| 归档时间: |
|
| 查看次数: |
1601 次 |
| 最近记录: |