㈠ matlab非線性最小二乘擬合
MATLAB的最優化工具箱中提供了lsqcurvefit()函數,可以解決最小二乘曲線擬合的問題,改函數的調用格式為:
[a,J]=lsqcurvefit(Fun,a0,x,y)
其中,Fun未原型函數的MATLAB表示,a0未最優化的初值,x,y為原始輸入輸出數據向量,調用該函數將可以返回待定系數向量a以及在此待定系數下的目標函數的值J.(詳細可以輸入helplsqcurvefit)
具體做法是:
>>U1=inline('f(a,w)','a','w')%用a(i)分別代替六個未知數,i=1~6.
>>[xx,res]=lsqcurvefit(U1,[111111],w,U);xx'%w和U是你試驗得出來的數據向量。
結果應該會出現一個ans向量(6維),分別就是你所要待定的系數a(i)了
㈡ MATLAB怎麼用最小二乘法擬合數據曲線
用polyfit函數擬合就行了,這個函數就是利用最小二乘法原理的。也可以使用數據擬合工具箱cftool擬合。
㈢ matlab三維曲面進行平面擬合怎麼利用最小二乘法
直接使用matlab的曲面擬合工具箱
㈣ 最小二乘法在matlab中怎麼實現啊
matlab中用最小二乘擬合的常用函數有polyfit(多項式擬合)、nlinfit(非線性擬合)以及regress(多元線性回歸)。自變數有個或以上時,應變數一個,可以使用的有nlinfit和regress,線性時用regress,非線性時用nlinfit。對於進階matlab使用者還有更多的選擇,如擬合工具箱、fit函數、interp系列插值擬合等等。
具體介紹一下regress
regress雖然名義上只能做線性回歸但是可以把x^2等非線性量作為一個額外自變數做計算,因此在一些特殊情況下也可以做非線性擬合。
以matlab自帶的數據為樣本,示例代碼如下:(%後面的是注釋)
clc;clear;
load carsmall%此數據樣本matlab自帶
x=Weight;y=Horsepower;z=MPG;%取這3個變數作為擬合對象,x、y自變數,z應變數
plot3(x,y,z,'p');
hold on;
c=ones(length(x),1);
b=regress(z,[x,y,c]);%純線性擬合 模型z=b(1)*x+b(2)*y+b(3)
[X,Y]=meshgrid(linspace(1500,5000,10),linspace(40,240,10));
C=ones(10);
mesh(X,Y,b(1)*X+b(2)*Y+b(3)*C);
grid on;
b=regress(z,[x.^2,y.^2,x.*y,x,y,c]);%添加非線性項進行擬合
figure
plot3(x,y,z,'p');
hold on;
mesh(X,Y,b(1)*X.^2+b(2)*Y.^2+b(3)*X.*Y+b(4)*X+b(5)*Y+b(6)*C);
grid on;
㈤ 下載了偏最小二乘回歸的matlab工具箱,誰能指點下怎麼用啊
有readme文檔嗎?最好按照readme操作。有的工具箱是用c寫的,需要編譯,如果都是m文件的話,在菜單欄file->setpath裡面添加你工具箱解壓後的文件夾目錄,就可以調用裡面的函數m文件了。
㈥ 利用MATLAB優化工具箱解決如下的最小二乘問題:
這個題目本質上就是個二次函數的求極值問題。
(1)首先將式子化簡
如圖
(3)上述過程包含了計算的步驟,可以用optimtool設置方法來求解並得到過程。本來想給你結果的,分數太少,就不寫上去了。