導航:首頁 > 計算方法 > 計算方法求三次插值樣條

計算方法求三次插值樣條

發布時間:2022-05-25 04:22:58

1. 三次樣條插值求解

m,n是一組離散的點
spline對它做樣條插值
完了計算以0~359為橫坐標xx,以插值yy為縱坐標
最後的畫圖:
(m,n)是原始數據,用點表示
(xx,yy)是插值擬合數據,用線條表示。

倆畫在一起,無非是看原始數據和擬合數據的擬合度

ps,
plot(m, n, ".", xx1, yy1)有問題
可能是 plot(m, n, ".", xx, yy)。

2. 急求!!!!matlab怎麼求三次樣條插值多項式

樣條是分段函數,多項式的個數和分的段數有關的,這個段數應該是不定的,所以不太好弄。那麼:
你想要一個三次多項式的話,就用polyfit,得到多項式的系數
如果你想三次樣條插值,就用spline或者interp1,再用plot能得到曲線

3. 三次均勻B樣條插值演算法

三次樣條插值(Cubic Spline Interpolation)簡稱Spline插值,是通過一系列形值點的一條光滑曲線,數學上通過求解三彎矩方程組得出曲線函數組的過程。
實際計算時還需要引入邊界條件才能完成計算。一般的計算方法書上都沒有說明非扭結邊界的定義,但數值計算軟體如Matlab都把非扭結邊界條件作為默認的邊界條件。

4. 數值方法 三次樣條插值

也得不影響。。。 而且如果你固定用三次樣條插值的話,直接影響精確度的就是間距。

所有的多項式插值,(不止插值,連擬合都是這樣)只要方法固定下來,接下來直接影響精度的就是間距h了。

三次樣條插值本質上就是解一個矩陣對應的線性方程組。至於你最後一句話:
「是知道一系列等間距點和該出的值,求這些點中間處的插值點的值。」
。。。那一系列等間距點就是插值點,後面那個是你未知的部分的內容,3次樣條插值是求出一個可以穿過你原本給定的那一系列點的分段3次多項式函數,使得它在所有的點都保證至少2階連續可導的光滑度。三次樣條插值解出來的是各個分段的逼近多項式的表達式(3次的),得到全段的表達式後,你把你要估計的那個點的自變數值代進表達式得到該點的函數值。

插值有時候也會用來做別的事情。最常見的就是在估算原函數的積分的時候,威力巨大。

5. 三次樣條插值計算步驟

三次樣條插值在實際中有著廣泛的應用,在計算機上也容易實現。下面介紹用計算機求取三樣條插值函數S(x)的演算法步驟:

(1)輸入初始節點離散數據xi,yi(i=0,1,…,n);

(2)依據式(6-46),計算hi=xi-xi-1,λi和Ri(i=1,…,n-1);

(3)根據實際問題,從式(6-49)、式(6-51)和式(6-53)中選擇一類對應的邊界條件,求取v0,w0,u0,R0,un,vn,wn,Rn

(4)根據形成的方程組(6-54)的特點,選用追趕法、高斯法等解方程組,求出Mi(i=0,1,2,…,n);

(5)依據式(6-41)、式(6-42),計算插值點的三樣條插值函數值和該點的導數值。

6. MATLAB來做三次樣條插值,如何得到插值的函數表達式

x=[1:1:10];

y=[2:2:20];

pp=interp1(x,y,'spline','pp')

breaks=pp.breaks

coefs=pp.coefs

7. 你好,如何求三次樣條插值的基函數

三次樣條函數:
定義:函數S(x)∈C2[a,b] ,且在每個小區間[ xj,xj+1 ]上是三次多項式,其中
a =x0 <x1<...< xn= b 是給定節點,則稱S(x)是節點x0,x1,...xn上的三次樣條函數。
若在節點x j 上給定函數值Yj= f (Xj).( j =0, 1, , n) ,並成立
S(xj ) =yj .( j= 0, 1, , n) ,則稱S(x)為三次樣條插值函數。
實際計算時還需要引入邊界條件才能完成計算。邊界通常有自然邊界(邊界點的二階導為0),夾持邊界(邊界點導數給定),非扭結邊界(使兩端點的三階導與這兩端點的鄰近點的三階導相等)。一般的計算方法書上都沒有說明非扭結邊界的定義,但數值計算軟體如Matlab都把非扭結邊界條件作為默認的邊界條件。

8. 三次樣條插值

