矩阵理论作业6:两种算法求三次最佳平方逼近多项式
最佳一致逼近多项式

2
(4.1)
min b (x)[f(x)S(x)2 ]d.x S(x) a
则称 S * (是x ) 在f (子x)集
中的C最[a佳,b平] 方逼近
函数.
20
由(4.1)可知该问题等价于求多元函数
I(a 0 ,a 1 , ,a n)a b
n
(x )[a j j(x )f(x )]2dxBiblioteka (4.2)若记集合的下确界为
EnP in n Hn{ f(f,Pn)}P in H n nm a fx ba f(x x)P n(x),(3.2)
则称之为 f ( x在) [上a , 的b ]最小偏差.
2
定义8
假定 f C[a,b],若存在 Pn*(x)Hn 使得
(f,Pn*)En,
27
例5 设 f(x) 1x2, 求 [0,上1]的一次最佳平方 逼近多项式.
解 利用(4.7),得
1
d0 0
于是方程组(4.3)有唯一解 a ka k * (k0 ,1 , ,n ),
S * (x ) a 0 *0 (x ) a n *n (x ).
22
下面证明 S满* (足x )(4.1), 即对任何 S(x), 有
b( x )f[ ( x ) S * ( x )2 d ] x b( x )f[ ( x ) S ( x )2 d ] x
P ( x k ) f ( x k ) ( 1 ) k P ( x ) f ( x ) , 1, (3.4)
这样的点组称为切比雪夫交错点组.
证明
只证充分性.
假定在 [a上, b有] 个n点使2(3.4)成立,
P ( x) 是 f ( x在) [上a , 的b ]最佳逼近多项式
最佳平方逼近算例

相应的正规方程组为
(ϕ 0 , ϕ 0 ) (ϕ 0 , ϕ1 ) (ϕ 0 , ϕ 2 ) a 0 ( f , ϕ 0 ) (ϕ1 , ϕ 0 ) (ϕ1 , ϕ1 ) (ϕ1 , ϕ 2 ) a1 = ( f , ϕ1 ) (ϕ , ϕ ) (ϕ , ϕ ) (ϕ , ϕ ) a ( f , ϕ ) 2 2 1 2 2 2 2 0
0
1
可解出 b = −1 , c = ,正规方程组为
* c0 (ϕ0 , ϕ0 )
1 6
c (ϕ1 , ϕ1 )
* 1
= (ϕ0 , f ) = (ϕ1 , f )
* c2 (ϕ 2 , ϕ 2 ) = (ϕ2 , f )
计算可得
1 1 , (ϕ 2 , ϕ 2 ) = 180 12 3−e 7e − 19 , ( f , ϕ2 ) = ( f , ϕ 0 ) = e − 1 , ( f , ϕ1 ) = 2 6 (ϕ 0 , ϕ 0 ) = 1 , (ϕ1 , ϕ1 ) =
ϕ * ( x) = a 0ϕ 0 ( x) + a1ϕ 1 ( x) + a 2ϕ 2 ( x) = 0.83918 x 2 + 0.85113x + 1.01299
平方逼近误差为 δ ( x) 2 = f − p2 2 = f 2 − ∑ ai ( f ,ϕi ) ≈ 2.783545 × 10− 5 .
例:求函数 f ( x) = e x 在[0,1]上的二次最佳平方逼近多项式,并估计平 ,小数点后保留 5 位. 方逼近误差 δ 2 2
解: (解法 1)
2
使用 Legendre 正交多项式
数值分析习题

