真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

三次樣條插值java代碼 三次樣條插值的調(diào)用格式

插值的編程使用

matlab中使用插值函數(shù)

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元茄子河做網(wǎng)站,已為上家服務(wù),為茄子河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

插值函數(shù)(the function of interpolation )

interp1

調(diào)用函數(shù)的格式(Syntax)

yi = interp1(x,Y,xi)

yi = interp1(Y,xi)

yi = interp1(x,Y,xi,method)

yi = interp1(x,Y,xi,method,'extrap')

yi = interp1(x,Y,xi,method,extrapval)

pp = interp1(x,Y,method,'pp')

調(diào)用格式說(shuō)明(Description)

yi = interp1(x,Y,xi) 返回矢量X和Y決定的根據(jù)輸入的節(jié)點(diǎn)xi時(shí)對(duì)應(yīng)的y的值.矢量Y是矢量X的一個(gè)函數(shù)映射.

如果Y是一個(gè)矩陣,那么插值結(jié)果是一個(gè)對(duì)應(yīng)的矩陣.

[===================================================

yi = interp1(x,Y,xi) returns vector yi containing elements corresponding to the elements of xi and determined by interpolation within vectors x and Y. The vector x specifies the points at which the data Y is given. If Y is a matrix, then the interpolation is performed for each column of Y and yi is length(xi)-by-size(Y,2).

===================================================]

yi = interp1(x,Y,xi,method)插值中可以使用的方法: 插值方法 說(shuō)明 nearest 臨近的兩點(diǎn)插值 linear 線性插值(默認(rèn)) spline 三次樣條插值 pchip 分段三次Hermite插值多項(xiàng)式插值 cubic (作用于pchip相同) v5cubic 用matlab5版本中斷三次樣條插值 [====================================================

yi = interp1(x,Y,xi,method) interpolates using alternative methods:

methodDescription

nearestNearest neighbor interpolation

linearLinear interpolation (default)

splinesplineCubic spline interpolation

pchipPiecewise cubic Hermite interpolation

cubic(Same as 'pchip')

v5cubicCubic interpolation used in MATLAB 5

======================================================]

簡(jiǎn)單程序示例

x=[0.0 0.1 0.195 0.3 0.401 0.5];

y=[0.39849 0.39695 0.39142 0.38138 0.36812 0.35206];

plot(x,y);

T=interp1(x,y,.25,'linear') %線性插值

(返回結(jié)果T=0.3862)

T=interp1(x,y,.25,'nearest') % 兩點(diǎn)插值

(返回結(jié)果T=0.3814)

T=interp1(x,y,.25,'spline')  % 三次樣條插值

(返回結(jié)果T =0.3867)

T=interp1(x,y,.25,'cubic') %三次插值

(返回結(jié)果T =0.3867)

三次樣條插值

用Matlab實(shí)現(xiàn)了3次樣條曲線插值的算法。邊界條件取為自然邊界條件,即:兩個(gè)端點(diǎn)處的2階導(dǎo)數(shù)等于0;

共包含3各個(gè)函數(shù)文件,主函數(shù)所在文件(即使用的時(shí)候直接調(diào)用的函數(shù))為spline3.m,另外兩個(gè)函數(shù)文件是在splin3函數(shù)文件中被調(diào)用的自定義函數(shù)。一個(gè)是GetParam.m,一個(gè)是GetM.m。

%GetParam.m文件的內(nèi)容:

%根據(jù)給定的離散點(diǎn)的橫坐標(biāo)所構(gòu)成的向量,計(jì)算各個(gè)區(qū)間段的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所含元素的個(gè)數(shù);

%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%從區(qū)間0到區(qū)間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

%設(shè)置與邊界條件有關(guān)的參數(shù);

gM(1)=0;%起點(diǎn)的2階導(dǎo)數(shù);

gM(n)=0;%終點(diǎn)的2階導(dǎo)數(shù);

end

%GetM.m文件的內(nèi)容:

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

%主函數(shù)文件spline3.m的內(nèi)容:

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

函數(shù)調(diào)用的時(shí)候,result=spline3(x,Vx,Vy),x為代求點(diǎn)的橫坐標(biāo)向量,

(Vx,Vy)為已知的點(diǎn)的坐標(biāo)。

C程高手請(qǐng)求幫忙!計(jì)算方法,三次樣條插值程序?。?/h2>

2=6.610;

x3=6.082;

x4=5.607;

x5=5.423;

xH=5.825;

%我這里的版本是2006a的,不知道6.5是否可以通過(guò),你可以自己試試。

x=[x1 x2 x3 x4 x5];

y=[638.3 640.2 650.6 653.2 659.9];%你原來(lái)x只有5個(gè)元素,而y卻有7個(gè)元素,所以會(huì)出錯(cuò),我刪了最后兩個(gè)

xi=linspace(x1,x5,100);%這里自動(dòng)讓它平均生成了100個(gè)點(diǎn),如果覺(jué)得太多可以自行改少一點(diǎn)

%你下面左引號(hào)都是全角中文的,應(yīng)該換成英文半角狀態(tài)

ycubic=interp1(x,y,xi,'cubic');

ylinear=interp1(x,y,xi,'linear');

yH1=interp1(x,y,xH,'cubic');

yH2=interp1(x,y,xi,'linear');

plot(x,y,'*',xH,yH1,'o',xi,ycubic,'-');

grid on

————————————————————————————

你們老師果然不負(fù)責(zé)任啊,選課的時(shí)候也不說(shuō)明的。

建議自己找本matlab的教材學(xué)習(xí)一下,應(yīng)該還是很好上手的。


標(biāo)題名稱:三次樣條插值java代碼 三次樣條插值的調(diào)用格式
網(wǎng)站地址:http://weahome.cn/article/ddjdojc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部