• 插值法:


    直线公式:

    (y-y0)/(x-x0)=(y1-y0)/(x1-x0)
    解方程得:y=y0+(x-x0)*(y1-y0)/(x1-x0)
    拉格朗日插值法:
    对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。这样的多项式称为拉格朗日(插值)多项式;
    用途:1 根据不同观测点的一组值拟合出公式
    2 进行插值运算。

    假设有某个二次多项式函数f,已知它在三个点上的取值为:

    • f(4)=10
    • f(5)=5.25
    • f(6)=1

    要求f(18)的值。

    首先写出每个拉格朗日基本多项式:

    ell _{0}(x)={frac  {(x-5)(x-6)}{(4-5)(4-6)}}
    ell _{1}(x)={frac  {(x-4)(x-6)}{(5-4)(5-6)}}
    ell _{2}(x)={frac  {(x-4)(x-5)}{(6-4)(6-5)}}

    然后应用拉格朗日插值法,就可以得到p的表达式(p为函数f的插值函数):

    p(x)=f(4)ell _{0}(x)+f(5)ell _{1}(x)+f(6)ell _{2}(x)
    .\,\,\,\,\,\,\,\,\,\,=10cdot {frac  {(x-5)(x-6)}{(4-5)(4-6)}}+5.25cdot {frac  {(x-4)(x-6)}{(5-4)(5-6)}}+1cdot {frac  {(x-4)(x-5)}{(6-4)(6-5)}}
    .\,\,\,\,\,\,\,\,\,\,={frac  {1}{4}}(x^{2}-28x+136)

    此时代入数值 18就可以求出所需之值: f(18)=p(18)=-11

    C算法: 

    引用 :实验二:Lagrange拉格朗日插值法之C语言代码 - Chen_dSir的博客 - CSDN博客  https://blog.csdn.net/Chen_dSir/article/details/70236987

    ypedef struct stPoint
    {
      double x;
      double y;
    } Point
    #define Dots_N 5

    Point Dots[Dots_N];
    /*n 为插入的点的个数,tmp为拉格朗日基函数,x为要插入的点,lagrange为插值运算后返回的值。*/
    double f32Lagrange_LineSert(Point *points,u8 n,double x)
    {
      u8 i ,j;
      double tmp,lagrange=0;//这个x是你将要计算的f(x)插值点,tmp是拉格朗日基函数,larange是根据拉格朗日函数得出f(x)的值
      for(i=0;i<=n;i++)
      {
        for(j=0,tmp=1;j<=n;j++)
        {
          if(j!=i) //去掉xi与xj相等的情况,范德蒙行列式下标就是j!=k,相等分母为0就没意义了
          {
            tmp=tmp*(x-points[j].x)/(points[i].x-points[j].x);//这个就是套公式tmp是拉格朗日基函数
          }
        }
        lagrange=lagrange+tmp*points[i].y; //最后计算基函数*y,全部加起来,就是该x项的拉格朗日函数了
      }
      return lagrange;
    }

  • 相关阅读:
    POJ 2112 Optimal Milking (Dinic + Floyd + 二分)
    POJ 3678 Katu Puzzle (2-SAT)
    超详细的Java面试题总结(一)之Java基础知识篇
    Java高级面试题及答案
    Java线程面试题 Top 50
    Java面试题收集
    Spring基础使用(一)--------IOC、Bean的XML方式装配
    你不知道的Javascript:有趣的setTimeout
    Java 10 的 10 个新特性,将彻底改变你写代码的方式!
    深入理解 Java 多线程核心知识:跳槽面试必备
  • 原文地址:https://www.cnblogs.com/jieruishu/p/10173732.html
Copyright © 2020-2023  润新知