拉格朗日插值法:Matlab实现与可视化

本示例使用Matlab代码演示了拉格朗日插值法的实现过程,并通过可视化展示了不同插值点数对插值曲线的影响。

代码实现

function y = lagrange (x0,y0,x)
  m=length(x);
  n=length(x0);
  for i=1:m
      z=x(i);
      s=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
%%%%%%%%%%%%%%%%%%%%

clear;
clc;
clf;
x0=[-1:0.02:1];
y0=1./(1+25*x0.^2);
plot(x0,y0,'b') %绘制原曲线

hold on
x1=linspace(-1,1,11);
y1=1./(1+25*x1.^2);
y0=lagrange(x1,y1,x0);
plot(x0,y0,'--r') %插值曲线 

x1=linspace(-1,1,21);
y1=1./(1+25*x1.^2);
y0=lagrange(x1,y1,x0);
plot(x0,y0,'--g') %插值曲线

运行结果

可以看到,程序通过拉格朗日插值法得到了原曲线的插值曲线,并且可以通过调整插值点的数量(11和21),得到更加精细的插值曲线。

说明

  • 代码中lagrange函数实现了拉格朗日插值法的核心算法。
  • x0y0分别表示原曲线的横坐标和纵坐标。
  • x1y1分别表示插值点的横坐标和纵坐标。
  • 通过改变插值点的数量,可以观察到插值曲线对原曲线的拟合程度。

总结

拉格朗日插值法是一种常用的插值方法,可以根据已知的离散数据点,得到一个连续的函数。本示例展示了如何使用Matlab实现拉格朗日插值法,并通过可视化展示了插值结果。

拉格朗日插值法:Matlab实现与可视化

原文地址: https://www.cveoy.top/t/topic/nZFe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录