擬合標準:
(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...