数学建模(3)插值算法

数学建模(3)插值算法

用途

数据较少的时候,用已有的数据来找到两个数据之间的值

一维的插值

分段插值

插值多项式

三角插值

插值的原理

y = a 0 + a 1 x + a 2 x 2 + . . . + a n x n y=a_0+a_1x+a_2x^2+...+a_nx^n

$只要有n+1个互不相同的节点

$如果不限制多项式的次数,多项式不唯一

A X = Y AX=Y

A是参数矩阵(A是范德蒙行列式),X是自变量,Y是因变量

因为 A = i = 1 n j = 0 n 1 ( x i j ) 0 |A|=\prod^n_{i=1}\prod^{n-1}_{j=0}(x_i-_j)\neq 0

所以方程有唯一解

扫描二维码关注公众号,回复: 11528160 查看本文章

拉格朗日插值法

1、有两个点 ( x 0 , y 0 ) , ( x 1 , y 1 ) (x_0,y_0),(x_1,y_1)

f ( x ) = x x 1 x 0 x 1 y 0 + x x 0 x 1 x 0 y 1 f(x)=\frac{x-x_1}{x_0-x_1}y_0+\frac{x-x_0}{x_1-x_0}y_1

2、有三个点 ( x 0 , y 0 ) , ( x 1 , y 1 ) , ( x 2 , y 2 ) (x_0,y_0),(x_1,y_1),(x_2,y_2)

f ( x ) = x x 1 x 0 x 1 x x 2 x 0 x 2 y 0 + x x 0 x 1 x 0 x x 2 x 1 x 2 y 1 + x x 0 x 2 x 0 x x 1 x 2 x 1 y 2 f(x)=\frac{x-x_1}{x_0-x_1}\frac{x-x_2}{x_0-x_2}y_0 +\frac{x-x_0}{x_1-x_0}\frac{x-x_2}{x_1-x_2}y_1 +\frac{x-x_0}{x_2-x_0}\frac{x-x_1}{x_2-x_1}y_2

3、推导普适结果

ω n + 1 ( x ) = ( x x 0 ) ( x x 1 ) . . . ( x x n ) \omega_{n+1}(x)=(x-x_0)(x-x_1)...(x-x_n)

ω n + 1 ( x k ) = ( x k x 0 ) ( x k x 0 ) . . . ( x k x k 1 ) ( x k x k + 1 ) . . . ( x k x n ) \omega'_{n+1}(x_k)=(x_k-x_0)(x_k-x_0)...(x_k-x_{k-1})(x_k-x_{k+1})...(x_k-x_n)

L n ( x ) = k = 0 n y k ω n + 1 ( x ) ( x x k ) ω n + ( x k ) L_n(x)=\sum^n_{k=0}y_k\frac{\omega_{n+1}(x)}{(x-x_k)\omega'_{n+}(x_k)}

龙格现象

插值多项式次数越高,误差不一定越小

回在两端产生明显的震荡,所以不要轻易使用高次数插值

分段三次埃尔米特插值

因为之前的方法不够好,所以这里采用分段插值

简单思路就是找最近的四个点构成一个三次函数

证明过程不会,用不到

matlab有函数

p = pchip(x,y,new_x)

直接插值就行,这个函数看一眼就知道怎么用了。

三次样条插值

(最为精准)

要求函数 S ( x ) S(x) 满足:

1、 S ( x i ) = f ( x i ) = y i , i = 0 , 1 , 2 , . . . , n S(x_i)=f(x_i)=y_i,\qquad i=0,1,2,...,n

2、每个子区间上 S ( x ) S(x) 是三次多项式

3、 S ( x ) S(x) 二阶可微

p = spline(x,y,new_x)

n维数据的插值

p = interpn(x1,x2,...,xn,y,new_x1,,new_x2,...,,new_xn,method)

猜你喜欢

转载自blog.csdn.net/qq_45507796/article/details/107735993