回 帖 发 新 帖 刷新版面

主题:请求高手的帮忙啊~

function [yy,c]=lagrange(x,y,z)
nx=length(x);ny=length(y);
n=min(nx,ny);
yy=0;
for i=1:n
    p=1.0;
    for j=1:n
        if i~=j
            if abs(x(i)-x(j))<eps
                error('error');
                return;
            end
         ll=[1.0-x(j)]/(x(i)-x(j));
         p=conv(p,ll);
     end
 end
 yy=pplus(yy,p*y(i));
end
if nargout=2
    c=polyval(yy,2);
end
x=[1 2 3 4 5]
y=1.30 1.80 2.20 2.9 3.5]
p=lagrange(x,y) 




运行不了。据说是少个主程序去运行它。。谁帮我看看,怎么整阿。。

回复列表 (共4个回复)

沙发

高手们帮帮我。。。。。。。。

板凳

-.-  高手高手。。。。帮帮我。。。

3 楼


function [yy,c]=lagrange(x,y,z)
nx=length(x);ny=length(y);
n=min(nx,ny);
yy=0;
for i=1:n
    p=1.0;
    for j=1:n
        if i~=j
            if abs(x(i)-x(j))<eps
                error('error');
                return;
            end
         ll=[1.0-x(j)]/(x(i)-x(j));
         p=conv(p,ll);
     end
 end
 yy=plus(yy,p*y(i));
end
if nargout==2
    c=polyval(yy,2);
end

主程序:
x=[1 2 3 4 5]
y=1.30 1.80 2.20 2.9 3.5]
p=lagrange(x,y)

qq:403942111
结果为1.300 

4 楼

[quote]
function [yy,c]=lagrange(x,y,z)

p=lagrange(x,y)


[/quote]
是不是要做lagrange插值?没插值点!

function fi=lagran(x,f,xi)
%作用:lagrange插值
 fi=zeros(size(xi));
 npl=length(f);
 for i=1:npl
     z=ones(size(xi));
     for j=1:npl
         if i~=j,z=z.*(xi-x(j))/(x(i)-x(j));end
     end
     fi=fi+z*f(i);
 end 
 return

我来回复

您尚未登录,请登录后再回复。点此登录或注册