拉格朗日插值公式详解[通俗易懂]

拉格朗日插值公式详解[通俗易懂]一.线性插值(一次插值)   已知函数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.插值函数和插值基函数由直线的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一.线性插值(一次插值)
    已知函数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).

    二.二次插值多项式
    已知函数y=f(x)在点xk-1 ,xk ,xk+1上的函数值yk-1 =f(xk-1 ),yk =f(xk ), yk+1 =f(xk+1 ), 求一个次数不超过二次的多项式P2(x), 使其满足,

             P2 (xk-1 )=yk-1 , P2 (xk )=yk , P2 (xk+1 )=yk+1 .

其几何意义为:已知平面上的三个点
             (xk-1 ,yk-1 ),(xk ,yk ),(xk+1 ,yk+1 ),

求一个二次抛物线, 使得该抛物线经过这三点。
    1.插值基本多项式
有三个插值结点xk-1 ,xk ,xk+1 构造三个插值基本多项式,要求满足:

(1) 基本多项式为二次多项式; (2) 它们的函数值满足下表: 
               拉格朗日插值公式详解[通俗易懂]
因为lk-1 (xk )= 0,lk-1 (xk+1 )=0, 故有因子(x-xk )(x-xk+1 ), 而其已经是一个二次多项式, 仅相差一个常数倍, 可设
              lk-1 (x)=a(x-xk )(x-xk+1 ),
又因为
               lk-1 (xk-1 )=1 ==> a(xk-1 -xk )(xk-1 -xk+1 )=1
得 
              拉格朗日插值公式详解[通俗易懂]   

从而
拉格朗日插值公式详解[通俗易懂]
同理得
拉格朗日插值公式详解[通俗易懂]拉格朗日插值公式详解[通俗易懂]
基本二次多项式见右上图(点击按钮“显示Li”)。

    2. 拉格朗日型二次插值多项式
由前述, 拉格朗日型二次插值多项式:
                P2 (x)=yk-1 lk-1 (x)+yk lk (x)+yk+1 lk+1 (x),P2 (x)
是三个二次插值多项式的线性组合,因而其是次数不超过二次的多项式,且满足:
                P2 (xi )=yi , (i=k-1,k,k+1) 。
例2 已知:
                xi         10      15             20

                yi=lgxi    1    1.1761         1.3010

利用此三值的二次插值多项式求lg12的近似值。
解:设x0 =10,x1 =15,x2 =20,则: 
      拉格朗日插值公式详解[通俗易懂]
故:
      拉格朗日插值公式详解[通俗易懂]
      拉格朗日插值公式详解[通俗易懂]

所以

      拉格朗日插值公式详解[通俗易懂]
7利用三个点进行抛物插值得到lg12的值,与精确值lg12=1.0792相比,具有3位有效数字,精度提高了。

    三、拉格朗日型n次插值多项式
已知函数y=f(x)在n+1个不同的点x0 ,x1 ,…,x2 上的函数值分别为

y0 ,y1 ,…,yn ,求一个次数不超过n的多项式Pn (x),使其满足:

         Pn (xi )=yi , (i=0,1,…,n),

即n+1个不同的点可以唯一决定一个n次多项式。
    1. 插值基函数
过n+1个不同的点分别决定n+1个n次插值基函数
          l0 (x),l1 (x),…,ln (X)
每个插值基本多项式li (x)满足:

   (1) li (x)是n次多项式;

   (2) li (xi )=1,而在其它n个li (xk )=0 ,(k≠i)。

由于li (xk )=0 ,(k≠i), 故有因子: 

         (x-x0 )…(x-xi-1 )(x-xi+1 )…(x-xn )

因其已经是n次多项式,故而仅相差一个常数因子。令:
          li (x)=a(x-x0 )…(x-xi-1 )(x-xi+1 )…(x-xn )

由li (xi )=1,可以定出a, 进而得到: 

          拉格朗日插值公式详解[通俗易懂]

2.n次拉格朗日型插值多项式Pn (x)

Pn (x)是n+1个n次插值基本多项式l0 (x),l1 (x),…,ln (X)的线性组合,相应的组合系数是y0 ,y1 ,…,yn。即:

          Pn (x)=y0 l0 (x)+y1 l1 (x)+…+yn ln (x),

从而Pn (x)是一个次数不超过n的多项式,且满足

          Pn (xi )=yi , (i=0,1,2,…,n).

    例3 求过点(2,0),(4,3),(6,5),(8,4),(10,1)的拉格朗日型插值多项式。
解 用4次插值多项式对5个点插值。
          拉格朗日插值公式详解[通俗易懂]       

   拉格朗日插值公式详解[通俗易懂]
所以
           拉格朗日插值公式详解[通俗易懂]
拉格朗日插值公式详解[通俗易懂]拉格朗日插值公式详解[通俗易懂]
    四、拉格朗日插值多项式的截断误差
我们在[a,b]上用多项式Pn (x) 来近似代替函数f(x), 其截断误差记作 
      Rn (x)=f(x)-Pn (x)
当x在插值结点xi 上时Rn (xi )=f(xi )-P n(xi )=0,下面来估计截断误差:

定理1:设函数y=f(x)的n阶导数y(n) =f(n) (x)在[a,b]上连续,
     y(n+1) = f(n+1) (x)
在(a,b)上存在;插值结点为:
    a≤x0 <x1 <…<xn ≤b,
Pn (x)是n次拉格朗日插值多项式;则对任意x∈[a,b]有: 
       拉格朗日插值公式详解[通俗易懂]
