已知平面坐标系中的三点(0,1),(1,3),(2,9)。试用拉格朗日插值法构造一个抛物插值函数


  • n次拉格朗日插值多项式

    可以由线性插值和二次插值的规律可循:

//验证拉格朗日插值法求近似值
 
 //得出Lm(x)的结果

这次是用Qt实现 在线课程

GAMES102 几何建模與处理基础 ---- 刘利刚(我的男神2 授业解惑 放以前是要享万家香火的

     (1)函数插值:基于幂基函数的多项式插值,基于gauss基函数的线性拟合拉格朗日插值。特点:曲线经过所有输入点

     (2)函数拟合:最小二乘法岭回归。特点:曲线逼近所有输入点

以下部分内容引用他人优秀报告:

Tip1:详细代码请下载源代码看注释博客以数学原理解析为主

Tip3:  本节作业分为两节,(上)写多项式插值(下)写多项式拟合,(下)链接

  在白色畫布上用鼠标左键单击采样输入点,选择拟合选项后点击“Fitting”按钮拟合输入点。点击“Clear”按钮对画布进行清除

  数值分析(第5版)-李慶杨 p22页,对插值问题的定义就很nice我自己有一个通俗的理解,如果在[a b]内曲线连续可导,则这个曲线可以由不用的基函数进行拟合这个基函数空间可以是幂函数,RBF函数三角函数等等。

   课本的下一页给出了多项式插值的定义,换成程序语言的介绍只要输入(n+1)个x值不同的點,就能通过幂基函数的拟合得到拟合曲线。这里是因为 y = f(x) 如果存在两个点的x值相同但y值不同,矩阵就会产生歧义所以要求x值不同。對x值的限定这个问题可以通过后续的曲线参数化解决令x = f(t), y = p(t),将x与y互相孤立即可

在代码里实际求解时,这里引用优秀报告里常同学的解释:


x0,x1,xn是我们输入的n+1个点的x坐标值,y0,,yn是对应的y坐标值因为B是一个范德蒙式,行列式不等于0可逆。所以直接求解

就可以得到哆项式函数接着将x=0到窗口的宽度400代入函数,算出这条曲线的所有点连线即可。

我们可以明显看出当输入点n变多时,会导致多项式曲線阶数过高带来不稳定的震荡。这是因为多项式插值问题式病态的范德蒙矩阵的条件数随着输入点数n呈指数级增长,矩阵条件数过大导致矩阵容易病态,就容易过拟合出现龙格现象,即在两端处波动极大产生明显的震荡。

  这里还是用常同学的解释我们将简单的冪基函数换为Gauss基函数,通过调整σ的数值,得到的不同拟合曲线。

本质上径向基函数插值函数的 f(x),是在每一个输入点上都放置一个bi*gi(x),並将所有输入点上的bi*gi(x)加起来进行拟合如下图,当σ=5支集宽度过小时,就可以明显看出f(x)本质是在每个输入点上都放了一个gauss基函数,然後将所有输入点上的函数加起来


通过Input输入点,GY已知,且G满秩可逆所以

将b的各项带入f(x),则曲线已知画出其余曲线各点,连线即可

我要回帖

 

随机推荐