資源簡(jiǎn)介
拉格朗日插值法程序
n=size(pointx,2);
L=ones(n,size(x,2));
if (size(pointx,2)~=size(pointy,2))
fprintf(1,'\nERROR!\nPOINTX and POINTY must have the same number of elements\n');
y=NaN;
else
for i=1:n
for j=1:n
if (i~=j)
L(i,:)=L(i,:).*(x-pointx(j))/(pointx(i)-pointx(j));
end
end
end
y=0;
for i=1:n
y=y+pointy(i)*L(i,:);
end
end

代碼片段和文件信息
function?y=lagrange(xpointxpointy)
%
%LAGRANGE???approx?a?point-defined?function?using?the?Lagrange?polynomial?interpolation
%
%??????LAGRANGE(XPOINTXPOINTY)?approx?the?function?definited?by?the?points:
%??????P1=(POINTX(1)POINTY(1))?P2=(POINTX(2)POINTY(2))?...?PN(POINTX(N)POINTY(N))
%??????and?calculate?it?in?each?elements?of?X
%
%??????If?POINTX?and?POINTY?have?different?number?of?elements?the?function?will?return?the?NaN?value
%
%??????function?wrote?by:?Calzino
%??????7-oct-2001
%
n=size(pointx2);
L=ones(nsize(x2));
if?(size(pointx2)~=size(pointy2))
???fprintf(1‘\nERROR!\nPOINTX?and?POINTY?must?have?the?same?number?of?elements\n‘);
???y=NaN;
else
???for?i=1:n
??????for?j=1:n
?????????if?(i~=j)
????????????L(i:)=L(i:).*(x-pointx(j))/(pointx(i)-pointx(j));
?????????end
??????end
???end
???y=0;
???for?i=1:n
??????y=y+pointy(i)*L(i:);
???end
end
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件?????????908??2001-10-07?23:08??lagrange.m
- 上一篇:最速下降法matlab
- 下一篇:頻譜圖matlab函數(shù)
評(píng)論
共有 條評(píng)論