隐藏目录

[1] [2]

回到顶部有理函数积分

回到顶部部分分式分解

最简单的多项式函数无需赘言,因此我们首先考虑有理函数$\dfrac{q(x)}{r(x)}$的符号积分,其中$q(x),r(x)\in \mathbb{C}[x]$,满足$(q(x),r(x))=1$,不失一般性还可假设$\deg q(x)<\deg r(x)$。最朴素的办法是利用部分分式分解。

引理1$(f(x),g(x))=1$$\deg h(x)<\deg f(x)g(x)$,则有$$\frac{h(x)}{f(x)g(x)}=\frac{f_1(x)}{f(x)}+\frac{g_1(x)}{g(x)},$$其中$\deg f_1(x)<\deg f(x)$$\deg g_1(x)<\deg g(x)$
证明$(f(x),g(x))=1$知存在$u(x) $$v(x)$满足$f(x)u(x)+g(x)v(x)=1$,于是$$\frac{h(x)}{f(x)g(x)}=\frac{h(x)(f(x)u(x)+g(x)v(x))}{f(x)g(x)}=\frac{h(x)v(x)}{f(x)}+\frac{h(x)u(x)}{g(x)}.$$$f_1(x)=h(x)v(x)\bmod f(x)$$g_1(x)=h(x)u(x)\bmod g(x)$即得。

$r(x)=\prod\limits_{i=1}^n(x-a_i)^{n_i}$,反复利用引理1则有$$\frac{q(x)}{r(x)}=\sum_{i=1}^n\frac{b_i(x)}{(x-a_i)^{n_i}},$$其中$\deg b_i(x)<n_i$。再将$b_i(x)$$x=a_i$处展开可得$$\frac{q(x)}{r(x)}=\sum_{i=1}^n\sum_{j=1}^{n_i}\frac{b_{ij}}{(x-a_i)^j},$$其中$b_{ij}$为常数。于是得到 
\begin{equation*}
\int\frac{q(x)}{r(x)}\,dx=\sum_{i=1}^nb_{i1}\ln (x-a_i)-\sum_{i=1}^n\sum_{j=2}^{n_i}\frac{b_{ij}}{(j-1)(x-a_i)^{j-1}}.\tag{1}
\end{equation*}

有理函数符号积分的问题在理论上解决了,即所有有理函数的积分均可由有理函数和对数函数表示,分别称为积分的有理部分和对数部分。但还有几个不得不处理的问题:一方面需要在$\mathbb{C}$上完全分解$r(x)$,而精确地做到这一点并不总那么容易,另一方面我们更希望看到的是,在算法的计算中除了用于表示最终积分的数以外,不要出现其他系数域扩域中的代数数。

例1$q(x)=2x$$r(x)=x^2+1\in \mathbb{Q}[x]$,则$\displaystyle\int\frac{q(x)}{r(x)}\,dx=\ln(x^2+1)$,而在$\mathbb{C}$上分解$r(x)$需要引入额外的代数数$i$

回到顶部Hermite方法

Hermite方法使用多项式的无平方分解来代替完全分解,而无平方分解可以在系数域中完成。设$r(x)$的无平方分解为$r(x)=\prod\limits_{i=1}^nr_i(x)^i$,其中$r_i(x)$无平方因子且两两互素。从而$$\frac{q(x)}{r(x)}=\frac{q(x)}{\prod\limits_{i=1}^nr_i(x)^i}=\sum_{i=1}^n\frac{q_i(x)}{r_i(x)^i},$$其中$\deg q_i(x)<\deg r_i(x)^i$。因此我们只需要考虑积分$\displaystyle\int\frac{q_i(x)}{r_i(x)^i}\,dx$即可。

