1.Discrete Least Squares Approximation
给定点 ( x 1 , y 1 ) , . . . ( x m , y m ) (x_1,y_1),...(x_m,y_m) (x1,y1),...(xm,ym),求 P n ( x ) = a 0 + a 1 x + . . . a n x n P_n(x)=a_0+a_1x+...a_nx^n Pn(x)=a0+a1x+...anxn,使得 E 2 = ∑ k = 1 m [ P n ( x k ) − y k ] 2 E_2=\sum\limits_{k=1}^m[P_n(x_k)-y_k]^2 E2=k=1∑m[Pn(xk)−yk]2最小。
需要E对所有a的导数都为0。
化简的结果为: b i = ∑ i = 1 m x i k , c k = ∑ i = 1 m y i x i k b_i=\sum\limits_{i=1}^mx_i^k,c_k=\sum\limits_{i=1}^my_ix_i^k bi=i=1∑mxik,ck=i=1∑myixik
[ b 0 + 0 . . . b 0 + n . . . . . . . . . b n + 0 . . . b n + n ] [ a 0 . . . a n ] = [ c 0 . . . c n ] \begin{bmatrix}b_{0+0}&...&b_{0+n}\\.&.&.\\.&.&.\\.&.&.\\b_{n+0}&...&b_{n+n}\end{bmatrix}\begin{bmatrix}a_0\\ .\\.\\.\\a_n \end{bmatrix}=\begin{bmatrix}c_0\\ .\\.\\.\\c_n \end{bmatrix} ⎣⎢⎢⎢⎢⎡b0+0...bn+0.........b0+n...bn+n⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡a0...an⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡c0...cn⎦⎥⎥⎥⎥⎤
可以通过取对数,取倒数再换元的方法将非多项式的函数转化为多项式函数。
如果是想用别的多项式基底表示也可采用:
( f , g ) = ∑ i = 1 m w i f ( x i ) g ( x i ) (f,g)=\sum\limits_{i=1}^{m}w_if(x_i)g(x_i) (f,g)=i=1∑mwif(xi)g(xi)
( f , g ) = ∫ a b w ( x ) f ( x ) g ( x ) d x (f,g)=\int\limits_{a}^{b}w(x)f(x)g(x)dx (f,g)=a∫bw(x)f(x)g(x)dx
P ( x ) = a 0 ϕ 0 ( x ) + a 1 ϕ 1 ( x ) + . . . a n ϕ n ( x ) P(x)=a_0\phi_0(x)+a_1\phi_1(x)+...a_n\phi_n(x) P(x)=a0ϕ0(x)+a1ϕ1(x)+...anϕn(x)
需要逼近的多项式为 f ( x ) f(x) f(x).
[ ( ϕ 0 , ϕ 0 ) . . . ( ϕ 0 , ϕ n ) . . . . . . . . . ( ϕ n , ϕ 0 ) . . . ( ϕ n , ϕ n ) ] [ a 0 . . . a n ] = [ ( ϕ 0 , f ) . . . ( ϕ n , f ) ] \begin{bmatrix}(\phi_0,\phi_0)&...&(\phi_0,\phi_n)\\.&.&.\\.&.&.\\.&.&.\\(\phi_n,\phi_0)&...&(\phi_n,\phi_n)\end{bmatrix}\begin{bmatrix}a_0\\ .\\.\\.\\a_n \end{bmatrix}=\begin{bmatrix}(\phi_0,f)\\ .\\.\\.\\(\phi_n,f) \end{bmatrix} ⎣⎢⎢⎢⎢⎡(ϕ0,ϕ0)...(ϕn,ϕ0).........(ϕ0,ϕn)...(ϕn,ϕn)⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡a0...an⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡(ϕ0,f)...(ϕn,f)⎦⎥⎥⎥⎥⎤
2.Construction of the orthogonal polynomials
使用斯密特正交化法:
ϕ 0 ( x ) = 1 , ϕ 1 ( x ) = x − B 1 , ϕ k ( x ) = ( x − B k ) ϕ k − 1 − C k ϕ k − 2 \phi_0(x)=1,\\\phi_1(x)=x-B_1,\\ \phi_k(x)=(x-B_k)\phi_{k-1}-C_k\phi_{k-2} ϕ0(x)=1,ϕ1(x)=x−B1,ϕk(x)=(x−Bk)ϕk−1−Ckϕk−2
B k = ( x ϕ k − 1 , ϕ k − 1 ) ( ϕ k − 1 , ϕ k − 1 ) C k = = ( x ϕ k − 1 , ϕ k − 2 ) ( ϕ k − 2 , ϕ k − 2 ) B_k=\frac{(x\phi_{k-1},\phi_{k-1})}{(\phi_{k-1},\phi_{k-1})}\\C_k==\frac{(x\phi_{k-1},\phi_{k-2})}{(\phi_{k-2},\phi_{k-2})} Bk=(ϕk−1,ϕk−1)(xϕk−1,ϕk−1)Ck==(ϕk−2,ϕk−2)(xϕk−1,ϕk−2)
3.Chebyshev Polynomials
第n个切比雪夫多项式: T n ( x ) = cos ( n ⋅ arccos x ) T_n(x) = \cos( n ·\arccos x ) Tn(x)=cos(n⋅arccosx)
递推公式: T 0 ( x ) = 1 , T 1 ( x ) = x , T n + 1 ( x ) = 2 x T n ( x ) − T n − 1 ( x ) T_0(x)=1,T_1(x)=x,T_{n+1}(x)=2xT_{n}(x)-T_{n-1}(x) T0(x)=1,T1(x)=x,Tn+1(x)=2xTn(x)−Tn−1(x)
1.f(x)在[a,b]上的n次插值多项式。
需要n个点构造拉格朗日多项式进行插值,n个点的选取如下:
切比雪夫多项式的零点:
t i = cos ( 2 k − 1 2 n π ) , k = 1 , 2 , . . . , n t_i = \cos(\frac{2k-1}{2n}\pi),k=1,2,...,n ti=cos(2n2k−1π),k=1,2,...,n
从[-1,1]线性映射到[a,b]
x i = ( b − a ) t + ( a + b ) 2 x_i =\frac{(b-a)t+(a+b)}{2} xi=2(b−a)t+(a+b)
使用 x i x_i xi进行线性插值。
2.要求切比雪夫多项式插值结果小于m
切比雪夫多项式的误差为 R n = ∣ f ( n + 1 ) ( ϵ ) ( n + 1 ) ! ∏ i = 0 n ( x − x i ) ∣ R_n=|\frac{f^{(n+1)}(\epsilon)}{(n+1)!}\prod\limits_{i=0}^n(x-x_i)| Rn=∣(n+1)!f(n+1)(ϵ)i=0∏n(x−xi)∣
在[a,b]上的误差为 R n = M ( n + 1 ) ! ( b − a ) n + 1 R_n=\frac{M}{(n+1)!(b-a)^{n+1}} Rn=(n+1)!(b−a)n+1M
M为导数的上确界,找一个较为合适的值。
然后代出n,按照1的方法做。
3.对泰勒公式降阶
P n − 1 ( x ) = P n ( x ) + a n T n − 1 ( x ) 2 n − 1 P_{n-1}(x)=P_{n}(x)+a_n\frac{T_{n-1}(x)}{2^{n-1}} Pn−1(x)=Pn(x)+an2n−1Tn−1(x)
其中 P n ( x ) P_n(x) Pn(x)是n阶泰勒展开, T n ( x ) T_{n}(x) Tn(x)是第n个切比雪夫多项式。 a n a_n an是第n个泰勒展开的系数