作业帮 > 综合 > 作业

大神帮我看看这个matlab程序实现的拉格朗日插值程序计算运行为什么有问题?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 10:13:13
大神帮我看看这个matlab程序实现的拉格朗日插值程序计算运行为什么有问题?

%Lagrange interpolation
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));
            end
        end
        s=p*y0(k)+s;
     end
     y(i)=s;
end
x0=1:5;
y0=sin(x1);
x=1:0.2:2;

y0=lagran1(x0,y0,x)


程序最后面的
x0=1:5;
y0=sin(x0);
x=1:0.2:2;
y0=lagrange(x0,y0,x)
是在命令窗口输入的.可是除了问题
应该是给你拉格朗日函数的输入参数不对.
再问: 你是说x0?应该不是吧。。
再答: clear all;clc x0=1:5; y0=sin(x0); x=1:0.2:2; y0=lagrange(x0,y0,x) 命令窗口输这个就没有问题。
再问: 我弄出来了~~多谢大神指导~~那个clear all好像不能和clc同时用吧,我是把clc去掉才调出来的,能不能跟我讲一下用clear all的原理是什么?以后调用函数时都要用吗
再答: clc 是清除显示的内容。 clear all 是清除内存中的变量,由于你之前运算过程中存在赋值,可能会造成变量的大小或数值的变化,所以从新运行函数前,先把变量清空。关于用不用得看实际情况啦。
再问: 啊啊啊~~大谢大神呀~~我是新手~~研究程序研究了一晚上,帮我大忙啦~以后有问题就多多向您请教啦
再答: 相互学习交流。