Typesetting math: 1%

正交多项式介绍及应用

1 正交多项式的定义#

1.1 正交多项式定义#

定义: 一个多项式序列 pn(x)n=0pn(x)n=0,其阶数为 [pn(x)]=n ,对于每一个 n,这个多项式序列在开区间 (a,b) 上关于权函数 w(x) 正交,如果:

baw(x)pm(x)pn(x)dx=hnδmn

这里 δmn为狄拉克函数,且 hn 为常数。

这里的权函数 w(x) 在区间 (a,b) 是连续且正的以使得下式存在:

μn=baw(x)xndx,n=0,1,2,

则多项式 f 和多项式 g 的内积定义为:

f,g:=baw(x)f(x)g(x)dx

区间 (a,b) 称为正交区间,正交区间未必是有限区间。

例1 三角函数的正交性
对于三角函数序列 1,sin(θ),cos(θ),sin(2θ),cos(2θ),...,cos(nθ)n=1,2,...,,他们在区间 (0,2π) 的正交性为:

2π0sin(nθ)cos(mθ)dθ=δmn

图1展现了 sin(θ)cos(θ) 在区间 (0,2π) 上的正交性,图中蓝线为 sin(θ)cos(θ) 的值,对其积分就相当于求图中阴影部分的面积,很明显,阴影部分的面积加上符号后求和为0。

图1. 三角函数的正交性示意图

1.2 施密特正交化(Schmidt orthogonalization)#

施密特正交化方法是将一组线性无关的向量组正交化的方法,对正交化后的向量组进行标准化处理,可进一步得到一组标准正交基。施密特正交化的处理步骤如下:

β1=α1β2=α2α2,β1β1,β1β1βn=αnαn,β1β1,β1β1αn,β2β2,β2β2αn,βn1βn1,βn1βn1

例子:将三维空间中的一组线性无关向量 a,b,c 用施密特正交化方法处理得到正交向量组 x,y,z

步骤如下:

x=ay=bb,xx,xx=|b|cos(θ)|a|az=cc,xx,xxc,yy,yy

三维空间中施密特正交化方法的几何描述如图2所示

图2. 施密特正交化几何示意图

2 经典正交多项式#

经典的正交多项式有雅克比多项式,切比雪夫多项式,勒让德多项式,拉盖尔多项式,伯恩斯坦多项式,球谐多项式等。

2.1 雅克比多项式#

雅克比多项式是定义在 (1,1) 上,关于权函数 (1x)α(1+x)β 正交的多项式,其中 α,β>1

雅克比多项式的表达式为:
在这里插入图片描述

为伽马函数(gamma function)。

雅克比多项式的递推公式为:
在这里插入图片描述

雅克比多项式的正交性:

11(1x)α(1+x)βP(α,β)m(x)P(α,β)n(x)dx=2α+β+12n+α+β+1Γ(α+n+1)Γ(β+n+1)n!Γ(α+β+n+1)δmn

2.2 勒让德多项式#

勒让德多项式是定义在区间 (1,1) 上关于权函数1正交的多项式。勒让德多项式实际上是雅克比多项式在 α=β=0 时的特殊情况。

勒让德多项式的表达式为:

Pn(x)=12nn!dndxn[(x21)n]

勒让德多项式的递推公式为:

(n+1)Pn+1(x)=(2n+1)xPn(x)nPn1(x)

勒让德多项式的正交性:

11Pm(x)Pn(x)dx=22n+1δmn

前6阶勒让德多项式:

P0(x)=1

P1(x)=x

P2(x)=32x212

P3(x)=52x332x

P4(x)=358x4154x2+38

P5(x)=638x5354x3+158x

P6(x)=23116x631516x4+10516x2516

前6阶多项式图像:

图3. 前6项勒让德多项式

2.3 切比雪夫多项式#

切比雪夫多项式是定义在区间 (1,1) 上关于权函数 11x2 正交的多项式。

2.3.1 第一类切比雪夫多项式#