由于$r_i(x)$无平方因子,故$(r_i(x),r_i'(x))=1$,可设$a(x)r_i(x)+b(x)r_i'(x)=1$,代入进行分部积分 
\begin{align*}
  \int\frac{q_i(x)}{r_i(x)^i }&\,dx =\int\frac{q_i(x)(a(x)r_i(x)+b(x)r_i'(x))}{r_i(x)^i}\,dx \\
  &=\int\frac{q_i(x)a(x)}{r_i(x)^{i-1}}\,dx +\int\frac{q_i(x)b(x)r_i'(x)}{r_i(x)^i}\,dx  \\
  &=\int\frac{q_i(x)a(x)+(q_i(x)b(x))'/(i-1)}{r_i^{i-1}}\,dx -\frac{1}{i-1}\frac{q_i(x)b(x)}{r_i^{i-1}}.
\end{align*}
为了简便起见,我们将省略变元$x$与记号$dx$,以下的积分与导数总是对$x$而言的,例如上式即可简写为 
\begin{equation*}
\int\frac{q_i}{r_i^i}=\int\frac{q_ia+(q_ib)'/(i-1)}{r_i^{i-1}}-\frac{1}{i-1}\frac{q_ib}{r_i^{i-1}}.\tag{2}
\end{equation*}

此过程称为Hermite约化过程。通过一次分部积分,被积函数分母中$r_i$的次数便降低一次,如此续行即可完全得到积分的有理部分。

回到顶部Horowitz-Ostrogradsky方法

Hermite方法避免了完全分解,但仍要求无平方分解和关于$r_i$的部分分式分解。Horowitz-Ostrogradsky方法则不需要其他工具,通过待定系数法将问题归结为线性方程的求解问题。

$$\frac{q}{r}=\frac{q_1}{r_1}+\int\frac{q_2}{r_2},$$其中$\dfrac{q_1}{r_1}$为积分的有理部分,由部分分式的结果可知$r_1=(r,r')$$r_2=r/r_1$。求导得到 
\begin{align*}
  \frac{q}{r}&=\left(\frac{q_1}{r_1}\right)'+\frac{q_2}{r_2} \\
  &=\frac{q_1'r_1-q_1r_1'}{r_1^2}+\frac{q_2r_1}{r} \\
  &=\frac{q_1'r_2-q_1r_1'r_2/r_1+q_2r_1}{r}.
\end{align*}
从而问题归结为求$q_1$$q_2$满足$q=q_1'r_2-q_1r_1'r_2/r_1+q_2r_1$$\deg q_1<\deg r_1$$\deg q_2<\deg r_2$。以$q_1$$q_2$的系数作为未知变量,这是一个至多$\deg r$维的线性方程组问题。

注1$\deg r=n$,则Hermite方法的时间复杂度为$O(M(n)\log n)$[3],其中$M(n)$为乘法的复杂度。而Horowitz-Ostrogradsky方法的复杂度为$O(n^3)$(解线性方程组),尽管渐进意义上后者要比前者慢将近两个量级,但在实践中还是要分析具体情况而定。

回到顶部Rothstein-Trager方法

下面的问题是如何求出对数部分,因此我们设$r(x)$无平方因子的首一多项式,并可设$$\int\frac{q}{r}=\sum_{i=1}^mc_i\ln v_i,$$其中$c_i$为互不相同的常数,$v_i$为无平方因子的首一多项式,两两互素(可以通过合并项来满足这些条件)。求导得到$$\frac{q}{r}=\sum_{i=1}^m\frac{c_iv_i'}{v_i}.$$由于$v_i$无平方因子且两两互素可知$$r=\prod\limits_{i=1}^mv_i.$$$u_i=\prod\limits_{j\ne i}v_i$,则有$$r'=\sum_{i=1}^mu_iv_i'$$$$q=\sum_{i=1}^mc_iu_iv_i'.$$于是对于$1\le k\le n$ 
\begin{equation*}
  \begin{aligned}
    (q-c_kr',r)&=(q-c_kr',\prod_{i=1}^mv_i) \\
    &=\prod_{i=1}^m(q-c_kr',v_i) \\
    &=\prod_{i=1}^m\left(\sum_{j=1}^m(c_j-c_k)u_jv_j',v_i\right)\\
    &=v_k.
  \end{aligned}  \tag{3}
\end{equation*}
最后一个等式成立是因为 
\begin{equation*}
  ((c_j-c_k)u_jv_j',v_i)=
  \begin{cases}
    v_i & i\ne j, \\
    1 & i=j, i\ne k, \\
    v_i & i=j, i=k,
  \end{cases}
\end{equation*}
从而 
\begin{equation*}
  \left(\sum_{j=1}^m(c_j-c_k)u_jv_j',v_i\right)=
  \begin{cases}
    1 & i\ne k, \\
    v_i & i=k.
  \end{cases}
\end{equation*}

由式(3)可以看出,当我们找出系数$c_k$后即可通过最大公因子的计算求出$v_k$。如何求出$c_k$呢?同样的论证可以知道$(q-yr',r)>1\Leftrightarrow \exists 1\le k\le m,y=c_k$,而$(q-yr',r)>1\Leftrightarrow\res_x(q-yr',r)=0$(此结式称为Rothstein-Trager结式),故求解关于$y$的方程$\res_x(q-yr',r)=0$即可得到所有的系数$c_k$

例2$r=x^3+x+1$$q=3x^2+1$,则Rothstein-Trager结式$\res_x(q-yr',r)=\res_x((1-y)(3x^2+1),x^3+x+1)=-31(y-1)^3$。从而方程$\res_x(q-yr',r)=0$有唯一的根$y=1$,最大公因子$(q-yr',r)=r=x^3+x+1$,故$$\int\frac{q}{r}=\ln (x^3+x+1)$$即为积分结果。
注2 Rothstein-Trager方法的时间复杂度为$O(nM(n)\log n)$[3]
注3 对于高次Rothstein-Trager结式,其根可能无法显式地表达出来。设$r$无平方因子,$n$个根为$a_i$$i=1,\ldots,n$),不难求得(1)中的$b_{i1}$,此时可直接将积分表示为$$\int\frac{q}{r}=\sum_{i=1}^n\frac{q(a_i)}{r'(a_i)}\ln(x-a_i),$$便于进一步的运算。
注4 对于实值函数的积分还应将$c_k$中互为相反数对应的对数项合并为更常见的$\arctan$项。

回到顶部Lazard-Rioboo-Trager方法

Rothstein-Trager方法解决了引入不必要扩张常数的问题,但仍需要计算许多代数数域上多项式的最大公因子,Lazard-Rioboo-Trager方法是对此的一个改进,只需要无平方分解和若干带余除法即可。

$r=\prod\limits_{i=1}^n(x-a_i)$$h=\res_x(q-yr',r)$,由结式的性质得到$$h=c\cdot\prod_{i=1}^n(q(a_j)-yr'(a_j)),$$其中$c$为非零常数。从而$h$$c_k$的重数为满足$q(a_i)-c_ir'(a_i)$$i$的个数。而 
\begin{align*}
  v_k&=(q-c_kr',r)\\
  &=(q-c_kr',\prod_{i=1}^n(x-a_i)) \\
  &=\prod_{q(a_i)-c_kr'(a_i)=0}(x-a_i)
\end{align*}
可知$\deg v_k$等于$h$$c_k$的重数。由此出发可知:设被积函数的系数域为$F$,则只需要在$F(y)[x]$中对$q-yr'$$r$做Euclid除法,设$W_i(x,y)\in F(y)[x]$为余式序列中关于$x$次数为$i$的多项式,则有$v_k=W_{\deg v_k}(x,c_k)$。另外,如果用多项式余式序列(PRS)算法来计算结式$h$的话,$W_i$的计算可以与结式的计算同时进行。

回到顶部Liouville定理

从直观上来看,所有有理函数总是可以积出。这里“积出”的精确含义是,可以找到一个初等函数作为被积函数的原函数。为了将问题的本质看得更清楚,我们引入如下定义。

定义1$F $为一个特征不为零的域,映射$D:F\rightarrow F$满足$\forall f,g\in F$
\begin{align*}
  D(f+g)&=D(f)+D(g), \\
  D(f\cdot g)&=f\cdot D(g)+g\cdot D(f).
\end{align*}
$D$称为$F$上的微分算子,$(F, D)$称为一个微分代数或者微分域。集合$C(F)=\{c\in F\mid D(c)=0\}$中的元素称为常数。
容易验证$D$拥有所有分析学教程中求导运算的基本性质,我们在这里仅仅罗列而略去证明[2]
命题1(微分代数的基本性质)
  1. $\forall f\in F,c\in C(F)$$D(cf)=cD(f)$
  2. (除法)$\forall f,g\in F,g\ne 0$$$D\left(\frac{f}{g}\right)=\frac{gD(f)-fD(g)}{g^2}.$$
  3. $C(F)$$F$的子域。
  4. $\forall f\in F^*, n\in \mathbb{Z}$$D(f^n)=nf^{n-1}D(f)$
  5. (对数导数恒等式)$\forall f_1,\ldots,f_n\in F^*, e_1,\ldots,e_n\in \mathbb{Z}$$$\frac{D(f_1^{e_1}\cdots f_n^{e_n})}{f_1^{e_1}\cdots f_n^{e_n}}=e_1\frac{D(f_1)}{f_1}+\cdots+e_1\frac{D(f_n)}{f_n}.$$
  6. (复合求导)设多项式$P\in C(F)[x_1,\ldots,x_n]$$f_1,\ldots,f_n\in F$,则有$$D(P(f_1,\ldots,f_n))=\sum_{i=1}^{n}\frac{\partial P}{\partial x_i}(f_1,\ldots,f_n)D(f_i).$$

微分代数的基本性质使得我们可以完全脱离分析语言,将符号积分的问题视为纯代数问题。而我们关心的“初等函数”,也可以直接用代数语言来描述。

定义2(初等函数)$K$为一个微分代数,$K(\theta)$$K$的微分扩张,满足$C(K(\theta))=C(K)$,微分算子$D$简记为'。$\theta$称为在$K$上的初等生成元,若$\theta$满足以下条件之一:
  1. $\theta$$K$上是代数的,即有$f(x)\in K[x]$使得$f(\theta)=0$
  2. $\theta$$K$上是指数的,即有$\eta\in K$使得$\dfrac{\theta'}{\theta}=\eta'$(记$\theta=\exp \eta$);
  3. $\theta$$K$上是对数的,即有$\eta\in K$使得$\theta'{}=\dfrac{\eta'}{\eta}$(记$\theta=\ln \eta$)。

$K(\theta_1,\ldots,\theta_n)$$K$上的一个初等函数域,若$\forall 1\le i\le n$$\theta_i$$K(\theta_1,\ldots,\theta_{i-1})$上的初等生成元。任$K$上的一个初等函数域中的元素称为$K$上的初等函数。

注5 考虑$K=\mathbb{Q}(x)$$\mathbb{R}(x)$$\mathbb{C}(x)$时即为通常意义下“初等函数”。
注6 定义中的$C(K(\theta))=C(K)$保证了如果$\theta'\in K$的话,$\theta'$必定不是$K$中元素的导数。

下面来自Liouville的重要定理,描述了积分为初等函数时必定具有的形式,证明需要对三种特殊扩张情形进行讨论,并最终得出一般情形[4][2]

定理1(Liouville)$K$为一个微分代数,$f\in K$,若$\int f$$K$上的初等函数(即$f$有初等积分),则有$$\int f=v_0+\sum_{i=1}^nc_i\ln v_i,$$其中$v_0\in K$$c_i\in \overline{C(K)}$(代数闭包),$v_i\in \hat K=K(c_1,\ldots,c_n)$
注7 可以验证在$K=\mathbb{Q}(x)$$\mathbb{R}(x)$$\mathbb{C}(x)$时与我们在上一节得到的结果是一致的。

回到顶部超越对数函数积分

回到顶部分解引理

$\theta$$K$上的一个超越对数函数,我们考虑$f\in K(\theta)$的积分问题。可设$f=p+\dfrac{q}{r}$,其中$p,q,r \in K[\theta]$$q$$r$互素且$\deg q<\deg r$,下面的引理使得我们能够沿着和有理函数积分类似的道路走下去。

引理2(超越对数函数分解引理)$f$$K$上的超越对数函数,若$f$$K$上有初等积分,则$p$$\dfrac{q}{r}$都在$K$上有初等积分。
证明$K(\theta)$代替$K$应用Liouville定理可得$$\int f=v_0+\sum_{i=1}^nc_i\ln v_i,$$其中$v_0\in K(\theta)$$c_i\in \overline{C(K)}$,记$\hat K=K(c_1,\ldots,c_n)$,通过拆分对数项可以保证$v_i\in \hat K[\theta]$为首一多项式。求导得$$f=v_0'+\sum_{i=1}^nc_i\frac{v_i'}{v_i}.$$$v_0=p_0+\dfrac{q_0}{r_0}$,其中$p_0,q_0,r_0\in K[\theta]$。根据$v_i$$\hat K$中元素还是$\hat K[\theta]$中正次数多项式将右端第二项拆为两部分,可知 
\begin{align*}
p+\frac{q}{r}&=\left(p_0+\dfrac{q_0}{r_0}\right)'+\sum_{i=1}^kc_i\frac{v_i'}{v_i}+\sum_{i=k+1}^nc_i\frac{v_i'}{v_i} \\
&=\underbrace{\left(p_0'+\sum_{i=1}^kc_i\frac{v_i'}{v_i}\right)}_{\in \hat K[\theta]}+\underbrace{\left(\left(\frac{q_0}{r_0}\right)'+\sum_{i=k+1}^nc_i\frac{v_i'}{v_i}\right)}_{\in \hat K(\theta)\text{为真分式}}.
\end{align*}
由于$\theta'{}=\frac{\eta'}{\eta}$,故$\hat K[\theta]$中的多项式的导数仍为$\hat K[\theta]$中的多项式,又$v_i\in \hat K$,可知右端的一项为$\hat K[\theta]$中的多项式;又由$v_i$$\hat K[\theta]$中首一多项式,可验证$\dfrac{v_i'}{v_i}$$\hat K(\theta)$中的真分式。

由于$\theta$$K$上超越,等式两端的关于$\theta$的多项式和真分式必定对应相等,从而 
\begin{equation*}
  \left\{
    \begin{aligned}
      p&=p_0'+\sum_{i=1}^kc_i\frac{v_i'}{v_i}, \\
      \frac{q}{r}&=\left(\frac{q_0}{r_0}\right)'+\sum_{i=k+1}^nc_i\frac{v_i'}{v_i}.
    \end{aligned}\right.\tag{4}
\end{equation*}
$p$$\dfrac{q}{r}$都在$K$上有初等积分。

回到顶部多项式部分

由分解引理,我们可以等价地分别对多项式部分$p$和有理部分$\dfrac{q}{r}$分别求积分,如果其中有一个无初等积分,则$f$也必无初等积分。

注8 一般来说将被积函数$f$拆成两项分别积分与直接积分并不等价。例如$$\int x^x,\quad \int x^x\ln x$$均非初等函数,但$$\int x^x(1+\ln x)=x^x.$$
注9 在下面的算法过程中,为了求得$K(\theta)$中函数的积分,我们预先需要知道如何对基域$K$中的函数作积分。例如我们已经知道有理函数域$K=\mathbb{C}(x)$上的积分方法,因此便可以解决例如$\mathbb{C}(x,\ln x)$中的积分问题。再取$\mathbb{C}(x,\ln x)$作为新的基域$K$,便能得到$\mathbb{C}(x,\ln x, \ln\ln x)$中函数的积分方法。如此可以递归的地做下去,构成了一种“塔状”的求积分过程,我们在后面可以看到,类似这样的过程将最终可以在理论上解决任意复杂形式初等函数积分问题。

在式(4)中设$$p=\sum_{i=0}^mA_i\theta^i,\quad p_0=\sum_{i=0}^nB_i\theta^i,$$其中$A_i, B_i\in  K$,则有$$\sum_{i=1}^mA_i\theta^i=\sum_{i=0}^nB_i'\theta^i+\sum_{i=1}^niB_i\theta^{i-1}\theta'+\sum_{i=1}^k\frac{c_iv_i'}{v_i}.$$ 由于$A_i$已知,我们的目标是求出$B_i$$\sum_{i=1}^k\limits c_i\ln v_i$。利用$\theta$$K$上超越,可得 
\begin{equation*}
  n=
  \begin{cases}
    m+1 & \text{若}~B_n'=0, \\
    m & \text{若}~B_n'\ne 0.
  \end{cases}
\end{equation*}
$B_n'=0$,则$B_{m+1}$为非零常数,否则可约定$B_{m+1}=0$,于是无论何种情况考虑$\theta$的最高次项$\theta^m$可得$$A_m=B_m'+(m+1)B_{m+1}\theta',$$所以$$B_m=-(m+1)B_{m+1}\theta+\int A_m.$$可知$\displaystyle\int A_m$$\hat K[\theta]$中小于一次的多项式,可确定下常数$B_{m+1}$以及$B_m\in  K$。当然,由于$\displaystyle\int A_m$积分常数的存在,$B_m$的确定是在相差一个常数下而言的,设此积分常数为$b_m$。接下来再考虑两边$\theta^{m-1}$项可得$$A_{m-1}=B_{m-1}'+m(B_m+b_m)\theta',$$同样可知$$B_{m-1}=-mb_m\theta+\int A_{m-1}-mB_m\theta',$$于是$\displaystyle\int  A_{m-1}-mB_m\theta'$$\hat K[\theta]$中小于一次的多项式,可确定常数$b_m$$B_{m-1}+b_{m-1}$$b_{m-1}$为积分常数)。如此续行,直到比较$\theta^0$项可得$$A_0=B_0'+(B_1+b_1)\theta'+\sum_{i=1}^k\frac{c_iv_i'}{v_i},$$积分得$$B_0+\sum_{i=1}^kc_i\ln v_i=\int A_0-\int(B_1+b_1)\theta'.$$最终求出常数$b_1$,以及$K$上的对数部分$\sum\limits_{i=1}^kc_i\ln v_i$(注意这最后一步右端积分未必落在$K$中),从而我们(在相差一个常数的意义下)求出了多项式部分的积分。

回到顶部有理部分与对数部分

我们希望求出(4)中的$\dfrac{q_0}{r_0}$$\sum\limits_{i=k+1}^nc_i\ln v_i$,求积分的有理部分和对数部分可以和有理函数积分类似的做。为确保类似Hermite约化的过程能够进行,我们验证如下的引理。

引理3$r\in K[\theta]$为正次数的无平方因子的多项式,则$(r,r')=1$
证明$r=\prod\limits_{i=1}^n(\theta-a_i)$$r$$\overline{K}$上的分解。则由复合函数求导 
\begin{align*}
  r'&=\sum_{i=1}^n\prod_{j\ne i}(\theta-a_i)(\theta-a_i)' \\
  &=\sum_{i=1}^n\prod_{j\ne i}(\theta-a_i)(\frac{\eta'}{\eta}-a_i').
\end{align*}
$(r,r')\ne1$,则存在$i$,使得$\theta-a_i\mid \dfrac{\eta'}{\eta}-a_i'$。由于$\dfrac{\eta'}{\eta}-a_i'\in \overline{K}$,而$\theta$$K$上超越,必有$\dfrac{\eta'}{\eta}=a_i'$。则$\theta=a_i+c$$c$为常数)为$K$上的代数元,矛盾!

有了引理3$(r,r')=1$的保证,我们就可以施行Hermite约化过程了。将$r$$K[\theta]$上作无平方分解$r=\prod\limits_{i=1}^nr_i^i$,完全类似可以得到式(2)的约化结果,从而求出积分的有理部分$\dfrac{q_0}{r_0}$

同样有求对数部分的Rothstein-Trager方法的类似版本。设$r\in K[\theta]$无平方因子,则积分的形式必为$\dfrac{q}{r}=\sum\limits_{i=k+1}^nc_i\ln v_i$,其中$c_i\in \overline{C(K)}$为常数,$v_i\in \hat K[\theta]$。求得Rothstein-Trager结式$\res_\theta(q-yr',r)$关于$y$的根$c_i\in \overline{K(\theta)}$,若有$c_i$不是常数,则$\dfrac{q}{r}$$K(\theta)$上必无初等积分;若$c_i$均为常数,计算最大公因子$(q-c_ir',r)$即可得到$v_i$

例3 计算$\displaystyle\int\dfrac{1}{x\ln x}$

$\theta=\ln x$,为$K=\mathbb{Q}(x)$上的超越对数函数,被积函数为$\dfrac{q}{r}=\dfrac{1}{x\cdot\theta}\in K(\theta)$$r$无平方因子,可以直接施行Rothstein-Trager方法。$r'{}=\theta+1$,故 
\begin{align*}
  \res_\theta(q-yr',r)&=\res_\theta(1-y(\theta+1),x\theta) \\
  &=
  \begin{vmatrix}
    -y & x \\
    1-y & 0
  \end{vmatrix} \\
  &=-(1-y)x.
\end{align*}
可知此结式关于$y$只有一个根$c=1$,且为常数。计算最大公因子 
\begin{align*}
v=(q-cr',r)&=(1-(\theta+1),x\theta ) \\
&=(\theta,x\theta) \\
&=\theta.
\end{align*}
最终可知$$\int \frac{1}{x\ln x}=c\ln v=\ln \theta=\ln \ln x$$即为积分结果。

例4 计算$\displaystyle\int\dfrac{1}{\ln x}$

$\theta=\ln x$,为$K=\mathbb{Q}(x)$上的超越对数函数,被积函数为$\dfrac{q}{r}=\dfrac{1}{\theta}\in K(\theta)$$r$无平方因子,可以直接施行Rothstein-Trager方法。$r'{}=\dfrac{1}{x}$,故$\res_\theta(q-yr',r)=\res_\theta(1-y\cdot\dfrac{1}{x},\theta)=1-\dfrac{y}{x}$,结式关于$y$的根为$c=x$不为常数,可知$\dfrac{1}{\ln x}$不是初等可积的。

回到顶部超越指数函数积分

我们沿着有理函数积分的道路顺利地解决了超越对数函数积分的问题,接下来自然要考虑的是超越指数函数积分了,即$\theta$$K$上的超越指数函数,$f\in K(\theta)$的积分问题。

但这个问题变得要复杂一些,一方面在计算过程中我们需要在基域$K$中求解微分方程(被称为Risch微分方程[5]$$y'+f\cdot y=g,$$其中$f,g\in K$$y\in K$为未知函数。我们将在微分方程符号解中专门讨论Risch微分方程,而且将看到Risch微分方程和符号积分在某种意义下的相互“纠缠”。现在我们暂时假设已经能够在$K$上完成这样的求解。

复杂性的另一面在于,$r\in K[\theta]$无平方因子也不能保证$(r,r')=1$

例5 考虑$\theta=e^x$$r=\theta$$r$无平方因子,但$(r,r')=(\theta,\theta)=\theta\ne1$

因此我们需要对引理3做一个小的修订。

引理4$r\in K[\theta]$为正次数的无平方因子的多项式,且$\theta\nmid r$,则$(r,r')=1$
证明

$r=\prod\limits_{i=1}^n(\theta-a_i)$$r$$\overline{K}$上的分解。则由复合函数求导 
\begin{align*}
  r'&=\sum_{i=1}^n\prod_{j\ne i}(\theta-a_i)(\theta-a_i)' \\
  &=\sum_{i=1}^n\prod_{j\ne i}(\theta-a_i)(\eta'\theta-a_i').
\end{align*}
$(r,r')\ne1$,则存在$i$,使得$\theta-a_i\mid \eta'\theta-a_i'$,从而$\eta'a_i=a_i'$。由于$\theta\nmid r$,故$a_i\ne0$。而$$\left(\frac{a_i}{\theta}\right)'{}=\frac{a_i'\theta-\theta'a_i}{\theta^2}=\frac{a_i'-\eta'a_i}{\theta}=0,$$可知$a_i=c\theta$$c$为非零常数),这与$\theta$$K$上超越矛盾!

回到顶部分解引理

根据引理4,为了能够继续使用Hermite约化,我们需要将分母中的$\theta$因子分离出来,这就引导我们引入如下定义。

定义3(广义多项式) $K(\theta)$中形如$\sum\limits_{i=-m}^nA_i\theta^i$的元素称为$K(\theta)$中的广义多项式。

在这样的定义下,$f$有广义分解$p+\dfrac{q}{r}$,其中$p$为广义多项式,$q,r\in K[\theta]$$q$$r$互素,$\deg q<\deg r$且有$\theta\nmid r$。有类似于引理2的分解引理,证明过程也是类似的。

引理5(超越指数函数分解引理)$f$$K$上的超越指数函数,若$f$$K$上有初等积分,则$p$$\dfrac{q}{r}$都在$K$上有初等积分。
证明$K(\theta)$代替$K$应用Liouville定理可得$$\int f=v_0+\sum_{i=1}^nc_i\ln v_i,$$其中$v_0\in K(\theta)$$c_i\in \overline{C(K)}$,记$\hat K=K(c_1,\ldots,c_n)$,通过拆分对数项可以保证$v_i\in \hat K[\theta]$为首一多项式。求导得$$f=v_0'+\sum_{i=1}^nc_i\frac{v_i'}{v_i}.$$$v_0=p_0+\dfrac{q_0}{r_0}$为广义分解,根据$v_i$$\hat K$中元素还是$\hat K[\theta]$中正次数多项式将右端第二项拆为两部分。我们要注意多项式求导的特殊性,由于$$(A_i\theta^i)'{}=A_i'\theta^i+A_ii\theta^{i-1}\theta'{}=(A_i'+A_ii\eta')\theta^i,$$因此多项式求导后每项的次数都不变,故可假定$\theta\nmid v_i$。由于$\dfrac{v_i'}{v_i}$不再是真分式,因此还需将$v_i'$中的最高次项分离出来(例如减去$n_i\eta'v_i$),设$\deg v_i=n_i$,则可得 
\begin{align*}
p+\frac{q}{r}&=\left(p_0+\dfrac{q_0}{r_0}\right)'+\sum_{i=1}^kc_i\frac{v_i'}{v_i}+\sum_{i=k+1}^nc_i\frac{v_i'}{v_i} \\
&=\underbrace{\left(p_0'+\sum_{i=1}^kc_i\frac{v_i'}{v_i}+\sum_{i=k+1}^nc_in_i\eta'\right)}_{\in \hat K(\theta)\text{为广义多项式}}+\underbrace{\left(\left(\frac{q_0}{r_0}\right)'+\sum_{i=k+1}^nc_i\frac{v_i'-n_i\eta'v_i}{v_i}\right)}_{\in \hat K(\theta)\text{为真分式},\ \theta\nmid v_i}
\end{align*}

由于$\theta$$K$上超越,等式两端的关于$\theta$的广义多项式和真分式必定对应相等,从而 
\begin{equation*}
  \left\{
    \begin{aligned}
      p&=p_0'+\sum_{i=1}^kc_i\frac{v_i'}{v_i}+\sum_{i=k+1}^nc_in_i\eta', \\
      \frac{q}{r}&=\left(\frac{q_0}{r_0}\right)'+\sum_{i=k+1}^nc_i\frac{v_i'-n_i\eta'v_i}{v_i}.
    \end{aligned}\right.
\end{equation*}

\begin{equation*}
  \left\{
\begin{aligned}
\int p&=p_0+\sum_{i=1}^kc_i\ln v_i+\sum_{i=k+1}^nc_in_i\eta, \\
\int\dfrac{q}{r}&=\frac{q_0}{r_0}+\sum_{i=k+1}^nc_i(\ln v_i-n_i\eta),
\end{aligned}\right.\tag{5}
\end{equation*}
都在$K$上有初等积分。

回到顶部多项式部分

在式(5)中设$$p=\sum_{i=-m}^nA_i\theta^i,\quad p_0=\sum_{i=-m'}^{n'}B_i\theta^i,$$其中$A_i, B_i\in  K$,则有$$\sum_{i=-m}^nA_i\theta^i=\left(\sum_{i=-m'}^{n'}B_i\theta^i\right)'+\sum_{i=1}^k\frac{c_iv_i'}{v_i}+\sum_{k+1}^nc_in_i\eta'.$$由于$A_i$已知,我们的目标是求出$B_i$$\sum\limits_{i=1}^kc_i\ln v_i+\sum\limits_{i=k+1}^nc_in_i\eta$。由于多项式求导不改变次数,故必有$n=n'$$m=m'$。比较对应项系数得到 
\begin{equation*}
A_i=B_i'+iB_i\eta',\quad i=-m,\ldots,n,\ i\ne0.\tag{6}
\end{equation*}
这些是$K$上的关于未知量$B_i$的Risch方程,我们假定了能够在$K$上求解此类方程或给出无解的结论。若其中有一个方程无解,则$f$$K(\theta)$上无初等积分;否则可求出$B_i\ (i=-m,\ldots,n,\ i\ne0)$,最后根据$\displaystyle\int A_0$求出$B_0+\sum\limits_{i=1}^kc_i\ln v_i+\sum\limits_{i=k+1}^nc_in_i\eta$

回到顶部有理部分和对数部分

由于我们有了引理4的保证,依然可以对广义分解中的$\dfrac{q}{r}$进行Hermite约化过程,从而得到积分的有理部分。

同样可以用类似于Rothstein-Trager的方法计算对数部分,设$r$无平方因子,则$\dfrac{q}{r}$积分的形式为$\sum\limits_{i=k+1}^nc_i\dfrac{v_i'-n_i\eta'v_i}{v_i}$,可知$r=\prod\limits_{j=k+1}^nv_j$。记$u_i=\prod\limits_{j\ne i}v_j$,则$$r'=\sum_{j=k+1}^nu_jv_j',$$$$q=\sum_{j=k+1}^nc_j(v_j'-n_j\eta'v_j)u_j.$$于是 
\begin{align*}
  &\qquad\left(q-c_i\left(r'-r\sum_{j=k+1}^nn_j\eta'\right),r\right) \\
  &=\left(\sum_{j=k+1}^n(c_j-c_i)(v_j'-n_jv_j\eta')u_j,r\right) \\
  &=\prod_{l=k+1}^n\left(\sum_{j=k+1}^n(c_j-c_i)(v_j'-n_jv_j\eta')u_j,v_l\right) \\
  &=v_i.
\end{align*}
注意到$\sum\limits_{j=k+1}^nn_j=\deg r$,知道可以通过求结式$\res_\theta(q-y(r'-r\deg r\cdot\eta',r)$关于$y$的根来求得$c_j$。同样的,如果此结式有根$c_i$非常数,则$\dfrac{q}{r}$$K(\theta)$上无初等积分;若所有根均为常数,则通过计算最大公因子$(q-c_i(r'-r\deg r\cdot\eta'),r)$即可求得$v_i$

参考文献

[1]J. H. Davenport and Y. Siret and E. Tournier, Computer algebra: systems and algorithms for algebraic computation, Academic Press, London, UK, 1988.

[2]Manuel Bronstein, Symbolic Integration I: Transcendental Functions(2nd ed.), Springer Verlag, 2005.

[3]Joachim von zur Gathen and Jürgen Gerhard, Modern Computer Algebra, Cambridge University Press, 2002.

[4]K.O. Geddes and S.R. Czapor and G. Labahn, Algorithms for Computer Algebra, Kluwer Academic Publishers, 1992.

[5]Robert H. Risch, The Problem of Integration in Finite Terms, Transactions of the American Mathematical Society 139 (1969), 167-189.