正交多项式

摘要

总结一下可能会遇到的正交多项式

正交多项式定义

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

$\delta$为狄克拉函数,且$h_n$为常数
权函数$w(x)$在区间$(a,b)$是连续且正的,下式存在:

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

区间$(a,b)称为正交区间,正交区间不一定是有限区间$

e.g 三角函数的正交性

对于三角函数序列$1,sin(\theta),cos(\theta),sin(2\theta),cos(2\theta),…,cos(n\theta)$,$n \in N^+$,他们在区间$(0,2\pi )$的正交性为:

图中阴影部分的面积加上符号求和为0.
1

e.g 施密特正交化

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

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

几何描述如图:
2

经典正交多项式

如雅克比多项式,切比雪夫多项式,勒让德多项式,拉盖尔多项式,伯恩斯坦多项式,球谐多项式等

雅克比多项式

雅克比多项式是定义在$(-1,1)$上,关于权函数$(1-x)^{\alpha} (1+x)^{\beta} $正交的多项式,其中$\alpha ,\beta > -1$
表达式为:

雅克比多项式的正交性:

勒让德多项式

勒让德多项式是定义在区间 $(−1,1) $上关于权函数1正交的多项式。勒让德多项式实际上是雅克比多项式在 $\alpha=\beta=0$ 时的特殊情况
表达式为:

递推公式为:

正交性:

前6阶勒让德多项式:

图像为:
3

切比雪夫多项式

切比雪夫多项式是定义在区间 $(−1,1)$ 上关于权函数 $\frac{1}{\sqrt{1-x^2} }$ 正交的多项式

第一类切比雪夫多项式

令$x = cos(\theta)$,则$T_n(x) = cos(n \arccos(x))$,
第一类切比雪夫多项式正交性:

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

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

第一类切比雪夫多项图像:
4

第二类切比雪夫多项式

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

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

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

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

拉盖尔多项式

拉盖尔多项式是定义在区间 $(0,+\infty)$ 上关于权函数 $e^{-x}x^a$ 正交的多项式
拉盖尔多项式的正交关系:

拉盖尔多项式的递推关系:

前6项拉盖尔多项式$(\alpha = 0)$:

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

埃尔米特多项式

埃尔米特多项式是定义在区间$(-\infty,+\infty)$上关于权函数$e^{x^2}$正交的多项式
埃尔米特多项式分为概率论中的埃尔米特多项式和物理中的埃尔米特多项式,概率论的埃尔米特多项式是首一多项式(最高次项系数等于1),而物理学的埃尔米特多项式的最高次项系数等于$2n$,这里只介绍物理学中使用的埃尔米特多项式
埃尔米特多项式的表达式为:

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

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

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

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

正交多项式的应用

仅以一个小的例子来说明正交多项式在函数拟合中的应用
实验中使用的测试函数为 $y=4x+3x^2+cos(x)+sin(2x)+e^x$,定义区间为 $(−2,2)$ ,实验比较了多项式展开3项时不同多项式的拟合均方误差(MSE),归一化均方误差

输出

MSE_power =
    0.0131
NMSE_power =
    0.0419
MSE_legendre =
    0.0131
NMSE_legendre =
    0.0419
MSE_chebyshev =
    0.0131
NMSE_chebyshev =
    0.0419
MSE_laguerre =
    0.0131
NMSE_laguerre =
    0.0419
MSE_hermite =
    0.0067
NMSE_hermite =
    0.0215

可以看出埃尔米特的拟合误差较小,其他相当
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
% 正交多项式测试
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

- ETX   Thank you for reading -
  • Copyright: All posts on this blog except otherwise stated, All adopt CC BY-NC-ND 4.0 license agreement. Please indicate the source of reprint!