矩阵理论作业5:写出勒让德最佳平方逼近实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
()[,]f x C a b ∈的勒让德最佳平方逼近实现
摘 要
Legendre 多项式的一个重要应用就是可以用多项式逼近一个区间上的连续函数。
本文对
()[,]f x C a b ∈区间范围内的函数进行勒让德最佳平方逼近的实现,推导出逼近的表达式并应用实际
例子进行计算。
matlab 中计算的结果表明逼近表达式是正确的。
关键字:勒让德 最佳平方 逼近
引言
在函数逼近论中,Legendre 多项式的一个重要应用就是可以用多项式逼近一个区间上的连续函数。
Legendre 正交多项式的一个很重要的应用是计算函数的数值积分,本文参考矩阵理论讲义[1]对()[,]f x C a b ∈的勒让德最佳平方逼近形式进行了推导,并在matlab 中计算和验证逼近的结果的正确性。
勒让德最佳平方逼近的实现
根据定理2.1.9,如果()[1,1]f x C ∈-,则存
在0
()()[]n
i i n i p x w L x x ==
∈∑P ,[1,1]x ∈-作为的
()f x 的最佳平方逼近,即0ε∀>,存在n 使得
()
1/2
1
2
1
()()(()())f x p x f x p x dx ε--=
-<⎰,
其中
1
1
1
112
1
()()21()(),2
()0,1,,i i
i i
f x L x dx
i w f x L x dx L x dx
i n
---+=
=
=⎰⎰⎰
对于()[1,1]f x C ∈-,求积分的Gauss-Legendre 近似求积公式为:
1
1
()()n
i i i f x dx A f x -=≈∑⎰
(1)
其中,0,1,2,,i x i n = 是1n +阶多项式
1()n L x +的零点,求积系数
1
1'
11()
,0,1,,()()
n i i n i L x A dx i n x x L x +-+==-⎰
(2)
根据这个定理我们来推导更一般的情况,当
()[,]f x C a b ∈时,用变量替换的方法实现
()b
a
f x dx ⎰
的勒让德最佳平方逼近。
设
22
b a b a
x t -+=
+ (3) [,]x a b ∈则[1,1]t ∈-满足定理2.1.9。
将t
关于x 的表达式
2a b
t x b a b a
+=
--- (4) 带入定理中即可得到所求。
则定理可以叙述
为:如果
()[,f x C a b ∈,则存在
()()[]n
i i n i p x w L x x ==∈∑P ,[,]x a b ∈作为的
()f x 的最佳平方逼近,即0ε∀>,存在n 使得
()
1/2
2
()()(()())b
a
f x p x f x p x dx ε-=
-<⎰,
其中
2
2()()2()(21)()2()(),40,1,,b i a i b
i a
b i a b a a b f x L x dx b a b a w L x dx
i b a a b
f x L x dx b a b a
i n -+---=+-+=
---=⎰⎰⎰ 对于()[,]f x C a b ∈,求积分的Gauss-Legendre 近似求积公式为:
011()()22())222
n
b
i i a
i b a b a
f x dx A f x b a b a b a f t dt
=--+≈+--+=+∑⎰⎰ (5) 其中,0,1,2,,i x i n = 是1n +阶多项式
1()n L x +的零点,求积系数
1'1(),22()()0,1,,b
n i a i n i L x b a A dx a b x x L x b a b a
i n ++-=
+----=⎰ (6)
算例分析
在matlab 中编程计算(程序见附录),得 >>f=inline('exp(-x)'); y=GaussLegendre1(f,1,2) y = 0.2325 >> exp(-1)-exp(-2)
ans = 0.2325
由此证明勒让德最佳平方逼近的计算结果是正确的。
结论
用变量替换的方法求得()[,]f x C a b ∈的勒让德最佳平方逼近的结果为
11()())222
b
a
b a b a b a
f x dx f t dt ---+=+⎰
⎰(7) 参考文献
[1]矩阵理论讲义(矩阵论第二章),10-12.
附录
function y=GaussLegendre(f,a,b) x=[0 0.5384693101 -0.5384693101 0.9061798459 -0.9061798459]; A=[0.5688888889 0.4786286705 0.4786286705 0.2369268851 0.2369268851]; t=(b-a)/2*x+(b+a)/2;
y=(b-a)/2*dot(feval(f,t),A); end。