其中ξ∈(a,b), ξ依赖于x:ωn+1 (x)=(x-x0 )(x-x1 )…(x-xn )

证明:由插值多项式的要求:
      Rn(xi )=f(xi )-Pn (xi )=0,(i=0,1,2,…,n);

      Rn (x)=K(x)(x-x0 )(x-x1 )…(x-xn )=K(x)ωn+1 (x)

其中K(x)是待定系数;固定x∈[a,b]且x≠xk ,k=0,1,2,…,n;作函数

       H(t)=f(t)-Pn (t)-K(x)(t-x0 )(t-x1 )…(t-xn )

则 H(xk )=0,(k=0,1,2,…,n), 且H(x)=f(x)-Pn (x)-Rn(x)=0, 所以,

H(t)在[a,b]上有n+2个零点,反复使用罗尔中值定理:存在ξ∈(a,b),

使拉格朗日插值公式详解[通俗易懂]; 因Pn (x)是n次多项式,故P(n+1) (ξ)=0, 而 

       ωn+1 (t)=(t-x0 )(t-x1 )…(t-xn )

是首项系数为1的n+1次多项式,故有

        拉格朗日插值公式详解[通俗易懂]
于是
        H(n+1) (ξ)=f(n+1)(ξ)-(n+1)!K(x)
得:
        拉格朗日插值公式详解[通俗易懂]
所以
        拉格朗日插值公式详解[通俗易懂]

设 拉格朗日插值公式详解[通俗易懂], 则:

        拉格朗日插值公式详解[通俗易懂]
易知,线性插值的截断误差为:
        拉格朗日插值公式详解[通俗易懂]
二次插值的截断误差为:
        拉格朗日插值公式详解[通俗易懂]
下面来分析前面两个例子(例1,例2)中计算lg12的截断误差:
在例1中,用lg10和lg20计算lg12,
       P1(12)=1.0602,lg12=1.0792

       e=|1.0792-1.0602|=0.0190;
估计误差:f(x)=lgx, 
       拉格朗日插值公式详解[通俗易懂],当x∈[10,20]时, 拉格朗日插值公式详解[通俗易懂]
       拉格朗日插值公式详解[通俗易懂]

在例2中,用lg10,lg15和lg20计算lg12.
        P2(12)=1.0766,

      e = |1.0792-1.0766|=0.0026
估计误差:
        拉格朗日插值公式详解[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200681.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月23日 下午5:15
下一篇 2025年8月23日 下午5:43


相关推荐

  • ps 命令详解

    ps 命令详解From http blog chinaunix net uid 25681671 id 3201927 html 进程和作业管理命令 http man linuxde net sub 进程和作业管理 Linux 关于进程 线程的命令 kill 和 pgrep 和 pidof 和 awk 和 pkill 和 killall https blog csdn net freeki

    2026年3月20日
    3
  • ollydbg激活成功教程教程_逆向教程分享

    ollydbg激活成功教程教程_逆向教程分享目录一、OllyDbg基本知识1.1简介1.2窗口界面1.2.1窗口组成1.2.2窗口功能1.3常用快捷键二、测试修改实例2.1测试内容2.2测试环境2.3测试程序2.4测试步骤2.4.1将程序载入OD2.4.2定位内存地址2.4.3修改内容2.5测试结果三、小结一、OllyDbg基本知识1.1简介OllyDbg是一种具有可视化界面的汇编分析调试器,是一个支持插件扩展功能的动态追踪工具。1.2窗口界面1.2.1窗口组…

    2025年11月23日
    4
  • basename剔除目录

    basename剔除目录给出一个包含有指向一个文件的全路径的字符串 本函数返回基本的文件名 如果文件名是以 suffix 结束的 那这一部分也会被去掉 Examples basename usr bin sortOutput sort basenameincl stdio h hOutput stdio char dirname char path char basenam

    2026年3月17日
    1
  • QSettings介绍

    QSettings介绍简介 QSettings 类提供了持久的跨平台应用程序设置 用户通常期望应用程序记住它的设置 窗口大小 位置等 所有会话 这些信息通常存储在 Windows 系统注册表 OSX 和 iOS 的属性列表文件中 在 Unix 系统中 在缺乏标准的情况下 许多应用程序 包括 KDE 应用程序 使用 INI 文本文件 QSettings 围绕这些抽象技术 使我们能够以便携的方式保存和恢复应用程序设置 它还支持自定义存储格式 QSet

    2026年3月19日
    3
  • JSONArray转换成List<T>

    JSONArray转换成List<T>常用的方法:1.首先有一个JSONArray对象,比如是jsonArrayJSONObjectjsonObject1=newJSONObject();JSONObject1.put(“username”,”zhangsan”);JSONObjectjsonObject2=newJSONObject();JSONObject2.put(“username”,”lisi”);JSONArrayjsonArray=newJSONArray();jsonArray.add(j

    2022年6月23日
    49
  • python txt读取_python读取本地文件

    python txt读取_python读取本地文件以下代码为1:新建onefile.txt文件2:向onefile.txt文件中写入数据3:尝试读取新建文件的所有数据4:尝试读取该文件指定数据5:拷贝onefile.txt至新建twofile.txt文件,并且统计行数与字节长度下面该代码为第1,2,3,4项把代码复制,并创建test.py文件,然后在当前文件夹中的终端执行python3test.py即可#打开文件,并且写入6.2文件的基本处理defmain():#第一步打开文件#打开文件open()

    2026年4月17日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号