|
Matlab擬合曲線的方式
Matlab擬合曲線的方式有很多種,有三次樣條插值、線性插值、多項(xiàng)式擬合等等。多項(xiàng)式擬合,若采用最小二乘法擬合,對(duì)于參是一個(gè)線性方程組,可以用Matlab求逆矩陣的方法,得到方程的最小二乘解。但如果參數(shù)構(gòu)成的方程組并不是線性方程組,則不可以用矩陣的方法求得。使用樣條插值和線性插值固然可以,但是得不到需要的表達(dá)式,此時(shí)使用非線性擬合方法解決最為合適。
通常,我們?cè)趯?shí)驗(yàn)前對(duì)模型都有一個(gè)假設(shè),例如這是一個(gè)指數(shù)衰減的曲線,或者指數(shù)衰減振蕩的曲線,或者是一個(gè)周期振蕩的由若干個(gè)頻率的三角函數(shù)疊加組成的信號(hào)。此時(shí)我們只需要指定需要估計(jì)的參數(shù),代入數(shù)據(jù)求解即可。以下就是一個(gè)點(diǎn)典型的例子。
clc
close all
plot(xdata,ydata);xlim([0,1]);hold on;%實(shí)際曲線繪圖
fun=@(x,xdata)(x(1)*(1-exp(-xdata/x(2))));%估計(jì)函數(shù)
x0=[1500,0.025];%初始估計(jì)值[x(1),x(2)]
x=lsqcurvefit(fun,x0,xdata,ydata);%非線性函數(shù)擬合
y=fun(x,xdata);%代入估計(jì)的值,并獲得函數(shù)點(diǎn)
plot(xdata,y);xlim([0,1]);%繪制估計(jì)曲線
title(['[K,Tp]=',num2str(x)]);%標(biāo)注估計(jì)的參數(shù)
|
|