1.1 求下列各数的具有四位有效数字的近似值, 并指出其绝对误差限和相对误差限)1.0ln(,121,1011,1014321====x x x x1.2 下列各数都是对准确值进行四舍五入得到的近似值, 指出它们的绝对误差限、相对误差限和有效数字的位数。
3*5*4*3*2*1100.5,5000,50.31,3015.0,0315.0⨯=====x x x x x1.3 为了使31的近似值的相对误差不超过0.1%, 问应取几位有效数字?1.4 怎样计算下列各题才能使得结果比较精确?(1) x x sin )sin(-+ε,其中ε充分小 (2) ⎰++121N Nx dx,其中N 是充分大的正数(3)xxsin cos 1-,其中x 充分小(4) o 1cos 1- (5) 1001.0-e(6) )11010ln(84--1.5 求方程01562=+-x x 的两个根, 使至少具有四位有效数字。
2.1 证明方程043=-+x x 在区间[1,2]内有且仅有一个根。
如果用二分法求它具有五位有效数字的根,试问需对分多少次?(不必求根)2.2 用二分法求方程0134=+-x x 在[0.3, 0.4]内的一个根, 精度要求21021-⨯=ε。
2.3 找出下列方程的有根区间,选择适当的初始点用二分法求方程的根,精度要求210-=ε。
(1) 02=--x x ;(2) 06cos 2=-++-x e x x ; (3) 01tan =--x x ; (4) 0sin 2=--x e x 。
2.4 考虑方程032=-x e x ,将其改写为3xex ±=,取00=x ,用两种迭代公式迭代,分别收敛到1.0和-0.5附近的两个根(取精度要求310-=ε)。
2.5 为求方程0123=--x x 在5.1=x 附近的一个根,建立下列形式的迭代公式:(1) 2121111kk x x xx +=⇒+=+,;(2) 3212311k k x x x x +=⇒+=+,;(3) 111112-=⇒-=+k k x x x x ,。
最佳平方逼近

正规方程组一般为病态方程组,当维数 较高时,病态严重,求解困难。 可以采取选择不同的基的方式,来改变 正规方程组的性态。 我们考虑最佳平方逼近多项式,采用正 交多项式做基函数。
2
b
a
函数f ( x)和g ( x)正交 ( f , g ) w( x) f ( x) g ( x)dx 0
a b
设次数不超过n的多项式空间为 n , 显然 是C[a, b]的一个子空间,
n的基为1, x,..., x n , 则,p( x) a0 a1 x ... an x n n 是f ( x)在 n的最佳逼近元的充分必要条件为
否则,就线性无关。 区间[a,b]上c11 ( x) .... cm m ( x) 0成立 就一定有c1 ... cm 0
假定1 ( x),....m ( x)是子空间S的基, 若函数g是最佳逼近元,则
( f g , 1 ( x)) 0,( f g , 2 ( x)) 0 ...., f g , m ( x)) 0 (
w( x) C[a, b],w( x) 0,x [a, b] 称w( x)为权函数。
连续函数空间C[a, b],给定权函数w( x) 对于f , g C[a, b]
最佳平方逼近多项式
给定函数f ( x) C[a, b], 求次数不超过n的 多项式p( x),使得
b
a
w( x)( f ( x) p( x)) dx min
简记为Ax=b
求解这个方程,就能得到a, ,am, .....
从而得到f ( x)在子空间S中的最佳平方 逼近元g ( x) a11 ( x) ..... amm ( x)
第5章 10.最佳逼近多项式

定理: 是内积空间, 是其有限维子空间, 定理: C [a , b]是内积空间, M是其有限维子空间, f ( x ) ∈ C [a , b],M中ϕ * ( x )是f ( x )的最佳平方逼近 函数的 ⇔ f − ϕ *与M中任一元正交
证(⇐) ∀ϕ ∈ M, ϕ − ϕ ∈ M
*
f −ϕ
2 2
⇒ P2 ( x ) = 1.013 + 0.851 x + 0.839 x
2
= ( f −ϕ, f −ϕ)
= ( f −ϕ +ϕ −ϕ, f −ϕ +ϕ −ϕ)
* * * *
= ( f − ϕ * , f − ϕ * ) + 2( f − ϕ * , ϕ * − ϕ ) + (ϕ * − ϕ , ϕ * − ϕ )
=0
= f −ϕ
* 2 2
+ ϕ −ϕ
*
2 2
≥ f −ϕ
0 1
1
{
}
1 (ϕ 0 , ϕ 1 ) = (ϕ 1 , ϕ 0 ) = ∫ xdx = 0 2 1 (ϕ 0 , f ) = ∫ e x dx = e − 1
0
(ϕ 1 , f ) = ∫ xe x dx = 1
0
1
(ϕ 2 , f ) = ∫ x 2 e x dx = e − 2
0
1
1 1 / 2 1 / 3 c1 e − 1 1 / 2 1 / 3 1 / 4 c 2 = 1 1 / 3 1 / 4 1 / 5 c e − 2 3
*
ϕ 的构造求法
*
设M的基底为 span{ϕ 0 , ϕ 1 ,Lϕ n }
第三章-2-最佳平方逼近

性质 5 设 k k 0是 [a, b] 上带权 (x) 的正交多项式
族,则n(x) (n>0) 有n个单重实根,且都位于 区间[a, b] 内。
几类重要的正交多项式 Legendre 多项式 Chebyshev 多项式
第二类 Chebyshev 多项式
Laguerre 多项式 Hermite 多项式
Chebyshev 多项式
切比雪夫多项式的性质:
(1) 递推公式: Tn1 ( x ) 2 xTn ( x ) Tn1 ( x )
cos(n+1) + cos(n-1) = 2cos cosn x = cos
mn 0, 1 T ( x )T ( x ) n m (Tn , Tm ) dx π / 2, m n 0 (2) 正交性: 2 1 1 x π, mn0 n T ( x ) ( 1) Tn ( x) (3) 奇偶性: n
性质1 性质2
n ( x)
为首一 n 次多项式。 [a, b] 上带权 (x) 的正交多
是 k k 0
项式族,且
H n span 0 ,1,...,n
性质 3 正交。
n ( x) 与所有次数不高于n-1次的多项式
正交多项式性质
性质 4
此 k k 0 满足如下三项递推公式:
数值分析及计算软件
第三章
函数逼近与计算
3.3 最 佳 平 方 逼 近 及正交多项式
最佳平方逼近问题:
若存在 Pn* ( x )H n , 使得
|| f ( x) Pn ( x) ||2 inf || f ( x) Pn ( x) ||2 ,
最佳平方逼近

(1,1) (2,1) L
A
(1,2
)
(2,2 )
L
L
LL
(1,m ) (2,m ) L
(m,1)
(m
,2
)
L
(m
,
m
)
称为函数1(x),.....,m (x)的Gram矩阵,
A显然是对称矩阵。
若1(x),.....,m (x)线性无关,则它们
0
3
(ex ,1) 2 ex 1dx e2 1 0
(ex , x) 2 ex xdx e2 1 0
法方程组为
2a0
2a0
2a1 8 3 a1
e2 1 e2 1
a0=0.1945 , a1=3.0000
最佳平方逼近一次多项式为 0.1945+3.0000x
8 7 6 5 4 3 2 1 0
b w(x) f (x) g(x)2 dx a
函数f (x)和g(x)正交
b
( f , g) a w(x) f (x)g(x)dx 0
设次数不超过n的多项式空间为n ,显然 是C[a, b]的一个子空间,
n的基为1, x,..., xn ,则,p(x) a0 a1x ... anxn n 是f (x)在n的最佳逼近元的充分必要条件为
a0 (1,1) a1(x,1) ... an (xn ,1) ( f ,1)
a0 (1, x) a1(x, x) ... an (xn , x) ( f , x)
a0 (1, xn ) a1(x, xn ) ... an (xn , xn ) ( f , xn )
求解法方程组,得到a0,a1,...,an
3.3 最佳平方逼近

(1 x 2 )dx 0.426d1 0.934d 0 0.0026. 0
1
最大误差
( x)
max
0 x 1
* 1 x 2 S1 ( x) 0.066.
11
3.3.2
用正交函数族作最佳平方逼近
设 f ( x) C[a, b], span{0 ( x), 1 ( x), , n ( x)},
(3.5)
若取 k ( x) x k , ( x) 1, f ( x) C[0, 1], 则要在 H n 中求 n次最佳平方逼近多项式
* * * n S * ( x) a0 a1 x an x ,
7
此时
( j ( x), k ( x))
1 0
1
0
1 /( n 1) 1 /( n 2) 1 /( 2n 1)
(3.6)
称为希尔伯特(Hilbert)矩阵.
8
T T 记 a (a0 , a1 ,, an ) , d (d 0 , d1 ,, d n ) , 则
Ha d
* a a 1, , n) 即为所求. 的解 k k ( k 0,
讨论特殊情况.设 {0 ( x), 1 ( x), , n ( x)}是正交多 项式, span{0 ( x), 1 ( x), , n ( x)},k ( x)( k 0,1,, n) 可由 1, x,, x n 正交化得到,则有下面的收敛定理.
15
定理8
设 f ( x) C[a, b], S * ( x) 是由(3.9)给出的
b j 0 n
的最小值.
I (a0 , a1 ,, an ) 是关于 a0 , a1 , , an 的二次函数,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
两种算法求()f x 的三次最佳平方逼近多项式
摘 要
对于一个较复杂的函数,往往需要求一个简单多项式来逼近。
本文选取两种基函数,用两种算法计算一个函数()=exp()sin()f x x x ⋅在[0,]2x π∈上的三次最佳平方逼近多项式及其逼近误差,然后应
用matlab 进行计算作图并对比两种方法的逼近结果。
关键字:三次 最佳平方 逼近 两种算法
引言
多项式的一个重要应用就是可以用来逼近一个区间上的连续函数,往往许多复杂的函数需要用各种方法来进行多项式逼近。
本文参考矩阵理论讲义
[1]
对函数()=e x p
()s i n (f x x x ⋅在[0,]2
x π
∈上进行三次最佳平方逼近,求其逼近
误差,并在matlab 中编程计算和绘图以验证和比较逼近结果的准确性。
求最佳平方逼近的多项式
()=exp()sin()f x x x ⋅,[0,]2
x π
∈求三次的
最佳平方逼近多项式(内积中的权函数()=1x ρ)。
用两种算法实现,一是设{}
23
=1,,,span x x x Φ,
二是设为{}0123=(),(),(),()L x L x L x L x Φ,其中
(),0,1,2,3i L x i =是勒让德多项式。
第一种算法:
{}23=1,,,span x x x Φ,由矩阵形式
(1)
根据[,]C a b 上内积定义
((),())()()()b
a
f x
g x x f x g x dx
ρ=⎰
(2)
其中权函数
()=1x ρ,在[0,]2
x π
∈上计算得
23402345
1345624567
3 2.9052/2/8/24/6
4 3.2781/8/24/64/160 4.0294/24/64/160/384 5.2035/64/160/384/896a a a a ππππππππππππππππ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
⎣⎦⎣⎦(3)解得待定系数00.0201a =,10.7658a =,
2 1.5765a =,20.0708a =-。
即
23()0.02010.7658 1.57650.0708x x x x ϕ=++- (4)
误差2()0.0100x δ (5)
第二种算法:
{}0123=(),(),(),()L x L x L x L x Φ,其中
(),0,1,i L x i
=是勒让德多项式,其表达式为:
21()[(1)],0,1,2,,2!i
i i i i
d L x x i n i dx
=-= (6) 勒让德正交多项式有如下递推关系
0()1L x =,1()L x x =,
()
1121()()(),1,,,111
72i i i i i
L x xL x L x i n i i +-+=-=-++ 可得2231()22L x x =
-,3353
()22
L x x x =- 求得结果,误差为0.3020。
算例分析
在matlab 中编程计算(程序见附录),第一种方法的结果为 >>f=@(x)exp(x).*sin(x); >> [P,error]=polyappro(f,0,pi/2) 得到结果: P =
-0.0708 1.5765 0.7658 0.0201 error = 0.0100
可以看到 A =
[ pi^7/896, pi^6/384, pi^5/160, pi^4/64]
[ pi^6/384, pi^5/160, pi^4/64, pi^3/24] [ pi^5/160, pi^4/64, pi^3/24, pi^2/8 ] [ pi^4/64, pi^3/24, pi^2/8, pi/2 ] B'=
(exp(pi/2)*(pi^3 - 12*pi + 24))/16 (exp(pi/2)*(pi/2 - 1)*(pi/2 + 1))/2 + 1/2 (pi*exp(pi/2))/4 - 1/2
exp(pi/2)/2 + 1/2 第二种方法,勒让德多项式逼近 >> f=inline('exp(x).*sin(x)');
>> [Y,error]=LegendreApproximation(f,4) 得到结果: error = 0.3020
结论
两种方法逼近的效果比较,第一种基函数逼
近的整体效果好,误差小,但是从图上可以看出局部细节不是很准确;而第二种勒让德多项式逼近的结果在前半部分非常好,但后边误差较大,总体误差大。
参考文献
[1]矩阵理论讲义(矩阵论第二章),19-20.
附录
方法一:求内积
>> f=inline('sin(x).*exp(x)','x'); >> fy0=quad(f,0,pi/2) fy0 = 2.9052
>> f=inline('sin(x).*exp(x).*x','x'); >> fy1=quad(f,0,pi/2) fy1 =
3.2781
>> f=inline('x.^2.*sin(x).*exp(x)','x'); >> fy2=quad(f,0,pi/2) fy2 =
4.0294
>> f=inline('x.^3.*sin(x).*exp(x)','x'); >> fy3=quad(f,0,pi/2) fy3 =
5.2035 最佳平方逼近函数:
function [poly,error]=polyappro(f,a,b) syms x
P=[1,x,x.^2,x.^3];
%P=[1,x,1.5*x.^2-0.5,2.5*x.^3-1.5]; m=length(P); for i=1:m
for j=1:m
A(i,j)=int(P(m-i+1).*P(m-j+1),a,b); end
B(i)=int(f*P(m-i+1),a,b); end
poly=A\B';
poly=sym2poly(poly'); xx=a:0.01:b; yy=feval(f,xx);
ypoly=polyval(poly,xx); polysym=poly2sym(poly); delta=f-polysym;
error=sqrt(int(delta.*delta,a,b)); error=sym2poly(error); plot(xx,yy,xx,ypoly,'r-') end
方法二:勒让德多项式 Function
[Y,error]=LegendreApproximation(f,n) xx=0:0.01:0.5*pi;
fval=feval(f,xx); for i=1:n+1
w(i)=(2*(i-1)+1)/2*quad(@(x)f(x).*
mfun('p',i-1,x),-1,1);
YY(i,:)=w(i).*mfun('p',i-1,xx); Y=sum(YY);
error=norm(fval-Y,'inf'); plot(xx,fval,xx,Y,'r'); end end。