函数的插值与多项式近似计算
- 格式:docx
- 大小:150.30 KB
- 文档页数:8
函数的插值与多项式近似计算
1. 实验描述
计算机中常常要用到库函数,sin(x),cos(x)和e x ,它们是用多项式逼近来计算的。常见的多项
式逼近方法有泰勒级数、拉格朗日逼近、牛顿多项式等。在求解不同的问题时,采用不同逼
近方法或同一种方法不同阶数都会对逼近结果造成影响。好的方法可以降低误差优化计算。
2. 实验内容
比较对函数f(x)=tan(x)的逼近:计算N=9的多项式计算及误差比较;
要求:1.用泰勒多项式逼近;
2.拉格朗日多项式逼近;
3.牛顿多项式逼近;
4.帕德逼近。
3. 实验结果及分析
泰勒多项式逼近:设f ∈C N+1[a,b],而x 0∈[a,b]是固定值。如果x ∈[a,b],则有
f x =P N x +E N (x )
其中P N x 为用来近似f x 的多项式:f x ≈P N x = f k x 0 k !N k =0
(x −x 0)k 误差项E N (x )形如E N (x )=f N +1 c N +1 ! x −x 0 N +1,c 为x 和x 0的某个值c =c x 。
令w=tan(x),则泰勒展开的9项式为:
P = x+1/3*x^3+2/15*x^5+17/315*x^7+62/2835*x^9
用泰勒展开逼近其绝对误差b=|F-P|,相对误差c=b/|F| 由图(1)得在区间从-1到1之间泰勒展式能很逼近tan (x ),误差基本为零。但随着x
的变化,绝对误差和相对误差都变大,失去逼近效果。
红线为tan (x ),蓝线为P
图(1)
绝对误差
相对误差
拉格朗日多项式逼近:设f ∈C N+1[a,b],且x 0,x 1,…,x N ∈[a,b]为N+1个节点。如果x ∈[a,b],
则
f x =P N x +E N (x )
其中P N x 是可以用于逼近f(x)的多项式:
f x ≈P N x = f (x k )L N ,k N
k =0
x
误差项E N (x )形如
E N (x )= x −x 0 x −x 1 … x −x N f N +1 c N +1 !
c =c x 为区间[a,b]内的某个值。
在区间x ∈]-/2/2ππ⎡⎣,
,之间取9点进行逼近,x 分别为取(-0.4:0.01:0.4)*pi 对应tan (x )值为: -3.0777 -1.4826 -0.8391 -0.4452 -0.1405 0.1405 0.4452 0.8391
1.4826 3.0777。拉格朗日主要是运用插值的方法进行逼近。令f=tan(x) 图(2)所示红线为tan(x)蓝线为P
图(2)
绝对误差b=| (f-U)|
相对误差c=|b/f|
牛顿多项式逼近:设P N x 是给出的牛顿多项式,并用来逼近函数f(x),即,
f x =P N x +E N (x )
如果f ∈C N+1[a,b],则对每个x ∈[a,b],对应的存在(a ,b )的数c=c(x),使得误差形如
E N (x )= x −x 0 x −x 1 … x −x N f N +1 c N +1 !
(牛顿多项式:设x 0,x 1,…,x N ∈[a,b]为N+1个不同的数,存在唯一的至多N 次的多项式 P N x ,具有性质f x j =P N x j 其中j=0,1,…,N 该多项式的牛顿形式为
P N x =a 0+a 1 x +x 0 +⋯+a N x −x 0 x −x 1 … x −x N
其中a k =f [x 0,x 1,…,x N ],k=0,1,2…,N 。)
选取区间x ∈]-/2/2ππ⎡⎣,
,之间取9点进行逼近,先算出差伤表,再构造出牛顿多项式f=tan(x) ,得到下图图(3),其中红色为 tan(x),蓝色为F
图(3)
绝对误差b=| (f-F)|
相对误差c=|b/f|
帕德逼近:在区间[a,b]上f(x)的有理逼近是俩个N 和M 次多项式 P N x 和 Q M x 的分式,即
R N ,M x = P N x M
其中a ≤x ≤b ,又
P N x =p 0+p 1x +p 2x 2+⋯+p N x N (2)
Q M x =1+q 1x +q 2x 2+⋯+q M x M (3)
当 Q 0 x =1时,该逼近其实就是f(X)的麦克老林展开。而当R N ,M x 和 P N x 被同一常数除时 Q M x 不变。所以R N ,M x 有N +M +1个未知数。设f(X)是解析的,且有麦克老林展开
f x =a 0+a 1x +a 2x 2+⋯+a k x k +⋯ (4)
差f(x) Q M x - P N x =z(x)表示为:
a j x j ∞j =0 q j x j M j =0 − p j x j N j =0= c j x j ∞j =N +M +1 (5)
将式(5)左端乘开,并令k=0,1,…,N+M+1的x j 系数为0,可得到N+M+1阶线性方程解出各系数代入R N ,M x 得到。
令f=tan(x),得到下图其中红色为f ,蓝色为R
绝对误差b=| (f-P)|
相对误差c=b/| (f)|
4. 结论
四种方法都能的到比较理想的tan(x)的逼近,但随着n的增大,所得结果的误差会有较大的区别,如当x0=0时,n=9时,又得出的结果可知泰勒逼近的误差最大,其次是拉格朗日多项式逼近和牛顿多项式逼近,帕德逼近的结果最为接近。
附件(代码)
泰勒多项式逼近:
clear
n=input('input n:=')%输入阶数
z=input('input z:=')%输入x0的值
syms x
syms y
i=1;P=0;
h=tan(y);
for j=1:n
f(j)=diff(h,y,j); %tan(y)的j阶导数