拉格朗日插值的matlab代码

2025-12-16 20:20:48
推荐回答(3个)
回答1:

1、给出一列数据之后,作图如下:aa= randn(100,1);plot(aa);。

2、然后在做好的图中找到tools--basic fitting,打开如下对话框。

3、在打开的对话框中有多种数据插值方法,并可以给出插值的公式。使用cubic方法:于是可以看到插值后的曲线和插值公式。

4、一维插值相当于给出了xy的公式,比如我们上述命令中,aa的值为y,而aa中对应值的位置就是x。

5、还可以使用其他命令来进行数据插值。

6、matlab的interp1中还有nearest,next,previous,cubic等插值方法。

回答2:

拉格朗日插值的matlab代码如下:

function yy=Lagrange(x,y,xi)

m=length(x);

n=length(y);

if m ~= n , error('向量x与y的长度必自须一致'); end;

s=0;

for i=1 : n

z=ones(1,length(xi));

for j=1 : n

if j ~= i

z=z.*(xi-x(j))./(x(i)-x(j));

end

s=s+z*y(i);

end

yy=s;

下面为操作方法:

1、给出一列数据之后,作图如下:aa= randn(100,1);plot(aa);。

2、然后在做好的图中找到tools basic fitting,打开如下对话框。

3、在打开的对话框中有多种数据插值方法,并可以给出插值的公式。使用cubic方法于是可以看到插值后的曲线和插值公式。

4、一维插值相当于给出了xy的公式,比如我们上述命令中,aa的值内为y,而aa中对应值的位置就是x。

5、还可以使用其他命令来进容行数据插值。

6、matlab的interp中还有nearest,next,previous,cubic等插值方法。

回答3:

第一步

function yy=Lagrange(x,y,xi)
m=length(x);
n=length(y);
if m ~= n , error('向量x与y的长度必须一致'); end;
s=0;
for i=1 : n
z=ones(1,length(xi));
for j=1 : n
if j ~= i
z=z.*(xi-x(j))./(x(i)-x(j));
end
end
s=s+z*y(i);
end
yy=s;
保存为M文件。(文件→新建→M文件)

第二步

x=[0.5610,0.56280,0.56401,0.56521];
y=[0.82741,0.82659,0.82577,0.82495];
xi=[0.5625,0.5635,0.5645];
yi=Lagrange(x,y,xi)
粘贴至(命令窗口)。