0
如何使用最小二乘法从该方程中获得系数a
和b
?解决这个问题的最好方法是什么?在matlab中使用最小二乘法求解多维方程
比方说θ(k1,k2)
是60x60
(恒定/值)矩阵,即theta=rand(60,60)
,但
如何解决在MATLAB a
和b
?任何简单的功能来做到这一点?
提前致谢!
参考纸:Here(第三节)
如何使用最小二乘法从该方程中获得系数a
和b
?解决这个问题的最好方法是什么?在matlab中使用最小二乘法求解多维方程
比方说θ(k1,k2)
是60x60
(恒定/值)矩阵,即theta=rand(60,60)
,但
如何解决在MATLAB a
和b
?任何简单的功能来做到这一点?
提前致谢!
参考纸:Here(第三节)
可以使用回归函数来做到这一点。 下面是一个例子:
% Generate an example
n = 60;
theta = rand(n);
% Create regressors
[M,N] = meshgrid(1:n,1:n);
X = [M(:), N(:)];
% Regress
B=regress(theta(:), X);
% Compare the results
theta_hat = reshape(X*B,n,n);
plot3(M,N,theta,'o');
hold on;
surf(M,N,theta_hat);
注意,回归上theta(:)
完成其是含有THETA(K1,K2)的值的(3600,1)载体使用对应的坐标X,它是(3600 ,2)。 X的第一列是k1,第二列是k2。
调用回归结果给你B=[a;b]
最适合theta中数据的系数。
最后要注意的是,最小二乘可直接使用
B=inv(X'*X)*X'*theta(:)
应给予同样的结果来解决,但regress
是优选的MATLAB方法。
非常感谢!你救了我的一天!在尝试了两种方法之后,我更喜欢'regress'方法,它更“计算性”。感谢您的详细解释,现在我可以清楚地理解可视化! –