第一类切比雪夫多项式的表达式为:

Tn(x)=cos(nθ)

x=cos(θ),则 Tn(x)=cos(narccos(x))
第一类切比雪夫多项式的正交性为:

1111x2Tm(x)Tn(x)dx={0mnπn=m=0π2n=m0

第一类切比雪夫多项式的递推公式:

Tn+1(x)=2xTn(x)Tn1(x)

第一类切比雪夫多项式的前6项:

T0(x)=1

T1(x)=x

T2(x)=2x21

T3(x)=4x33x

T4(x)=8x48x2+1

T5(x)=16x520x3+5x

T6(x)=32x648x4+18x21

第一类切比雪夫多项式的图像

2.3.2 第二类切比雪夫多项式#

第二类切比雪夫多项式的表达式为:

Un(x)=sin[(n+1)θ]sinθ

第二类切比雪夫多项式的正交性为:

111x2Um(x)Un(x)dx={0mnπ2n=m

第二类切比雪夫多项式的递推公式:

Un+1(x)=2xUn(x)Un1(x)

第二类切比雪夫多项式的前6项:

U0(x)=1

U1(x)=2x

U2(x)=4x21

U3(x)=8x34x

U4(x)=16x412x2+1

U5(x)=32x532x3+6x

U6(x)=64x680x4+24x21

第二类切比雪夫多项式的图像:

图4. 前6项切比雪夫多项式

2.4 拉盖尔多项式#

拉盖尔多项式是定义在区间 (0,+) 上关于权函数 exxα 正交的多项式,

拉盖尔多项式的正交关系:

+0xαexL(α)m(x)L(α)n(x)dx=(n+α)!n!δmn

拉盖尔多项式的递推关系(α=0):

Ln+1(x)=(2n+1x)Ln(x)nLn1(x)n+1

前6项拉盖尔多项式(α=0):

L0(x)=1

L1(x)=x+1

L2(x)=12x22x+1

L3(x)=16x3+32x23x+1

L4(x)=124x423x3+3x24x+1

L5(x)=1120x5+524x453x3+5x25x+1

L6(x)=1720x6120x5+58x4103x3+152x26x+1

前6项拉盖尔多项式的图像:

图5. 前6项拉盖尔多项式

2.5 埃尔米特多项式#

埃尔米特多项式是定义在区间 (,+) 上关于权函数 ex2 正交的多项式。

埃尔米特多项式分为概率论中的埃尔米特多项式和物理中的埃尔米特多项式,这里只介绍物理学中使用的埃尔米特多项式。

埃尔米特多项式的表达式为:

Hn(x)=(1)nex2dndxnex2

埃尔米特多项式的正交性:

+Hm(x)Hn(x)ex2dx=π2nn!δmn

埃尔米特多项式的递推公式:

Hn+1(x)=2xHn(x)2nHn1(x)

前6项埃尔米特多项式为:

H0(x)=1

H2(x)=2x

H3(x)=4x22

H4(x)=16x448x2+12

H5(x)=32x5160x3+120x

H6(x)=64x6480x4+720x2120

前6项埃尔米特多项式图像:

图6. 前6项埃尔米特多项式

3 正交多项式的应用#

正交多项式的应用甚广,包括但不限于数值分析,逼近理论,积分,微分方程,复变函数,随机矩阵理论,编码理论等。

这里仅以一个小的例子来说明正交多项式在函数拟合中的应用。

实验中使用的测试函数为 y=4x+3x2+cos(x)+sin(2x)+ex,定义区间为 (2,2) ,实验比较了多项式展开3项时不同多项式的拟合均方误差(MSE),归一化均方误差(NMSE)。

图7. 不同多项式拟合结果
从拟合结果来看,在展开3项时,埃尔米特多项式的拟合误差较小,其他的多项式拟合误差相当。

测试程序如下:

Copy
% 正交多项式测试
clear
clc
% 采样点数
N = 1000 ;
% 正交多项式阶数
M = 3 ;
% 拟合函数区间为(-2,2)
x = linspace(-2,2,N)' ;
% 生成被拟合的函数,包括指数函数,余弦函数,幂函数成分
y = 4*x + 3*x.^2 + cos(x) + exp(x) + sin(2*x);
% 生成幂级数组成的基矩阵
P1 = power_p(x,M) ;
% 生成勒让德多项式组成的基矩阵
P2 = legendre_p(N,M) ;
% 生成切比雪夫多项式组成的基矩阵
P3 = chebyshev_p(N,M) ;
% 生成拉盖尔多项式组成的基矩阵
P4 = laguerre_p(N,M) ;
% 生成诶尔米特多项式组成的基矩阵
P5 = hermite_p(N,M) ;
%% 用最小二乘拟合y
% c1对应幂级数系数
c1 = P1\y ;
% c2对应勒让德系数
c2 = P2\y ;
% c3对应切比雪夫系数
c3 = P3\y ;
% c4对应拉盖尔系数
c4 = P4\y ;
% c5对应埃尔米特系数
c5 = P5\y ;
%% 求MSE和NMSE
MSE_power = norm(y-P1*c1)/N
NMSE_power = norm(y-P1*c1)/norm(y)
MSE_legendre = norm(y-P2*c2)/N
NMSE_legendre = norm(y-P2*c2)/norm(y)
MSE_chebyshev = norm(y-P3*c3)/N
NMSE_chebyshev = norm(y-P3*c3)/norm(y)
MSE_laguerre = norm(y-P4*c4)/N
NMSE_laguerre = norm(y-P4*c4)/norm(y)
MSE_hermite = norm(y-P5*c5)/N
NMSE_hermite = norm(y-P5*c5)/norm(y)
figure(1)
plot(x,y,'r-',x,P1*c1,'b-',x,P2*c2,'k-',x,P3*c3,'y-',x,P4*c4,'g-',x,P5*c5,'m-')
legend('original','power','legendre','chebyshev','laguerre','hermite')
function [P] = power_p(x,M)
for m = 1:M
P(:,m) = x.^(m-1) ;
end
end
function [P] = legendre_p(N,NN)
% 本函数生成N*M的勒让德基矩阵
s = linspace(-1,1,N)' ;
P = zeros(N,NN) ;
P(:,1) = ones(N,1) ;
P(:,2) = s ;
for n = 3 : NN
P(:,n) = ((2 * n - 3) * s .* P(:,n - 1) - (n - 2) * P(:,n - 2)) / ( n -1 ) ;
end
end
function [P] = chebyshev_p(N,M)
% 本函数生成N*M的切比雪夫基矩阵
x = linspace(-1,1,N)' ;
P = zeros(N,M) ;
P(:,1) = ones(N,1) ;
P(:,2) = x ;
for k = 3:M
P(:,k) = 2*x.*P(:,k-1) - P(:,k-2) ;
end
end
function [P] = laguerre_p(N,M)
% 本函数生成N*M的拉盖尔基矩阵
x = linspace(-2,2,N)' ;
P = zeros(N,M) ;
P(:,1) = ones(N,1) ;
P(:,2) = -x + ones(N,1) ;
for m = 3:M
P(:,m) = ((2*(m-2)+1-x).*P(:,m-1)-(m-2)*P(:,m-2))./(m-1) ;
end
end
function [P] = hermite_p(N,M)
% 本函数生成N*M的埃尔米特基矩阵
x = linspace(-2,2,N)' ;
P = zeros(N,M) ;
P(:,1) = ones(N,1) ;
P(:,2) = 2*x ;
for m = 2:M
P(:,m+1) = 2*x.*P(:,m) - 2*(m-1)*P(:,m-1) ;
end
end

更多精彩内容请关注订阅号优化与算法和加入QQ讨论群1032493483获取更多资料

posted @   优化与算法  阅读(8195)  评论(3编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示
CONTENTS