㈠ 用MATLAB軟體使用最小二乘法對數據進行處理。急急急
matlab程序如下:
g=[0.86,0.80,0.62,0.52,0.44]; %加速度數組為g
m=[147.9, 197.9, 247.9,297.9,347.9];%對應質量數組m
corrc=corrcoef(m,g); %相關系數計算,-0.9881,說明強負相關
result=polyfit(g,m,1); %最小二乘法回回歸m=ag+b,系數a,b在答result中
cal_m=result(1)*g+result(2);%根據線性回歸計算得到的質量cal_m
plot(g,m,'*',g,cal_m,'-');
%畫實測和線性擬合比較圖,直線是擬合方程,點是實測
xlabel('加速度 (m/s^2)') % x y 軸定義
ylabel('質量(g)')
圖片附上供你參考,一定要自己做一遍才好哦,有助提高。
沒寫過物理實驗,不過把這些變數與物理試驗中的參數對應,然後運用數學方法編程實現,照這個思路寫寫應該就沒錯了。
㈡ 用matlab工具進行最小二乘法圓擬合的程序怎麼編
可以來考慮採用polyfit來擬合源,二次多項式polyfit(x,y,2),
x=[0.11 0.13 0.19 0.21 0.27 0.37 0.53 0.59 0.71 0.79 0.89 1.07];
y=[3868-1066 3733-888.3 3659-789.6 3599-710.7 3508-592.2 3463-533 3335-367.6 3257-266.5 3215-213.2 3200-193.8 3125-133.3 3131-106.6];
p=polyfit(x,y,2);
hold on;
plot(x,y,'v')
plot(x,polyval(p,x),'r');
當然,數組中的成員是需要自己寫入的,把你的數據帶入就行
㈢ 最小二乘法在matlab中怎麼實現
matlab中用最小二乘擬合的常用函數有polyfit(多項式擬合)、nlinfit(非線性擬合)以及regress(多元專線性回歸)。自屬變數有2個或以上時,應變數一個,可以使用的有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)
㈣ 如何用MATLAB實現最小二乘法
直接用/和\,對於超定線性方程組就是用最小二乘原則求解的。
㈤ matlab三維曲面進行平面擬合,利用最小二乘法
可以直接使用matlab的曲面擬合工具箱,但是平面擬合的效果一般
1、在命令內窗口輸入待擬合容的數據
>>x=[11.4,11.4,11.4,11.4;13.1,13.1,13.1,13.1;14.8,14.8,14.8,14.8;16.5,16.5,16.5,16.5;18.2,18.2,18.2,18.2];
y=[0.84,0.72,0.61,0.45;0.68,0.49,0.44,0.41;0.57,0.43,0.40,0.38;0.42,0.37,0.33,0.17;0.39,0.30,0.24,0.16];
z=[1.62,2.51,2.63,2.64;1.93,2.58,3.01,3.23;2.45,2.83,3.27,3.31;2.60,3.27,3.33,3.45;2.93,3.74,4.09,4.35];
2、輸入sftool命令打開曲面擬合工具箱,然後依次選擇x,y,z數據
>>sftool
其中,R-square表示擬合度,越接近於1表示擬合效果越好,此時僅為0.8241,所以效果並不好。
㈥ matlab中的cftool工具箱做非線性曲線擬合是用的什麼方法,是最小二乘法嗎
If Method is NonlinearLeastSquares,(非線性曲線擬合)內 then the additional parameters are:
Algorithm - Algorithm to be used in FIT
Levenberg-Marquardt
Gauss-Newton
Trust-Region
默認的為容 Trust-Region
㈦ matlab最小二乘法工具箱在哪找不到
這些在matlab的幫助文件里都有說明的,直接在help菜單里搜RMSE就找到了,而且那幾個統計量都在
㈧ 用Matlab做曲線擬合的最小二乘法,謝謝
命令窗口輸入x=[0,0.5,1,1.5,2,2.5,3,3.5];y=[1,2.4,3.1,5.0,7,11,17,24];cftool
在新抄的圖襲形界面中,點data,creat data,x與y選擇相應的創造data後,在fit里選擇new fit,在選擇自己想要的函數(有很多函數選擇,還可以自定義,不過我沒自定義過),得到結果,
如果要看圖形,那裡有figure,畫圖即可
cftool是很強大的曲線擬合工具箱,也很容易操作,試試吧
㈨ 最小二乘法在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;