找到两个向量的最小二乘函数

时间:2013-06-12 23:19:19

标签: matlab optimization linear-algebra

假设我有两个相同大小的列向量:P和Q.我需要做的是找到最小二乘函数距离D = ||P - Q||^2。这是什么意思,我如何在matlab中实现它。我应该使用norm()功能吗?

2 个答案:

答案 0 :(得分:2)

您可以使用

norm(P-Q)^2

sum((P-Q).^2)

小测试:

P = randn(1e7,1);
Q = randn(1e7,1);

tic
norm(P-Q)^2;
toc

tic
sum((P-Q).^2);
toc

结果:

Elapsed time is 0.130086 seconds.
Elapsed time is 0.098494 seconds.

因此,手动平方和求和更快,也许更直观。

答案 1 :(得分:1)

如果您只是想找到欧几里德范数的平方,或者换句话说sum((P(i) - Q(i))^2),那么您可以使用sumsqr(P - Q)

编辑:欧几里德范数被定义为平方和的平方根,所以在你的情况下它将是sqrt(sum((P(i) - Q(i))^2))。这就是||P - Q||的含义。所以||P - Q||^2只是(P - Q)的平方和,而MATLAB有一个内置函数,如上所述。