怎麼用matlab求實際曲線也擬合直線之間的最大偏差

時間 2021-09-07 05:17:16

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...