Matlab 三次樣條插值多項式表示

2021-06-21 07:48:46 字數 1427 閱讀 8952

原文自 :

matlab spline pp.coefs

如何運用matlab 三次樣條插值的問題,今天做作業,突然想用matlab搞搞。

題目如下:

清華大學出版社的《數值分析(第5版)》

p49,20題。

x=[0.25 0.3 0.39 0.45 0.53];

y=[ 0.5 0.5477 0.6245 0.6708 0.7280 ]

pp=csape(x,y,'second',[0,0.0]);

disp(pp.coefs);

其中coefs的含義是在xi-xi+1區間上的多項式是,例如coefs陣列第一行的意思是在x=0.25到x=0.3的區間上時表示式是-6.2652*(x-0.25)^3+0.9697*(x-0.25)^1+0.5;

-6.2652 

0.0000 

0.9697 

0.5000

1.8813 

-0.9398 

0.9227 

0.5477

-0.4600 

-0.4318 

0.7992 

0.6245

2.1442 

-0.5146 

0.7424 

0.6708

關於csape的用法引用自:

csape,是計算在各種邊界條件下的三次樣條插值。

pp = csape(x,y,conds)

其中conds主要有以下的選項variational(自然邊界條件,首末點二階導數均為0),second(指定首末點的二階導數),periodic(週期性邊界條件,首末點的0~2階導數相等),complete(給定導數情況,預設)

function pp = csape(x,y,conds,valconds)

%pp=csape(x,y,'變界型別','邊界值'),生成各種邊界條件的三次樣條插值. 其中,(x,y)為資料向量

%邊界型別可為:'complete',給定邊界一階導數.

%  'not-a-knot',非扭結條件,不用給邊界值.

%  'periodic',週期性邊界條件,不用給邊界值.

%  'second',給定邊界二階導數.

%  'variational',自然樣條(邊界二階導數為0)

% .%例 考慮資料

%  x | 1 2 4 5

%  ---|-------------

%  y | 1 3 4 2

%邊界條件s''(1)=2.5,s''(5)=-3,

%  x=[1 2 4 5];y=[1 3 4 2];

%  pp=csape(x,y,'second',[2.5,-3]);pp.coefs

%  xi=1:0.1:5;yi=ppval(pp,xi);

%  plot(x,y,'o',xi,yi);

WPF 牛頓多項式插值和三次樣條插值法的簡單實現

折騰不少時間 牛頓插值法主要是在於差商,三次樣條主要矩陣,發現自己不會,又回頭整矩陣的,什麼線性方程的解法.簡直頭大 牛頓的差商,其實就是遞迴,雖然計算一次是可以用陣列存起來,但是寫出來的時候是遞迴感覺很爽,就滅有儲存各階段的結果,導致計算量大增,應該有個n方的時間把.剩下就是三次樣條,對於公式來看...

三次樣條插值

條件 1 輸入 x y f x 0 leq i leq n 2 要求擬合的曲線 s x 滿足 對於任意的 1 leq i leq n 1 在 x 處一階二階導數連續,s x 也連續,且 s x f x s x f x 求解過程 設 s m 對於區間 x x s x 是 x x 上的線性函式,所以設 ...

三次樣條插值 c

include include include include using namespace std double zuigan double a,double b,double c,double f,int n 追趕法求線性方程組 for int i 0 ifor int i n 2 i 0 i...