数值积分(十):Gauss 型积分总结
Gauss 型求积公式更详细的介绍可以阅读 Wolfram MathWorld 的相关文档GaussianQuadrature
在前面我们已经讨论了 Gauss-Legendre 求积公式和 Gauss-Chebyshev 求积公式,其基本思想均来自于 Thm 7.2,除此之外还有几类 Gauss 型求积公式,在这里做一个列表进行汇总
权函数 $\rho(x)$
积分区间
$x_k$ 作为根所对应的多项式
$1$
$(-1,1)$
$P_n(x)$ Legendre多项式
$e^{-x}$
$(0,+\infty)$
$L_n(x)$Laguerre多项式
$e^{-x^2}$
$(-\infty,+\infty)$
$H_n(x)$Hermite多项式
$\dfrac{1}{\sqrt{1-x^2}}$
$(-1,1)$
$T_n(x)$第一类 Chebyshev 多项式
$\sqrt{1-x^2}$
$(-1,1)$
$U_n(x)$第二类 Chebyshev 多项式
$\sqrt{x}$
$(0,1)$
$\sqrt{x}P_{2n+1}(\s ...
数值积分(九):Gauss-Chebyshev 积分
关于 Chebyshev 多项式Chebyshev 多项式来自于 Chevyshev 微分方程
(1-x^2)\dfrac{\mathrm{d}^2y}{\mathrm{d}x^2}-x\dfrac{\mathrm{d}y}{\mathrm{d}x}+n^2y=0\tag{9.1}
(1-x^2)\dfrac{\mathrm{d}^2y}{\mathrm{d}x^2}-3x\dfrac{\mathrm{d}y}{\mathrm{d}x}+n(n+2)y=0\tag{9.2}式 (9.1) 的解称为 第一类 Chebyshev 多项式,式 (9.2) 的解被称为第二类 Chebyshev 多项式.
第一类 Chebyshev 多项式写成三角形式即为
T_n(x)=\cos(n\arccos x),\ -1
数值积分(八):Guass-Legendre 积分
关于 Legendre 多项式详见 Legendre 多项式(二):Legendre 多项式
Legendre 多项式由下列表达式定义
P_0(x) = 1
P_n(x) = \dfrac1{2^nn!}\dfrac{\mathrm{d}^n}{\mathrm{d}x^n}\left[(x^2-1)^n\right],\ n=1,2,\cdots\tag{8.1}Legendre 具备以下性质:
正交性:不同阶 Legendre 多项式在 $[-1,1]$ 上正交.
\int^1_{-1}P_n(x)P_m(x)\mathrm{d}x\equiv0,\ n\neq m\tag{8.2}
递推性:可以推导出 $P_0(x)=1,\ P_1(x)=x$,且满足递推关系
P_{n+1}(x)=\dfrac{2n+1}{n+1}xP_n(x)-\dfrac{n}{n+1}P_{n-1}(x),\ n=1,2,\cdots\tag{8.3}
Legendre 多项式的根为在 $[-1,1]$ 上的实根,且彼此不相等.
Gauss-Legendre 积分更详细的介绍可以阅读 Wolfr ...
数值积分(七):Gauss 型积分
按照前面所介绍的思想,利用积分中值定理
\int^b_af(x)\mathrm{d}x=(b-a)f(\xi),\ \xi\in(a,b)
选取 $[a,b]$ 上离散点函数值的加权平均值作为 $f(\xi)$ 的近似值,得到机械求积公式
\int^b_af(x)\mathrm{d}x\approx \sum^n _{k=0}A_kf(x_k)\tag{7.1}将定积分的计算转化成被积函数的函数值计算,其中 $A_k$ 是求积系数, $f(x_k)$ 是求积节点.
代数精度Definition 7.1
如果对于所有次数不超过 $m$ 的多项式 $f(x)$,求积公式都精确成立,但对次数为 $m+1$ 的多项式不精确成立,则称该求积公式具有 $m$ 次代数精度.
以 Simpson 法则为例
\int^b_af(x)\mathrm{d}x\approx\dfrac{b-a}{6}\left[f(a)+4f\left(\dfrac{a+b}{2}\right)+f(b)\right]具备三次代数精度.
对于 Newton-Cotes 求积公式
\int^b_af(x)\mathrm ...
Legendre 多项式(三):Legendre 多项式的正交性及广义 Fourier 变换
$n$ 阶 Legendre 多项式肯定是 $n$ 阶 Legendre 方程的解,对 $m$ 阶同理,因此有
(1-x^2)\dfrac{\mathrm{d}^2P_n(x)}{\mathrm{d}x^2}-2x\dfrac{\mathrm{d}P_n(x)}{\mathrm{d}x}+n(n+1)P_n(x)\equiv 0\tag{3.1}(1-x^2)\dfrac{\mathrm{d}^2P_m(x)}{\mathrm{d}x^2}-2x\dfrac{\mathrm{d}P_m(x)}{\mathrm{d}x}+m(m+1)P_m(x)\equiv 0\tag{3.2}将 $(1)\times P_m(x)-(2)\times P_n(x)$ 在 $[-1,1]$ 上积分可得
\int^1_{-1}\left(P_m(x)\dfrac{\mathrm{d}}{\mathrm{d}x}\left((1-x^2)\dfrac{\mathrm{d}P_n(x)}{\mathrm{d}x}\right)-P_n(x)\dfrac{\mathrm{d}}{\mathrm{d}x}\lef ...
Legendre 多项式(二):Legendre 多项式
求解如下 Legendre 方程
(1-x^2)\dfrac{\mathrm{d}^2y(x)}{\mathrm{d}x^2}-2x\dfrac{\mathrm{d}y(x)}{\mathrm{d}x}+l(l+1)y(x)=0,\quad -1\leqslant x\leqslant 1\tag{2.1}
需要注意 $y(x)$ 应当是有限的.
解这个方程就是一个 Liouville 本征值问题,对 $y(x)$ 进行幂级数展开 $y(x)=\sum^{\infty}_{n=0}a_nx^n$ ,可以得到系数满足
a_{k+2}=\dfrac{(k-1)(k+l+1)}{(k+1)(k+2)}a_k\tag{2.2}解写成线性组合形式 $y=a_0y_0(x)+a_1y_1(x)$ . 可以看出幂级数的收敛半径为 $R=1$.
为了使其收敛,最好的办法是使其自然截断为多项式. 假设 $l$ 为偶数,则可以使
a_{l+2}=0,\ a_1=0使 $y_0(x)$ 自然截断为多项式,并去掉依然发散的 $y_1(x)$ . 或者假设 $l$ 为奇数,使
a_{l+2}=0,\ a_0= ...
Legendre 多项式(一):球坐标系下的 Laplace 方程
对于球坐标系下的 Laplace 方程
\dfrac{1}{r^2}\dfrac{\partial}{\partial r}\left(r^2\dfrac{\partial u}{\partial r}\right)+\dfrac{1}{r^2\sin\theta}\left(\sin\theta\dfrac{\partial u}{\partial\theta}\right)+\dfrac{1}{r^2\sin^2\theta}\dfrac{\partial^2u}{\partial\phi^2}=0\tag{1.1}采用分离变量法 $u(r,\theta,\phi)=R(r)Y(\theta,\phi)$ ,其中 $R(r)$ 称为径向函数,$Y(\theta,\phi)$ 称为球谐函数. 得到
\dfrac{Y(\theta.\phi)}{r^2}\dfrac{\mathrm{d}}{\mathrm{d}r}\left(r^2\dfrac{\mathrm{d}R(r)}{\mathrm{d}r}\right)+\dfrac{R(r)}{r\sin\theta}\dfrac{\ ...
数值积分(六):计算
微分计算双曲正割函数的一阶导数和二阶导数
u=\mathrm{sech}x\tag{6.1}一阶导数和二阶导数的表达式是我们已知的,如下
\dfrac{\mathrm{d}u}{\mathrm{d}x}=-\mathrm{sech}x\mathrm{tanh}x\tag{6.2}\dfrac{\mathrm{d}^2u}{\mathrm{d}x^2}=\mathrm{sech}x-2\mathrm{sech}^3x\tag{6.3}首先定义计算区间和步长
12dx = 0.1; % 定义步长x = -10:dx:10; % 定义计算区间
按照解析式在 MATLAB 中绘制精确解
12345678u = sech(x);ux_exact = -sech(x).*tanh(x);uxx_exact = sech(x)-2*sech(x).^3;% 绘图figure(1);plot(x,u,x,ux_exact,x,uxx_exact);grid onlegend('u','ux','uxx');
要计算数值解,我们可以使用 ...
数值积分(五):复化求积公式和 Romberg 积分法
可分解法则梯形法则仅给出了一个步长范围内的值,要计算整个区间上的值,就要把整个计算区间进行划分,对划分成的每个小区间使用梯形法则.
因此我们可以得到
\int^b_af(x)\mathrm{d}x\approx\sum^{N-1}_ {j=0}\dfrac{h}{2}(f_j+f_{j+1})=\dfrac{h}{2}\left(f_0+f_N+2\sum^{N-1}_ {j=1}f_j\right)\tag{5.1}上式即为复化梯形公式,其中 $h=\dfrac{b-a}{N}$.
如果使用 Simpson 法则,就会得到
\int^b_af(x)\mathrm{d}x\approx\sum^{N-1}_ {j=0}\dfrac{h}{6}(f_{2j}+4f_{2j+1}+f_{2j+2})=\dfrac{h}{6}\left(f_0+f_N+2\sum^{N-1}_ {j=1}f_{2j}+4\sum^{N-1}_ {j=0}f_{2j+1}\right)\tag{5.2}上式即为复化 Simpson 公式,其中 $h=\dfrac{b-a}{2N}$.
精度递归改进以梯形法则 ...
数值积分(四):Newton-Cotes 公式
梯形法则和中矩法则计算定积分
I=\int^b_af(x)\mathrm{d}x\tag{4.1}一种思路是利用积分中值定理对其进行近似.
Theorem 4.1
\exists\ \xi\in(a,b),\ \text{s.t.}\int^b_af(x)\mathrm{d}x=f(\xi)(b-a)
这就需要对 $f(\xi)$ 进行近似. 显然可以用计算区域两端的函数值平均对其进行近似,这样就会得到梯形法则
I=\int^b_af(x)\mathrm{d}x\approx\dfrac{f(b)+f(a)}{2}(b-a)\tag{4.2}采用计算区域中点的函数值对其进行近似,就会得到中矩法则
I=\int^b_af(x)\mathrm{d}x\approx f(\frac{b+a}{2})(b-a)\tag{4.3}由于中矩法则需要中点的函数值,因此在实际中应用较少. 为了方便编写数值计算程序,用 $x_0$ 代替 $a$,用 $h$ 代替步长 $\Delta x$,计算点即 $x_k=x_0+hk$,用 $f_k$ 代替 $f(x_k)$. 由于式 (4.2) 中只需要两个点,因 ...