拉格朗日插值法

简介: 定义公式为:\[ l_k(x):= \prod_{i=0, i \neq k}^{j}{{x - x_i}\over{x_k - x_i}} \]从上面的公式中我们可以了解到, i从0递增到j, 但是在k不会等于i, 因为如果k=i了, 则分母就成为了0, 这个式子就没有意义了, 在...

定义

  • 公式为:
    \[ l_k(x):= \prod_{i=0, i \neq k}^{j}{{x - x_i}\over{x_k - x_i}} \]
  • 从上面的公式中我们可以了解到, i从0递增到j, 但是在k不会等于i, 因为如果k=i了, 则分母就成为了0, 这个式子就没有意义了, 在给定了k之后, 则i会从0开始递增到j的, 这个\(l_k(x)\)就是一个拉格朗日插值函数

  • 每一个y值有一个特定的拉格朗日插值函数, 我们最终得到的一个多项式就是让每一个y乘以一个它特定的拉格朗日插值函数

  • 我们得到的最终的多项式, 如果为x取一个值, 则在我们获取到的拉格朗日插值多项式中是这样表现出来的 --> \(L_(xj)\sum_{i=0}^k y_il_i(x_j)= 0 + 0 + 0 + ... + y_j + 0 + 0\), 其他的地方都是0, 之后我们需要的那个值的插值函数\(l_j({x_i})\)为1, 这就是它的实质

优点

  • 当我们添加了一个新的样本点的时候, 我们不需要进行重新的计算

插值法与拟合的差别

  • 拟合出来的曲线不一定要经过所有的我们给出的实际的样本点
  • 插值法求出来的多项式的曲线一定是经过了我们给他的样本点

在matlab中实现一个拉格朗日插值求多项式


function p = lagrange(x, y)
% p = lagrange(x, y)
% 其中x和y是向量,p是返回的多项式向量
% m获取x的个数
m = length(x);
for k = 1:1:m
    % 表示一个插值函数的起始值
    V = 1; 
    for i = 1:1:m
       if k ~= i
            % 注意: 以后凡是在遇到一个在数学上是 x + 1 等包含着变量的表达式, 在matlab中同时使用多项式来表示, 也就是表示成 [1, 1], 当然这个是在只有一个变量的情况下]
            % x(k) - x(i), 为分母, 分子 conv(V, [1, x(i)])是一个多项式, 最后将得到的多项式赋给V, 这个就是我们在上面写到的拉格朗日的插值函数的使用累乘符号表达式在matlab中的表达而已
            V = conv(V, [1, x(i)])/ (x(k) - x(i));
       end
    end
    % 当k为k的时候得到的一组拉格朗日插值函数保存起来
    l(k, :) = V;
end
% 得出最终的多项式
p = y * l;
目录
相关文章
|
7月前
|
存储 API 虚拟化
VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护
VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护
238 2
VMware vSphere Replication 9.0.2.2 发布 - 虚拟机复制和数据保护
|
11月前
|
jenkins 持续交付 开发工具
除了 Gitee,还有哪些代码托管平台支持 Webhook?
除了 Gitee,还有哪些代码托管平台支持 Webhook?
|
10月前
|
存储 NoSQL Cloud Native
MongoDB云原生化:为企业开发注入高效动力
MongoDB云原生化为企业开发注入高效动力,分为三部分:1. 介绍阿里云和MongoDB的服务;2. 阿里云MongoDB解决自建模型痛点的功能,包括隔离性、海量数据处理、弹性能力及运维操作优化;3. 客户案例展示。通过云原生架构,MongoDB实现了灵活的扩展、高效的备份恢复和快速的回档能力,显著提升了企业的业务迭代速度和数据管理效率。典型客户如吉比特、莉莉丝、掌阅等受益于这些功能,实现了更稳定和高效的数据库服务。
|
11月前
|
人工智能 搜索推荐 安全
人工智能在医疗领域的最新进展与未来趋势
人工智能在医疗领域的最新进展与未来趋势
|
缓存 安全 算法
Shiro安全框架面试题
Shiro安全框架面试题
283 0
|
存储 数据可视化 前端开发
PHP中的数据结构可视化:深入探索与实现
本文探讨了PHP中数据结构可视化的价值,强调其在理解、调试和优化代码中的作用。文中列举了数据结构如数组、栈、队列等,并介绍了三种可视化方法:使用第三方库、自定义渲染函数和集成前端工具。通过示例展示了如何使用PHP的GD库和自定义函数可视化二叉树。最后,指出数据结构可视化并非总是适用,但结合前端技术可实现更高效解决方案,并鼓励开发者充分利用此工具提升项目性能。
184 3
|
存储 iOS开发 开发者
IOS上架流程详解,包含审核避坑指南!
IOS上架流程详解,包含审核避坑指南!
|
数据安全/隐私保护
uniapp自定义密码输入键盘-数字键盘效果demoUI方法一(整理)
uniapp自定义密码输入键盘-数字键盘效果demoUI方法一(整理)
|
C#
C#之四十二 C# 读写文本文件乱码解决方案
C#之四十二 C# 读写文本文件乱码解决方案
597 0
Notepad++输入模式之修改模和插入模式的切换
Notepad++中输入内容提供了两种模式: 一种是插入,另一种是改写。分别对应光标的两种状态:横线(_)、竖线(|)
4257 0