用Matlab實現了3次樣條曲線插值的演算法。邊界條件取為自然邊界條件,即:兩個端點處的2階導數等於0;
共包含3各個函數文件,主函數所在文件(即使用的時候直接調用的函數)為spline3.m,另外兩個函數文件是在splin3函數文件中被調用的自定義函數。一個是GetParam.m,一個是GetM.m。
%GetParam.m文件的內容:
%根據給定的離散點的橫坐標所構成的向量,計算各個區間段的h值;
function GetParam(Vx,Vy)
global gh;
global gf;
global gu;
global gr;
global gd;
global gff;
global gM;
%global gn;
%n=length(Vx);%length()為向量Vx所含元素的個數;
%n=legth(Vx);
%gn=n;
%n=gn;
n=length(Vx);
gh(1)=Vx(2)-Vx(1);
gf(1)=(Vy(2)-Vy(1))/gh(1);
for i=2:1:n-1%從區間0到區間n-1;
gh(i)=Vx(i+1)-Vx(i);
gf(i)=(Vy(i+1)-Vy(i))/gh(i);
gu(i)=gh(i-1)/(gh(i-1)+gh(i));
gr(i)=1-gu(i);
gff(i)=(gf(i-1)-gf(i))/(Vx(i-1)-Vx(i+1));
gd(i)=6*gff(i);
end
%設置與邊界條件有關的參數;
gM(1)=0;%起點的2階導數;
gM(n)=0;%終點的2階導數;
end
%GetM.m文件的內容:
function GetM(Vx)
global gh;
global gf;
global gu;
global gr;
global gd;
global gff;
global gM;
%global gn;
nn=length(Vx);
%nn=gn;
n=nn-2;
b=zeros(n,1);
A=zeros(n,n);
A(1,1)=2;A(1,2)=gr(2);
b(1)=gd(2)-gu(2)*gM(1);
for i=2:1:n-1
A(i,i)=2;
A(i,i-1)=gu(i+1);
A(i,i+1)=gr(i+1);
b(i)=gd(i+1);
end
A(n,n-1)=gu(n);A(n,n)=2;
b(n)=gd(nn-1)-gr(nn-1)*gM(nn);
X=(inv(A))*b;
for i=2:1:nn-1
gM(i)=X(i-1);
end
end
%主函數文件spline3.m的內容:
function result=spline3(x,Vx,Vy)
global gh;
global gf;
global gu;
global gr;
global gd;
global gff;
global gM;
%global gn;
GetParam(Vx,Vy);
GetM(Vx);
%n=length(Vx);
%n=gn;
n=length(Vx);
nn=length(x);
y=zeros(1,nn);
for j=1:1:nn
i=1;
while(x(j)>Vx(i+1))
i=i+1;
end
sn=i;
t1=(Vx(sn+1)-x(j))^3/(6*gh(sn));
t1=t1*gM(sn);
t2=(x(j)-Vx(sn))^3/(6*gh(sn));
t2=t2*gM(sn+1);
t3=Vy(sn)-gM(i)*((gh(i))^2)/6;
t3=t3*(Vx(sn+1)-x(j))/gh(sn);
t4=Vy(sn+1)-gM(sn+1)*((gh(sn))^2)/6;
t4=t4*(x(j)-Vx(sn))/gh(sn);
y(j)=t1+t2+t3+t4;
end
result=y;
end
函數調用的時候,result=spline3(x,Vx,Vy),x為代求點的橫坐標向量,
(Vx,Vy)為已知的點的坐標。

9. 三次樣條插值演算法

採用matlab中的imresize函數,其中bicubic選項為三次樣條插值。

10. MATLAB中,如何求出三次樣條插值函數

matlab中的三次樣條插值函數是spline,用法是:yy=spline(x,y,xx),pp=spline(x,y),前者求出對應xx的縱坐標,後者求出一個多項式,可用ppval計算縱坐標值。

閱讀全文

與計算方法求三次插值樣條相關的資料

熱點內容
機油爐最新製作方法圖片 瀏覽:298
用什麼方法可以讓復合肥快速溶化 瀏覽:924
項目不明確的解決方法 瀏覽:957
餃子老鼠怎麼捏簡單的方法 瀏覽:805
樓梯燈人體紅外線安裝方法 瀏覽:634
電焊焊接不銹鋼焊接方法與技巧 瀏覽:316
月的推算方法和技巧 瀏覽:944
疊篷子船的方法步驟圖片 瀏覽:517
單股線絕緣電阻測量方法 瀏覽:126
盂蘭的正確養殖方法 瀏覽:477
後方法時代的教學方法 瀏覽:582
美術對數的計算方法 瀏覽:181
語音播報的方法和技巧 瀏覽:145
著火的油怎麼用降溫的方法熄滅 瀏覽:242
兩歲半寶寶便秘有什麼方法 瀏覽:469
腳踝測量方法 瀏覽:310
治療皮膚病方法 瀏覽:521
鋁塑板鑒別方法 瀏覽:184
急性腦梗保守治療方法 瀏覽:949
opr9手機屏幕解鎖方法 瀏覽:271