浅谈拉格朗日插值法

这篇具有很好参考价值的文章主要介绍了浅谈拉格朗日插值法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

浅谈拉格朗日插值法

好像FFT要用到,所以就学习一手
版题

什么是插值

在离散数据的基础上补插连续的函数,使得这条连续函数经过所有离散数据点,这个过程就叫插值。

其意义在于:

插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

理解一下:
就是把一个足球踢出去,假设球始终在一个平面上飞行,它的轨迹就可以抽象为 \(f(x)\) (假设这个函数至于时间有关)

现在你有一些照片,所以你可以得到某几个时间点球的位置,想要还原出这个函数 \(f(x)\) 的轨迹。但是你的照片数量是有限的,而函数的点是连续的所以插值的结果 \(g(x)\) 可能有无穷多种

插值有许多方法,包括:三角函数插值;线性插值法;牛顿插值法;拉格朗日插值法 …… 但是蒟蒻只会拉格朗日插值法

拉格朗日插值法

这个方法很简单,相当于硬性拼凑。
举个例子,现在平面上有三个点分别是\((x_1 , y_1),(x_2 , y_2),(x_3 , y_3)(x_1 < x_2 < x_3)\),我们用这三个插值。
我们需要构造 \(n\) (这里是3)个函数。第 \(i\) 个函数满足:
\( \left\{\begin{matrix}{aligned} 0 , x = x_j (j != i) \\ 1 , x = x_i \\ others , I \ don't \ care \end{matrix}\right. \)

这是第一个:
浅谈拉格朗日插值法

第二个:
浅谈拉格朗日插值法

第三个
浅谈拉格朗日插值法

然后我们发现 \(f(x) = y_1f_1(x) + y_2f_2(x) + \cdots + y_nf_n(x)\)
浅谈拉格朗日插值法

对于我们构造出来的第一 \(1\) 条曲线显然满足性质:

\[f_1 = \dfrac{(x - x_2)(x - x_3)}{(x_1 - x_2)(x_1 - x_3)} \]

进一步推广:

\[f_i(x) = \prod_{j \neq i} ^ {n}\dfrac{x - x^j}{x_i - x_j} \]

然后就有了:文章来源地址https://www.toymoban.com/news/detail-425083.html

\[f(x) = \sum_{i = 1}^{n}y_i*f_i(x) \]

code

#include <bits/stdc++.h>
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
#define LL long long
using namespace std;
const LL mod = 998244353;
LL n , k;
struct RE {
    LL x , y;
}re[2005];
LL read () {
    LL val = 0 , fu = 1;
    char  ch = getchar ();
    while (ch < '0' || ch > '9') {
        if (ch == '-') fu = -1;
        ch = getchar ();
    }
    while (ch >= '0' && ch <= '9') {
        val = val * 10 + (ch - '0');
        ch = getchar ();
    }
    return val * fu;
}
LL ksm (LL x , LL y) {
    LL ans = 1;
    while(y) {
        if(y&1) ans = ans * x %mod;
        x = x * x % mod;
        y >>= 1;
    }
    return ans;
}
int main () {
    LL ans = 0 , ans1;
    n = read () , k = read ();
    fu (i , 1 , n) {
        re[i].x = read () , re[i].y = read ();
    }
    fu (i , 1 , n) {
        ans1 = re[i].y;
        fu (j , 1 , n)
            if (i ^ j)
                ans1 = 1ll * (ans1 * (k - re[j].x) % mod) * ksm (re[i].x - re[j].x , mod - 2) % mod;
        ans = (ans + ans1+mod) % mod;
    }
    printf ("%lld" , ans);
    return 0;
}

到了这里,关于浅谈拉格朗日插值法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践

    温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就 需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满足

    2024年02月05日
    浏览(44)
  • Lagrange插值法实验:求拉格朗日插值多项式和对应x的近似值matlab实现(内附代码)

    已知函数表: 求出Lagrange 插值多项式,并计算x=1.2处的y的近似值。 求解多项式: 求解近似值: 请输入横坐标向量X: X=[1, 2, 4, 5] 请输入纵坐标向量Y: Y=[16,12,8,9] 基函数为: q1(x)=(11 x^2)/12 - (19 x)/6 - x^3/12 + 10/3 q2(x)=(29 x)/6 - (5 x^2)/3 + x^3/6 - 10/3 q3(x)=(4 x^2)/3 - (17 x)/6 - x^3/6 + 5/3 q4(x)=

    2024年02月08日
    浏览(47)
  • 单摆的动力学建模以及matlab仿真(牛顿法和拉格朗日方程法)

    有空再写 首先我们先确定广义坐标,并同时计算出来摆杆的转动惯量 接着列拉格朗日方程 计算动能(转动动能)  计算势能(取铰链处为零势能高度):  计算L 计算拉格朗日方程中的中间量   将上述的中间量带入拉格朗日方程,得到动力学模型: 变换一下形式:  当角

    2023年04月08日
    浏览(44)
  • 【运筹优化】拉格朗日松弛 & 次梯度算法求解整数规划问题 + Java调用Cplex实战

    当遇到一些很难求解的模型,但又不需要去求解它的精确解,只需要给出一个次优解或者解的上下界,这时便可以考虑采用松弛模型的方法加以求解。 对于一个整数规划问题,拉格朗日松弛放松模型中的部分约束。这些被松弛的约束并不是被完全去掉,而是利用拉格朗日乘子

    2024年02月11日
    浏览(48)
  • 机器人中的数值优化(十四)——罚函数法(Penalty Method)、障碍函数法(Barrier Method)、拉格朗日松弛法(Lagrangian Relaxation)

       本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会

    2024年02月04日
    浏览(38)
  • 深度学习基础知识 最近邻插值法、双线性插值法、双三次插值算法

    最邻近插值:将每个目标像素找到距离它最近的原图像素点,然后将该像素的值直接赋值给目标像素 优点 :实现简单,计算速度快 缺点 :插值结果缺乏连续性,可能会产生锯齿状的边缘,对于图像质量影响较大,因此当处理精度要求较高的图像时,通常会采用更加精细的插

    2024年02月03日
    浏览(52)
  • 算法--插值法

    插值法是一种数学方法,主要用于通过已知的离散数据来估算未知值。常见的插值法有线性插值、最近邻插值、双线性插值和双三次插值。以下是其基本原理和应用: 线性插值:假设在两个已知数据点之间,数据的变化是线性的,因此可以通过已知的两点的坐标来计算经过这

    2024年01月18日
    浏览(41)
  • 基于Matlab的插值问题(Lagrange插值法、三次插值多项式)

    要求 1、 利用Lagrange插值公式 L n ( x ) = ∑ k = 0 n ( ∏ i = 0 , i ≠ k n x − x i x k − x i ) y k {L_n}(x) = sumlimits_{k = 0}^n {left( {prodlimits_{i = 0,i ne k}^n {frac{{x - {x_i}}}{{{x_k} - {x_i}}}} } right)} {y_k} L n ​ ( x ) = k = 0 ∑ n ​ ( i = 0 , i  = k ∏ n ​ x k ​ − x i ​ x − x i ​ ​ ) y k ​ 编写出

    2024年02月07日
    浏览(44)
  • 数学建模之插值法

    数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“ 模拟产生 ”一些新的但又比较靠谱的值来满足需求,这就是插值的作用。 那什么是插值法? 插值法又可以分

    2024年02月03日
    浏览(46)
  • 上采样(最近邻插值、双线性插值法、反池化、转置卷积)

    一般图像分割的时候,需要对图像进行像素级别的分类,因此在卷积提取到抽象特征后需要通过上采样将feature map还原到原图大小,在FCN和U-net等网络中都提到了上采样的操作,这里会一些上采样的方法进行总结。 最简单的图像缩放算法就是最近邻插值,也称作零阶插值,就

    2024年02月05日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包