matlab 拉格朗日插值函数
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/18 10:06:22
matlab 拉格朗日插值函数
m文件为
function [Ln] = Lagrange(px,py)
n=length(x);L=zeros(1,n); %一行n列
for i=1:n
a=1;p=1;
for k=1:n
if =i
a=a*(x(i)-x(k)); %计算分母
p=conv(p,[1-x(k)]); %计算分子多项式
end
end
L=L+(y(i)/a)*p;
end
主程序:
x = -5 :0.01 :5;
y = sin(x);
plot(x,y,'r:') % 绘制准确函数图像
hold on
px = -5 :1 :5; % 插值点
py = sin(px); % 插值点上的函数值
plot(px,py,'m+') % 绘制插值点
[Ln] = Lagrange(px,py); % 根据插值点及其值计算 Lagrange 插值多项式
Lx = -5:0.01:5; % 绘图点
Ly = polyval(Ln,Lx); % 计算绘图点上的多项式函数值
plot(Lx,Ly,'b-.') % 绘制 多项式 图像legend('sin(x)','point','Ln','Location','NorthEast')
hold off
错误处:
Undefined function or variable 'x'.
Error in ==> Lagrange at 2
n=length(x);L=zeros(1,n); %一行n列
m文件为
function [Ln] = Lagrange(px,py)
n=length(x);L=zeros(1,n); %一行n列
for i=1:n
a=1;p=1;
for k=1:n
if =i
a=a*(x(i)-x(k)); %计算分母
p=conv(p,[1-x(k)]); %计算分子多项式
end
end
L=L+(y(i)/a)*p;
end
主程序:
x = -5 :0.01 :5;
y = sin(x);
plot(x,y,'r:') % 绘制准确函数图像
hold on
px = -5 :1 :5; % 插值点
py = sin(px); % 插值点上的函数值
plot(px,py,'m+') % 绘制插值点
[Ln] = Lagrange(px,py); % 根据插值点及其值计算 Lagrange 插值多项式
Lx = -5:0.01:5; % 绘图点
Ly = polyval(Ln,Lx); % 计算绘图点上的多项式函数值
plot(Lx,Ly,'b-.') % 绘制 多项式 图像legend('sin(x)','point','Ln','Location','NorthEast')
hold off
错误处:
Undefined function or variable 'x'.
Error in ==> Lagrange at 2
n=length(x);L=zeros(1,n); %一行n列
你能把拉格朗日函数的内容说一下吗?
再问: 我已经解决了,谢谢。
再问: 我已经解决了,谢谢。