拉格朗日插值公式

 一.线性插值(一次插值)
   
已知函数f(x)在区间[xk ,xk+1 ]的端点上的函数值yk =f(xk ), yk+1 = f(xk+1 ),求一个一次函数y=P1 (x)使得yk =f(xk ),yk+1 =f(xk+1 ), 其几何意义是已知平面上两点(xk ,yk ),(xk+1 ,yk+1 ),求一条直线过该已知两点。

    1.
插值函数和插值基函数
由直线的点斜式公式可知: 

         

把此式按照
yk yk+1 写成两项:
         

         
并称它们为一次插值基函数。该基函数的特点如下表: 
         
从而

          P1 (x) = yk lk (x) + yk+1 lk+1 (x)

此形式称之为拉格朗日型插值多项式。其中, 插值基函数与yk yk+1 无关,而由插值结点xk xk+1 所决定。一次插值多项式是插值基函数的线性组合, 相应的组合系数是该点的函数值yk yk+1 .

1: 已知
lg10=1,lg20=1.3010, 利用插值一次多项式求lg12的近似值。

: f(x)=lgx,f(10)=1,f(20)=1.3010,
          x0 =10 ,x1 =20 ,y0 =1 ,y1 =1.3010
则插值基函数为:
         
于是, 拉格朗日型一次插值多项式为:
         
:
         
lg12 lg10 lg20 两个值的线性插值得到,且具有两位有效数字(精确值lg12=1.0792).

 

 

 

二次拉格朗日与多次拉格朗日还在参详中,等过段时间给大家一起交流

### MATLAB 中实现并绘制拉格朗日插值公式 为了在 MATLAB 中实现并绘制拉格朗日插值公式,可以按照如下方式编写代码: #### 定义拉格朗日基函数 首先定义用于计算各阶拉格朗日基函数的子程序。对于给定的数据点 \( (x_i, y_i) \),第 i 阶拉格朗日基函数可表示为: \[ L_i(x)=\prod_{j=0,j\neq i}^{n}\frac{x-x_j}{x_i-x_j},i=0,\ldots,n \] ```matlab function li = lagrange_basis(i, x, xi) n = length(xi); li = ones(size(x)); for j = 1:n if j ~= i li = li .* ((x - xi(j)) / (xi(i) - xi(j))); end end end ``` #### 计算拉格朗日插值多项式 接着创建一个主函数来组合这些基函数从而得到完整的拉格朗日插值多项式 P(x): \[ P(x)=\sum^n_{i=0}y_iL_i(x),i=0,\ldots,n \] ```matlab function p = lagrange_interpolation(x, xi, yi) n = length(xi); m = length(x); p = zeros(1,m); for k = 1:m temp_sum = 0; for i = 1:n Li = lagrange_basis(i, x(k), xi); temp_sum = temp_sum + yi(i)*Li; end p(k) = temp_sum; end end ``` #### 绘制插值结果 最后,在适当范围内选取一系列测试点 x_test ,调用上述两个辅助函数完成最终绘图工作。 ```matlab % 已知数据点坐标 xi = [-2,-1,0,1,2]; yi = [8,3,0,5,4]; % 测试区间内的密集采样点 x_test = linspace(min(xi)-1,max(xi)+1,1e3); % 调用自定义函数获得对应位置处的高度向量 p_values = lagrange_interpolation(x_test, xi, yi); figure; hold on; plot(xi,yi,'o','MarkerSize',8); % 原始离散样本点标记出来 plot(x_test,p_values,'r'); % 插值得到连续曲线显示红色线条 title('Lagrange Interpolating Polynomial'); xlabel('X Axis'); ylabel('Y Axis'); legend({'Sample Points','Interpolated Curve'}); grid minor; hold off; ``` 通过以上步骤可以在 MATLAB 中成功实现拉格朗日插值公式的构建与可视化[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值