需求的由来:

Java 插值法计算y 插值法求i_插值

Java 插值法计算y 插值法求i_插值_02

插值法定义:

Java 插值法计算y 插值法求i_方程组_03

唯一性:

Java 插值法计算y 插值法求i_线性代数_04

其实就是一个多元方程组嘛。

 

Java 插值法计算y 插值法求i_多项式_05

这个完全就是数字游戏吧,后面那一项永远是0.

拉格朗日求法:

Java 插值法计算y 插值法求i_方程组_06

Ln(x)就是p(x)。里面有yi作为系数,求这样的li应该是什么样。

Java 插值法计算y 插值法求i_插值_07

可以看到,x不等于xi的时候,x总会与某一个xj相等,就会变成零,等于xi的时候就是1。

Java 插值法计算y 插值法求i_方程组_08

记的时候可以这样想:每带入一个xi,我只能让一个yi系数为1,那肯定是(x-x0)(x-x1)……(x-xn)(中间没有x-xi),这样其他的就都是零了,自己还要是1,那就还要再除以(xi-x0)(xi-x1)……,就行了。

那插值的余项怎么说?:

Java 插值法计算y 插值法求i_线性代数_09

(t-xi)连乘的式子求导到最后是(n+1)!,这个值只和最高次数的t有关,也就是从(n+1)一直乘到1.最后的余项就是拉格朗日余项。

Java 插值法计算y 插值法求i_多项式_10

牛顿插值法:

拉格朗日算法增加一个结点的时候每个系数都要改,非常麻烦。

Java 插值法计算y 插值法求i_多项式_11

Java 插值法计算y 插值法求i_线性代数_12

公式看起来很复杂,其实用上面的原式推一下就可以了。

Java 插值法计算y 插值法求i_方程组_13

导数的那个推论不晓得怎么整,但你可以通过n=1的情况(就是拉格朗日公式)记忆。我突然想到了一个证明方法,f[x0,……xn]就是Nn(x)最后一项的系数,也就是原式最高项的系数,除以n!就是要把n次求导中产生的乘积去掉,留下的就是最高项的真正系数了。

可以这样计算:

Java 插值法计算y 插值法求i_方程组_14

Java 插值法计算y 插值法求i_插值_15

Java 插值法计算y 插值法求i_线性代数_16

注意:虽然算法不同,但是我们之前讲过大家都是n阶的话那就是唯一的,所以这两种方法算出来的式子是一样的。:

Java 插值法计算y 插值法求i_线性代数_17

那个wn+1(x)就是(x-x0)……(x-xn),这个x一般都是要在x0和xn之间的。

等距节点公式:

Java 插值法计算y 插值法求i_多项式_18

计算很简单,但暂时看不出是拿来干嘛的。

Java 插值法计算y 插值法求i_线性代数_19

从最开始的式子我们可以算出三角fi=fi+1-fi,三角^2fi=三角fi+1-三角fi=fi+2-2*fi+1+fi,以此类推可以推出上面的公式。(x+h)^n-x^n结果当然是n-1阶多项式,第二行的性质也很简单。f[x0,x1……]公式里的那个k!是没有问题的,每一次分母都会变得大一份,一开始是h,然后是2h,3h……所以有阶乘。

Java 插值法计算y 插值法求i_多项式_20

插值多项式的收敛与稳定:

Java 插值法计算y 插值法求i_Java 插值法计算y_21

Java 插值法计算y 插值法求i_多项式_22

稳定性:

Java 插值法计算y 插值法求i_Java 插值法计算y_23

Java 插值法计算y 插值法求i_插值_24

分段插值:

Java 插值法计算y 插值法求i_线性代数_25

Java 插值法计算y 插值法求i_方程组_26

 最后那个结论使用Rn(x)=f(n+1)(c)/(n+1)! *w(x)推出来的,就是一开始的那个余项公式。

函数逼近:

Java 插值法计算y 插值法求i_线性代数_27

最佳平方逼近:

Java 插值法计算y 插值法求i_插值_28

Java 插值法计算y 插值法求i_Java 插值法计算y_29

Java 插值法计算y 插值法求i_方程组_30

递推公式确定,那正交多项式也就唯一了。这里解释一下什么叫正交:

Java 插值法计算y 插值法求i_方程组_31

 

<>是内积(也就是向量直接用坐标相乘)的意思。

这个方法就是把多项式看作向量。这里手写推一下:

Java 插值法计算y 插值法求i_Java 插值法计算y_32

 

接下来就是以此类推,(xi,xj)不是内积神似内积。

接下来介绍几种常见的正交多项式:

Java 插值法计算y 插值法求i_多项式_33

 

这个其实就是刚刚的那个例子,但是有了公式,而且没有要求首项系数为1。

Java 插值法计算y 插值法求i_插值_34

 

切比雪夫多项式:

Java 插值法计算y 插值法求i_Java 插值法计算y_35

 

Java 插值法计算y 插值法求i_方程组_36

 

判断函数族线性无关:

Java 插值法计算y 插值法求i_多项式_37

 

Java 插值法计算y 插值法求i_线性代数_38

 

最佳平方逼近:

Java 插值法计算y 插值法求i_多项式_39

 

这个平方逼近就是要差值最小,平方是为了体现绝对值。

先来考虑连续函数:

Java 插值法计算y 插值法求i_插值_40

 

对a(也就是那些系数)求导,然后就求出了这个罪孽深重的东西。

Java 插值法计算y 插值法求i_线性代数_41

 

Java 插值法计算y 插值法求i_多项式_42

 

Java 插值法计算y 插值法求i_Java 插值法计算y_43

 

那之前讲的正交基地是干嘛的?就是这里用的,正交基地只有对角线上的元素是有数字的,其他的都是0,方程就很好解:

Java 插值法计算y 插值法求i_方程组_44

 

Java 插值法计算y 插值法求i_Java 插值法计算y_45

 

Java 插值法计算y 插值法求i_插值_46

 

-1到1正好和拉格朗日相符,可以直接用他的基地,这样就有现成的正交方程,不用解复杂的方程组了。

Java 插值法计算y 插值法求i_插值_47

 

曲线拟合的最小二乘逼近:

Java 插值法计算y 插值法求i_方程组_48

 

Java 插值法计算y 插值法求i_方程组_49

注意注意,之前是求积分,现在是求和,()的含义也从积分变成了求和,m个和的原因是点给了m个。(应该是从1加起,可能是打错了)

 

Java 插值法计算y 插值法求i_方程组_50

 

Java 插值法计算y 插值法求i_Java 插值法计算y_51

 

Java 插值法计算y 插值法求i_Java 插值法计算y_52

 

Java 插值法计算y 插值法求i_多项式_53

  

Java 插值法计算y 插值法求i_线性代数_54