基于Qt4的拉格朗日插值实现及使用

目录

1 拉格朗日插值算法

2 实现思路

3 子程序编写

1 框架搭建

2 加载节点值

3 加载插值点

4 位置查找

5 二点线性插值

3 子程序使用


1 拉格朗日插值算法

    拉格朗日插值是一种常用的散点插值算法,是是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。是在一系列已知点(也叫节点)上给出节点基函数,然后做基函数的线性组合(就是相乘相加),组合系数为节点函数值的一种插值多项式。

    以上定义是比较官方的说法,简单点说就是知道一系列的点,求未知点上的函数值。我们知道,如果曲线是光滑的,那么可以用一个线段来代替某个很短部位的曲线线段,再用这个线段来估计函数值,这就是拉格朗日插值中的一阶线性插值。也就是说,最少知道2个点,就能估计线段区间内的某个未知点的数值。

    比方说这个图,已知两个点,中间这个值就是可以用直线估计出来。当然这样很不准确,但某些时候在工程方面很有意思,至少我知道那个位置的值的大概了,尤其是这个曲线比较光滑的时候。

    怎么计算呢,利用斜率相等就可以计算,比如,已知两个点z0,z1,求z:

k=\frac{x-x0}{y-y0}=\frac{x1-x0}{y1-y0}

    那么y坐标就可以写为:

y=y0+\frac{y1-y0}{x1-x0}(x-x0)

    稍微改写一下,就可以写为:

y=y0\frac{x-x1}{x0-x1}+y1\frac{x-x0}{x1-x0}

    这就是线性插值的公式了,分数项可以认为是基函数(也是关于x的函数),只要代入已知的两个节点,就可以计算了。这时,插值出来的值其实就是直线上的值。如果需要更加光滑,那么就需要二次,三次的表达式,拉格朗日就是在这个基础上做延伸和拓展,最后给出了n次多项式下的插值公式:

y=l_{1}(x)y1+l_{2}(x)y2+...+l_{i}(x)yi+...+l_{n}(x)yn, i=1,2,...,n

    这个式子中的l函数就是基函数,具体的写法是:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Intimes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值