matlab求拉格朗日插值多项式并画图
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/06/16 17:43:06
matlab求拉格朗日插值多项式并画图
我用这个matlab程序可以求出x0点的函数值,但我想要求出插值多项式怎么求啊,还有把多项式画图象怎么弄?
nx=length(x);
ny=length(y);
if nx~=ny
warning('矢量x与y的长度应该相等')
return
end
m=length(x0);
%按照公式,对要求的插值点矢量x0的每个元素进行计算
for i=1:m
t=0.0;
for j=1:nx
u=1.0;
for k=1:nx
if =j
u=u*(x0(i)-x(k))/(x(j)-x(k));
end
end
t=t+u*y(j);
end
s(m)=t;
end
return
我要求的是这样的
x=[0 100 200 300 500];
y=[0.276 1.67 1.97 2.2 2.53];
figure
plot(x,y,'*')
x0=250
hold on
r=Lagrangenew(x,y,x0);
disp('r=');disp(r);
plot(x0,r,'r-*')
plot(x,y)
title('二氧化硫与电压关系分析')
求出插值多项式并画图出来,
我用这个matlab程序可以求出x0点的函数值,但我想要求出插值多项式怎么求啊,还有把多项式画图象怎么弄?
nx=length(x);
ny=length(y);
if nx~=ny
warning('矢量x与y的长度应该相等')
return
end
m=length(x0);
%按照公式,对要求的插值点矢量x0的每个元素进行计算
for i=1:m
t=0.0;
for j=1:nx
u=1.0;
for k=1:nx
if =j
u=u*(x0(i)-x(k))/(x(j)-x(k));
end
end
t=t+u*y(j);
end
s(m)=t;
end
return
我要求的是这样的
x=[0 100 200 300 500];
y=[0.276 1.67 1.97 2.2 2.53];
figure
plot(x,y,'*')
x0=250
hold on
r=Lagrangenew(x,y,x0);
disp('r=');disp(r);
plot(x0,r,'r-*')
plot(x,y)
title('二氧化硫与电压关系分析')
求出插值多项式并画图出来,
![matlab求拉格朗日插值多项式并画图](/uploads/image/z/3184936-16-6.jpg?t=matlab%E6%B1%82%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E6%8F%92%E5%80%BC%E5%A4%9A%E9%A1%B9%E5%BC%8F%E5%B9%B6%E7%94%BB%E5%9B%BE)
你需要把上面的部分保存为Lagrangenew.m文件.
文件头应加 function s=Lagrangenew(x,y,x0)
后面是
nx=length(x);
ny=length(y);
.
然后,可以命令窗口执行下面部分的命令
结果如下
再问: 这个自己搞定了,我想问下是怎么把插值多项式的图像写出来,就是光滑的曲线那种的,谢谢大神
文件头应加 function s=Lagrangenew(x,y,x0)
后面是
nx=length(x);
ny=length(y);
.
然后,可以命令窗口执行下面部分的命令
结果如下
![](http://img.wesiedu.com/upload/b/bf/bbfbd56b71cd23129647e7e08a0dab53.jpg)
再问: 这个自己搞定了,我想问下是怎么把插值多项式的图像写出来,就是光滑的曲线那种的,谢谢大神