1樓:匿名使用者
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);
pp0 = csape(x,[1,zeros(1,length(y)),0],[1,0]);
pp = csape( x, [1 sin(x) 0], [1 2] ) %左邊的點一階導數為1,右邊的點二階導數為0
splinetool是一個圖形化的插值工具
lagrange插值,由於lagrange插值可能不收斂,所以工程中很少有人用這種插值。matlab中沒有專門的lagrange插值函式。但我們可以自己編一個,如下:
%lagrange插值子函式
function y=lagrange(x0,y0,x)
n=length(x0); m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
endend
s=p*y0(k)+s;
endy(i)=s;end
2樓:肉_夾饃
doc csape
或者help csape
matlab的幫助文件時最權威的工具書。
另:網上搜到的,希望對你有所幫助。
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);
matlab中的csape怎麼使用?
3樓:匿名使用者
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);
pp0 = csape(x,[1,zeros(1,length(y)),0],[1,0]);
pp = csape( x, [1 sin(x) 0], [1 2] ) %左邊的點一階導數為1,右邊的點二階導數為0
splinetool是一個圖形化的插值工具
lagrange插值,由於lagrange插值可能不收斂,所以工程中很少有人用這種插值。matlab中沒有專門的lagrange插值函式。但我們可以自己編一個,如下:
%lagrange插值子函式
function y=lagrange(x0,y0,x)
n=length(x0); m=length(x);
for i=1:m
z=x(i);
s=0.0;
for k=1:n
p=1.0;
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
endend
s=p*y0(k)+s;
endy(i)=s;end
matlab 關於pp
4樓:我行我素
pp就是分段多項式,語句形如:
breaks = -5:-1;
coefs = -22:-11;
pp = ppmak(breaks,coefs)其中:breaks就是各段的端點值,-5,-4,-3,-2,-1,有4個區間
coefs就是每段多項式的係數,共有12個值,12/4=3,則有4個多項式,每個多項式的最高次數是3
matlab中ppval什麼意思
5樓:匿名使用者
除了ppval函式,來再友情贈送一個csape函式% pp = csape(x,y,conds) 返回源給定資料(x,y)的三次樣條插值
% 其中conds為條件引數,主要有以下的選項% ——variational(自然邊界條件,首末點二階導數均為0),
% ——second(指定首末點的二階導數),% ——periodic(週期性邊界條件,首末點的0~2階導數相等),
% ——complete(給定導數情況,預設)% ppval函式: 給出三次樣條插值pp在x處對應的函式值。
% 例程如下:
x=0:0.1:pi;
y=sin(x);
pp = csaps(x,y)
ppval(pp,0.4)
sin(0.4)
interp1在matlab中怎麼用
6樓:匿名使用者
matlab中的插值函式為interp1,其呼叫格式為: yi= interp1(x,y,xi,'method')
其中x,y為插值點,yi為在被插值點xi處的插值結果;x,y為向量, 'method'表示採用的插值方法,matlab提供的插值方法有幾種: 'method'是最鄰近插值, 'linear'線性插值; 'spline'三次樣條插值; 'cubic'立方插值.預設時表示線性插值
注意:所有的插值方法都要求x是單調的,並且xi不能夠超過x的範圍。
例如:在一 天24小時內,從零點開始每間隔2小時測得的環境溫度資料分別為
12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,
推測中午12點(即13點)時的溫度.
x=0:2:24;
y=[12 9 9 10 18 24 28 27 25 20 18 15 13];
a=13;
y1=interp1(x,y,a,'spline')
結果為: 27.8725
若要得到一天24小時的溫度曲線,則:
xi=0:1/3600:24;
yi=interp1(x,y,xi, 'spline');
plot(x,y,'o' ,xi,yi)
轉的 有問題追問
7樓:**李亞
假設 x= 1 2 3;
y= 2 4 6;
x1= 0.5 1 1.5 2 2.5 3;
那麼求y1 對應的量,就是
y1=interp1(x,y,x1);
預設的是線性插值。
matlab隨機函式怎麼取,matlab中怎樣隨機從一組資料中取一個數
如果是要要均勻分佈,可以使用語句rand 1 0.8 0.1 matlab中的rand函式 用於產生隨機數 均勻分佈的隨機數或矩陣 語法y rand n y rand m,n y rand m n y rand m,n,p,y rand m n p.y rand size a rand s rand...
matlab中離散楔的原理,matlab中離散小波的原理
我感覺matlab離散的原理好像和書中的那些原理沒半毛錢關係?笑翻了,哇咔咔,你才發現啊?這是小波參考書的通病,也是容易讓人抓狂的難點,就是小波理論的示意性理解與實際實現演算法總是被混為一談,實際這兩者有時真的沒半毛錢關係都沒有,完全是兩個領域的問題。在matlab中cwt理論的理解是用你上面的第一...
matlab的function中怎麼定義迭代函式
limit函式?那是用來算函式極限的,而且是屬於符號計算工具箱,你這是數列極限,不能用。如果非得用,就自己寫出通項公式,這樣可以做成函式極限的樣子。如果真想用matlab特色的數值解法,就得做for迴圈。而且不是1 inf,無窮根本就不能達到啊。p1 0.8 自己取初值 p2 p1 for k 1 ...