matlab多項式與非多項式擬合

2021-08-08 23:12:44 字數 1734 閱讀 9722

擬合標準:

(1)原始資料向量與擬合向量之間的距離最小,該距離的度量一般使用誤差平方和表示,即均方誤差:r=||q-y||22

(2)當均方誤差最小時,說明構造的擬合向量與原始向量最為接近,這種曲線擬合的方法稱為最小二乘法

(3)計算均方誤差最小時的擬合係數,可以通過微積分中求解極值的方法實現

多項式擬合

(1)  多項式擬合在matlib中可以使用ployfit函式求解多項式係數,通過ployval函式求解擬合多項式在某資料點處的值

(2)  比如:擬合正弦函式曲線,使用4次多項式擬合

程式如下:

x0 = -pi:0.1:pi;

y0 = sin(x0);

p0 = polyfit(x0,y0,4);

y1 = polyval(p0,x0);

plot(x0,y0,x0,y1,』r』);

poly2sym(p0)%得到表示式

x1 = -1:0.2:1;

y1 = 1./(1 + 25*x1.^2);

x0 = -1:0.01:1;

y0 = 1./(1 + 25*x0.^2);

p3 = polyfit(x1,y1,3);%擬合成三次多項式

p5 = polyfit(x1,y1,5);%擬合成五次多項式

p10 = polyfit(x1,y1,10);%擬合成十次多項式

y3 = polyval(p3,x0);

y5 = polyval(p5,x0);

y10 = polyfit(p10,x0);

plot(x0,y0,x0,y3,』r』,x0,y5,』m』,x0,y10,』k.』);

legend(『orig』,』3次』,』5次』,』10次』)

非多項式擬合

(1)  使用curve fit toolbox函式實現具體類別函式的擬合。可以直接使用cftool,或者使用cftool提供的函式:fitoptions函式;fittype函式;fit函式

(2)  具體使用方法

fitoptions函式:建立或修改擬合選型結構體,主要有以下幾類

normalize,是否歸一化,選擇off或者on

exclude,排除某些資料點,可以使用excludedata函式獲取該邏輯向量

weight,權值

method,擬合方法

示例:options = fitoptions;%返回值是上面四個屬性的值

options = fitoptions(『method』,』nonlinearleastsquare』);%設定方法為非線性最小二乘

options.lower = [-inf,-inf,-inf]%設定最小值是負無窮大

options.upper = [inf,inf,inf]%設定最大值是正無窮大,這裡之所以使用三個引數,是因為1/(1+25x^2)符合a/(b+cx^2)的形式

type = fittype(『a/(b+c*x^n)』,』problem』,』n』,』options』,options);

[cfun gof] = fit(x1』,y1』,type);

ynp = veval(cfun,x0);

plot(x0,y0,x0,ynp,』r』);

h1=plot(x0,y0,』k』);

set(h1,』linewidth』,5);

hold on

plot(x0,ynp,』r』);

備註:材料來自21世紀電子論壇經典案例系列教程之多項式與非多項式擬合

MATLAB多項式及多項式擬合

多項式均表示為陣列形式,陣列元素為多項式降冪係數 1.polyval函式 求多項式在某一點或某幾個點的值.p 1,1,1 x 2 x 1 x 1,0,1 y polyval p,x 另外求函式在某一點或某幾個點的值可以用函式feval.x 1,0,1 y feval x exp x x 注意用的乘法...

MATLAB多項式計算

在matlab中,n次多項式用乙個長度為n 1的行向量表示 因為是n個冪次項係數加上乙個常數項 缺少的冪次項係數為0。例如 n次多項式 p x anxn an 1xn 1 an 2xn 2 a1x a0 表示為 an,an 1,an 2,a1,a0 事實上,多項式的加減運算就是其所對應的係數向量的加...

數學 多項式 多項式求逆

多項式求逆 前置知識 ntt 給定乙個多項式 f left x right 求乙個多項式 g left x right 使得 f left x right g left x right equiv 1 left bmod 998244353 right 考慮遞迴求解。假定現在已經求出了 g 0 le...