1樓:匿名使用者
matlab軟體提供了基本的曲線擬合函式的命令.
1 多項式函式擬合:a=polyfit(xdata,ydata,n)
其中n表示多項式的最高階數,xdata,ydata為將要擬合的資料,它是用陣列的方式輸入.輸出引數a為擬合多項式 的係數
多項式在x處的值y可用下面程式計算.
y=polyval(a,x)
2 一般的曲線擬合:p=curvefit(『fun』,p0,xdata,ydata)
其中fun表示函式fun(p,data)的m函式檔案,p0表示函式的初值.curvefit()命令的求解問題形式是
若要求解點x處的函式值可用程式f=fun(p,x)計算.
例如已知函式形式 ,並且已知資料點 要確定四個未知引數a,b,c,d.
使用curvefit命令,資料輸入 ;初值輸 ;並且建立函式 的m檔案(fun.m).若定義 ,則輸出
又如引例的求解,matlab程式:
t=[l:16]; %資料輸人
y=[ 4 6.4 8 8.4 9.28 9.5 9.7 9.86 10.2 10.32 10.42 10.5 10.55 10.58 10.6] ;
plot(t,y,』o』) %畫散點圖
p=polyfit(t,y,2) (二次多項式擬合)
計算結果:
p=-0.0445 1.0711 4.3252 %二次多項式的係數
由此得到某化合物的濃度y與時間t的擬合函式。
之後計算每個資料點(x,y0)和擬合直線對應點(x,y1)的誤差|y1-y0|,其中的最大值就是最大偏差
2樓:
如果是關心絕對誤差,那就計算相同橫座標對應的縱座標絕對值之差
如果是關心相對誤差,那就計算相同橫座標對應的縱座標絕對值之差除以實際值
如何用matlab求最小二乘法擬合曲線與原資料的最大偏差量 5
3樓:匿名使用者
是用多項式擬合麼?設擬合階數n
p = polyfit(x,y,n);
y1 = polyval(p,x);
e = y1-y;
e1 = abs(e);
max(e1)
原理:x是自變數陣列,y是原資料陣列,n是你選擇擬合的多項式階數。如n=1,就是y=a+bx.
n=2,就是y=a+bx+cx^2. p是最小二乘意義下的係數結果的陣列,即[a,b,c]。
然後把求得的p帶回多項式計算曲線的y座標y1, 讓y1的陣列元素對應減去原資料陣列元素,得到誤差陣列e, 然後求絕對值再求最大值。
你檢查一下有沒有錯誤。
最小二乘法曲線擬合 怎麼求偏差 matlab
4樓:我是開水你是茶
程式:function s=polyfit1(xi,y,w,n)syms x;
m=length(xi);
p(1,1)=0;
f(1,1)=0;
q=0;
b=0;
for i=1:n+1
for j=1:n+1
for k=1:m
q=q+w(k)*(xi(k)^(i+j-2));
p(i,j)=q;
endq=0;end
急,求助matlab對多條曲線擬合出一條平均趨勢線
5樓:科技數碼答疑
最好的辦法為:求平均值的擬合曲線
實際上,擬合的函式型別是多種多樣的
1、多項式型
2、三角函式型
3、指數型等等
不知道你選哪種呢???
簡單的函式直接採用plot選單工具裡面basic fitting
matlab用plot畫出來的曲線圖怎麼把橫座標變成漢字標識
12345額時代 1 plot x,y 根據輸入的x,y,繪製已x為橫座標,y為縱座標的二維曲線。for example matlab程式,可以直接執行 2 函式 plot x,y 直接輸入影象的曲線方程,不必包含引數for example matlab程式,可以直接執行 x 0 pi 40 2 p...
用MATLAB求曲線在某一點的曲率
如果知道曲線解析式可以定義符號函式並求導,求得的導數就是斜率。給出示例 如下 syms y x y x sin x 定義對應曲線的符號函式y1 x diff y,x 求導數 eval y1 0 求x 0處的導數 結果 ans 1如果解析式不知道則可以利用曲線上的散點資料做擬合,擬合出解析式 或者退而...
用畫圖怎麼畫曲線,用WORD畫圖怎麼畫曲線
word 選單 檢視 工具欄 確保繪圖是選中的 然後word視窗的下面出現繪圖的工具欄,自選圖形 線條,裡面選你要的線條吧。在word中如何畫曲線? 藍藍藍 1 首先在電腦上開啟word軟體,接下來在word中建立一個空白的文件。2 接下來在頁面上方的工具欄中選擇 插入 形狀 在選項中選擇 曲線 3...