當前位置:編程學習大全網 - 編程軟體 - matlab 三次埃爾米特如何輸出差值多項式的系數

matlab 三次埃爾米特如何輸出差值多項式的系數

舉壹個例子,對0~10這11個整數上的sin函數值插值,並將系數放到coefs裏,最後的圖如上

x?=?0:10;?

y?=?sin(x);?

pp=interp1(x,y,'pchip','pp');%?pp返回壹個結構體,裏面儲存了各種插值信息

coefs=pp.coefs;?%?coefs這就是各段的插值多項式系數,

%?第壹列是三次項系數,第二列是二次項。。。

%?但要註意用這個系數計算時,它是以每壹小段的開頭那個數是0來計算的,

%?比如對於3~4這壹段,插值的值yi=a4*(xi-3)^3+a3*(xi-3)^2+a2*(xi-3)+a1

%?自己利用系數是很麻煩的,可以直接利用MATLAB自帶函數利用pp的結果

%?如果想要直接利用結構體pp去計算0~10範圍內任壹點的插值結果,

%?用ppval可以直接使用pp的中的系數,舉個例子

xi?=?0:.25:10;?

yi=ppval(pp,xi);

figure,plot(x,y,'o',xi,yi)

補充

'nearest'最近項插值

'linear'分段線性插值

'spline'三次樣條線插值(spline會比pchip更光滑壹點,同時也會多壹點震蕩)

'pchip'分段三次埃米爾特插值(不清楚他這裏的導數是怎麽默認的,好像是兩臨近點間的斜率)

'cubic'和pchip壹樣

  • 上一篇:本科是理工科,想去日本讀遊戲設計(偏文案)方面的研究生,想問壹下有什麽推薦院校或導師嗎?
  • 下一篇:vb怎樣編寫Aoctiexv控件視頻教程
  • copyright 2024編程學習大全網