当前位置: 首页 > 工具软件 > Lagrange > 使用案例 >

数值分析-Lagrange插值

姬俊驰
2023-12-01

计算Lagrange插值多项式在x=x0处的值

实验方法与步骤

  1. function[y0,N]=Lagrange_eval(X,Y,x0)
  2. 利用Lagrange插值多项式
    X=[0.5,0.6];Y=[-0.693147,-0.510826];x0=0.54;
    用线性插值求出ln0.54的近似值
  3. X=[0.4,0.5,0.6];Y=[-0.916291,-0.693147,-0.510826];x0=0.54;
    用二次插值求出ln0.54的近似值
  4. X=[0.4,0.5,0.6,0.7];Y=[-0.916291,-0.693147,-0.510826,-0.356675];x0=0.54;
    用三次插值求出ln0.54的近似值

代码:


function[y0,N]=Lagrange_eval(X,Y,x0)
%X,Y是已知的插值点坐标点
%x0是插值点
%y0是Lagrange多项式在x0处的值
%N是Lagrange插值函数的权系数m=length(X);
N=zeros(m,1);
y0=0;
for i=1:m
    N(i)=1;
    for j=1:m
        if j~=i
         N(i)=N(i)*(x0-X(j))/(X(i)-X(j));
        end
    end
    y0=y0+Y(i)*N(i);
end

实验结果

X=[0.5,0.6];Y=[-0.693147,-0.510826];x0=0.54;
[y0,N]=Lagrange_eval(X,Y,x0)

y0 =

-0.6202

N =

0.6000
0.4000

X=[0.4,0.5,0.6];Y=[-0.916291,-0.693147,-0.510826];x0=0.54;
[y0,N]=Lagrange_eval(X,Y,x0)

y0 =

-0.6153

N =

-0.1200
0.8400
0.2800

X=[0.4,0.5,0.6,0.7];Y=[-0.916291,-0.693147,-0.510826,-0.356675];x0=0.54;
[y0,N]=Lagrange_eval(X,Y,x0)

y0 =

-0.6160

N =

-0.0640
0.6720
0.4480
-0.0560

实验报告

实验1 Lagrange插值
【实验目的】
计算Lagrange插值多项式在x=x0处的值
【实验内容】
1.了解MATLAB语言的用法
2. 用线性插值、二次插值、三次插值计算ln0.54的近似值。
【实验所使用的仪器设备与软件平台】
计算机,MATLAB R2018a
【实验方法与步骤】

  1. function[y0,N]=Lagrange_eval(X,Y,x0)
  2. 利用Lagrange插值多项式
    X=[0.5,0.6];Y=[-0.693147,-0.510826];x0=0.54;
    用线性插值求出ln0.54的近似值
  3. X=[0.4,0.5,0.6];Y=[-0.916291,-0.693147,-0.510826];x0=0.54;
    用二次插值求出ln0.54的近似值
  4. X=[0.4,0.5,0.6,0.7];Y=[-0.916291,-0.693147,-0.510826,-0.356675];x0=0.54;
    用三次插值求出ln0.54的近似值
    【实验结果】
    ( %X,Y是已知的插值点坐标点
    %x0是插值点
    %y0是Lagrange多项式在x0处的值
    %N是Lagrange插值函数的权系数)
    定义函数
    function[y0,N]=Lagrange_eval(X,Y,x0)

主程序
function[y0,N]=Lagrange_eval(X,Y,x0)
%X,Y是已知的插值点坐标点
%x0是插值点
%y0是Lagrange多项式在x0处的值
%N是Lagrange插值函数的权系数m=length(X);
N=zeros(m,1);
y0=0;
for i=1:m
N(i)=1;
for j=1:m
if j~=i
N(i)=N(i)*(x0-X(j))/(X(i)-X(j));
end
end
y0=y0+Y(i)*N(i);
end

【结果分析与讨论】

 类似资料: