簡體   English   中英

在Matlab中使用最小二乘法求解多維方程

[英]solve multidimensional equation using least square method in matlab

如何使用最小二乘法從該方程式獲得系數ab 解決此問題的最佳方法是什么?

在此處輸入圖片說明

假設θ(k1,k2)是一個60x60的矩陣(常數/值),即theta=rand(60,60) ,但是

在此處輸入圖片說明

如何在Matlab中求解ab 有任何簡單的功能嗎?

提前致謝!

參考文件: 此處 (第三節)

您可以使用回歸函數執行此操作。 這是一個例子:

% 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。

調用回歸的結果為您提供最適合數據theta的系數B=[a;b]

最后一點是最小二乘法可以直接使用

B=inv(X'*X)*X'*theta(:)

應該給出相同的結果,但是regress是首選的MATLAB方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM