ローラン展開で部分分数分解!

(数学的な本題はこちらからどうぞ)

 暑い日が続いたかと思えばどんよりした空から急に雨が降り出したり。上手くいった昨日は後悔の明日への第一歩であったり。
 楽に処理できることは多くの場合において正義でしょう。でも近道は周りの景色が見えないトンネルのようなもので、他との結びつきを失った無味乾燥としたものとなってしまうことも多々あると思います。遠回りの楽しさを見つけられるというのは豊かさの1つの側面だと思います。今回は遠回りの楽しさを味わってほしいと思って書き始めました

 声に出して読みたい数学用語1位といえばもちろん "部分分数分解" 。口にするだけで楽しい気分になりますね。名付けた人はどういうネーミングセンスの持ち主なのだろうと思いましたがpartial fraction decompositionという英語を直訳したようです。
 ちなみに声に出したくない数学用語1位はcoshです。相手が自分と別の派閥の場合険悪な雰囲気になりますね。コッシュというのはちょっとダサいと思います。ハイパボリックコサインは長いしカッコつけてる感が気になります。コシャインはかわいい。天才

部分分数分解ってなに?

 部分分数分解を最初に習ったのは中学受験勉強のときでしたが感動したのを覚えています。

$$
\dfrac{1}{1×2}+\dfrac{1}{2×3}+\dfrac{1}{3×4}+…+\dfrac{1}{99×100}=\dfrac{1}{1}-\dfrac{1}{100}=\dfrac{99}{100}
$$

みたいなやつですね。

$$
\dfrac{1}{n(n+1)}=\dfrac{1}{n}-\dfrac{1}{n+1}
$$

を利用しているんですね。半分公式として覚えている人も多いかもしれません。有理式(分母と分子がともに多項式で表されているような分数式)をより簡単な有理式と多項式の和として表すのが部分分数分解です。

$$
\dfrac{2}{x(x+1)(x+2)}=\dfrac{1}{x}-\dfrac{2}{x+1}+\dfrac{1}{x+2} \\\dfrac{1}{x^3-1}=\dfrac{1}{3}(\dfrac{1}{x-1}-\dfrac{x+2}{x^2+x+1}) \\\dfrac{2x+1}{x^2(x+1)}=\dfrac{1}{x}+\dfrac{1}{x^2}-\dfrac{1}{x+1}
$$

のように使うことができます。一般に

$$
\dfrac{P(x)}{(x-α_1)^{m_1}(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=\sum_{k=1}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

となるような複素数

$$
a_{k,m}(1\leq k\leq n, 1\leq m \leq m_k)
$$

が存在しています。(ただし$${P(x)}$$は$${\sum_{k=1}^n m_k }$$次未満の多項式で$${\alpha_1,…,\alpha_n}$$は相異なる複素数)
 今回は詳しい証明をせずにこれを認めることにします。多項式$${f_1(x),f_2(x)}$$が共通因数を持たない(つまり$${f_1(x)=f_2(x)=0}$$を満たす複素数$${x}$$が存在しない)とき、多項式$${g_1(x),g_2(x)}$$が存在して

$$
f_2(x)g_1(x)-f_1(x)g_2(x)=1
$$

が(恒等的に)成り立ちます。また

$$
deg \, g_1(x) < deg \, f_1(x),deg \, g_2(x) < deg \, f_2(x)
$$

とすれば$${g_1(x),g_2(x)}$$は一意的に定まります。($${ax+by=1}$$の整数解を見つけるためにユークリッドの互除法を使ったのと同様にして示せます。)
したがって

$$
\dfrac{1}{f_1(x)f_2(x)}=\dfrac{g_1(x)}{f_1(x)}-\dfrac{g_2(x)}{f_2(x)}
$$

という部分分数分解が作れます。これを繰り返すことで上の事実を証明できます。それから$${a_{k,m}}$$も一意に定まりますね。
 代数学や環論に興味がある人はユークリッド整域とかを検索してみると楽しいかもしれません。自分もあまり良くわかっていませんが

 さて、これで部分分数分解が必ずできることがわかったので満足するかもしれません。ただ毎回ユークリッドの互除法を使って少しずつ分解していくのはかなり面倒です。証明自体はとても美しいものですが、それを毎回用いて係数を計算するのは非効率なんです。良いか悪いかは別として多くの人はなぜ部分分数分解ができるかよりも部分分数分解の早い計算方法に興味があるかもしれませんね。今回はそれについて考えてみます。

 例題として

$$
\dfrac{2x+1}{x^2(x+1)}=\dfrac{a}{x}+\dfrac{b}{x^2}+\dfrac{c}{x+1}
$$

のa,b,cを決定することを考えてみましょう

方法①通分する

 最も愚直な方法です。上の式の両辺に$${x^2(x+1)}$$をかけてみると

$$
2x+1=ax(x+1)+b(x+1)+cx^2\\つまり2x+1=(a+c)x^2+(a+b)x+b
$$

となって

$$
a+c=0,a+b=2,b=1\\すなわちa=1,b=1,c=-1
$$

とわかります。

方法②代入する

 部分分数分解が上の形でできることはすでに分かっていて未知数は3つなので値を3つ代入してみればa,b,cを決定できるでしょう。分母が0となると困るのでそれを避けるようにするとx=1,2,-2といったところで試してみましょうか。

$$
x=1を代入すると\dfrac{3}{2}=a+b+\dfrac{c}{2}\\x=2を代入すると\dfrac{5}{12}=\dfrac{a}{2}+\dfrac{b}{4}+\dfrac{c}{3}\\x=-2を代入すると\dfrac{3}{4}=-\dfrac{a}{2}+\dfrac{b}{4}-c
$$

 この連立方程式を解くと

$$
a=1,b=1,c=-1
$$

とわかります。

 どうでしょうか……なんとも言えない残念な感じがありますね。適当に値を代入することで簡単に係数を決定できるはずが、逆に面倒になっています。3元連立方程式を解くということは3次の行列の逆行列を求めれば良く、n元であればn次行列の逆行列を求めることになりますが、掃き出し法を用いた場合計算量は$${O(n^3)}$$になります。線形代数の試験なんかで逆行列を手計算で求めるときは正直ため息が出てしまいますよね。

(この段落は読み飛ばしても構いません)
 注意深い人は「そもそも本当に3つ代入しただけでいいのか?3つの連立方程式が独立となる保証はあるのか?」と疑問に持つかもしれません。というか自分が最初そう思いました。$${x_1,x_2,x_3}$$を相異なる複素数として、もし$${x=x_1,x_2,x_3}$$を代入したのにa,b,cが一意に決定されなかったとすると

$$
\dfrac{a}{x_1}+\dfrac{b}{x_1^2}+\dfrac{c}{x_1+1}=\dfrac{A}{x_1}+\dfrac{B}{x_1^2}+\dfrac{C}{x_1+1}\\\dfrac{a}{x_2}+\dfrac{b}{x_2^2}+\dfrac{c}{x_2+1}=\dfrac{A}{x_2}+\dfrac{B}{x_2^2}+\dfrac{C}{x_2+1}\\\dfrac{a}{x_3}+\dfrac{b}{x_3^2}+\dfrac{c}{x_3+1}=\dfrac{A}{x_3}+\dfrac{B}{x_3^2}+\dfrac{C}{x_3+1}
$$

となるような$${A,B,C}$$が存在することになります。つまり3つ代入したのに$${(a,b,c)}$$が正しいのか$${(A,B,C)}$$が正しいのかわからなかった場合を考えてみます。ここで

$$
\dfrac{p(x)}{x^2(x+1)}=\dfrac{a-A}{x}+\dfrac{b-B}{x^2}+\dfrac{c-C}{x+1}
$$

とおくと

$$
p(x_1)=p(x_2)=p(x_3)=0
$$

がわかります。しかし$${p(x)}$$はどちらも2次以下の多項式なので

$$
p(x)=0
$$

が恒等的に成り立つと示されました。よって

$$
a=A,b=B,c=C
$$

とわかります。つまり相異なる3つの複素数を代入すれば係数は必ず一意に定まるということです(補足終わり)

方法②' ①と②を組み合わせる

 ②は分母が0になる値を代入してはいけないのが残念な要因の一つでした。なんとなく多項式に代入して0になるような値を使うと良いことがありそうな気がします
 そこで①の

$$
2x+1=ax(x+1)+b(x+1)+cx^2
$$

に代入してみます。x=0を代入するとb=1がわかり、x=-1を代入するとc=-1がわかります。これは瞬時にわかりますね。x=0を代入したときはb以外の項が消えて、x=-1を代入したときはc以外の項が消えています。非常に計算量が少ないです。
 ただaについてはx=0を代入してもx=-1を代入しても消えてしまうのでこの方法で瞬時に求めることはできません。もどかしいですね

 ここでわかったことをまとめると

$$
\dfrac{P(x)}{(x-α_1)(x-α_2)…(x-α_n)}=\sum_{k=1}^n\dfrac{a_{k}}{x-α_k}
$$

と分母が簡単な場合については

$$
a_k = \dfrac{P(α_k)}{(α_k-α_1)…(α_k-α_{k-1})(α_k-α_{k+1})…(α_k-α_{n})}
$$

となります。これなら計算量は$${O(n^2)}$$に落ちますね。

 一問だけ例題をやってみます。

$$
\dfrac{4x^2+3x-4}{x(x-2)(x+1)}=\dfrac{a}{x}+\dfrac{b}{x-2}+\dfrac{c}{x+1}
$$

のa,b,cを決定してみましょう。

$$
a=\dfrac{-4}{-2}=2\\b=\dfrac{16+6-4}{2・3}=3\\c=\dfrac{4-3-4}{-1・(-3)}=-1
$$

よって

$$
\dfrac{4x^2+3x-4}{x(x-2)(x+1)}=\dfrac{2}{x}+\dfrac{3}{x-2}-\dfrac{1}{x+1}
$$

方法③ 微分してみる

$$
\dfrac{2x+1}{x^2(x+1)}=\dfrac{a}{x}+\dfrac{b}{x^2}+\dfrac{c}{x+1}
$$

に戻りましょう。両辺に$${x^2}$$をかけると

$$
\dfrac{2x+1}{x+1}=ax+b+\dfrac{cx^2}{x+1}
$$

で、これの両辺を微分すると

$$
\dfrac{1}{(x+1)^2}=a+\dfrac{cx(x+2)}{(x+1)^2}
$$

となり、ここにx=0を代入すると、a=1が分かります。

 この方法のポイントはbやcの値を求めず直接aの値だけを求めることができるということ。これをヒントにもう少し一般化させて考えてみましょう。

 $$
\dfrac{P(x)}{(x-α_1)^{m_1}(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=\sum_{k=1}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

の両辺に$${(x-α_1)^{m_1}}$$をかけると

$$
\dfrac{P(x)}{(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=a_{1,m_1}+a_{1,m_1-1}(x-α_1)+…+a_{1,1}(x-α_1)^{m_1-1}+(x-α_1)^{m_1}\sum_{k=2}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

となる。$${a_{1,m}(1\leq m \leq m_1)}$$を求めたい場合は両辺を$${x}$$で$${(m_1-m)}$$回微分してみます。すると右辺の最初の$${(m_1-m)}$$項はすべて消えましたね。つまり$${a_{1,m_1}}$$から$${a_{1,m+1}(x-α_1)^{m_1-m-1}}$$が消える。これで得られた式に$${x=α_1}$$を代入すると右辺は

$$
(m_1-m)!a_{1,m}
$$

となります。

(理由の説明:

$$
a_{1,m-1}(x-a_1)^{m_1-m+1}+…+a_{1,1}(x-α_1)^{m_1-1}
$$

は$${x}$$で$${(m_1-m)}$$回微分して$${x=α_1}$$を代入すると0になることが明らかで、

$$
(x-α_1)^{m_1}\sum_{k=2}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

については積の微分のライプニッツの公式を思い出すとこれも$${x}$$で$${(m_1-m)}$$回微分して$${x=α_1}$$を代入すると0になることが分かるでしょう。)

つまり

$$
\dfrac{P(x)}{(x-α_2)^{m_2}…(x-α_n)^{m_n}}
$$

を$${x}$$で$${(m_1-m)}$$回微分して$${x=α_1}$$を代入した値を$${(m_1-m)!}$$で割ったものが$${a_{1,m}}$$で、$${a_{k,m}(1\leq m \leq m_k)}$$についても全く同じようにして求めることができます。

方法④テイラー展開を使う

 これで他の係数を求めることなく直接$${a_{k,m}}$$を求めることができました。これはこれですっきりしていると思います。しかし多くの人が実感しているように分数関数の微分の公式は計算が面倒なんですよね。受験勉強をしながら何度うんざりしたことか!そこで面倒な微分の計算を回避する方法を考えてみます

 先程の式の右辺

$$
a_{1,m_1}+a_{1,m_1-1}(x-α_1)+…+a_{1,1}(x-α_1)^{m_1-1}+(x-α_1)^{m_1}\sum_{k=2}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

をよく見ると$${x=\alpha_1}$$でのテイラー展開の形に似ていることに気づきます。

$$
\sum_{k=2}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

は$${x=\alpha_1}$$でテイラー展開できてそれを

$$
b_0+b_1(x-\alpha_1)+b_2(x-\alpha_1)^2+b_3(x-\alpha_1)^3+…
$$

とおけば

$$
\dfrac{P(x)}{(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=a_{1,m_1}+a_{1,m_1-1}(x-α_1)+…+a_{1,1}(x-α_1)^{m_1-1}\\+b_0(x-α_1)^{m_1}+b_1(x-α_1)^{m_1+1}+b_2(x-α_1)^{m_1+2}+…
$$

と表せる。従って

$$
\dfrac{P(x)}{(x-α_2)^{m_2}…(x-α_n)^{m_n}}
$$

を$${x=\alpha_1}$$で$${(m_1-1)}$$次までのテイラー展開をすれば$${a_{1,1}}$$から$${a_{1,m_1}}$$が求められるということです。

 そして有理式の場合、有限次までのテイラー展開は微分を計算する必要がありません。
 例えば

$$
\dfrac{2x+1}{x^2(x+1)}=\dfrac{a}{x}+\dfrac{b}{x^2}+\dfrac{c}{x+1}
$$

のa,bを決定する場合には

$$
\dfrac{2x+1}{x+1}
$$

の1次までのマクローリン展開を計算すればよく、

$$
\dfrac{2x+1}{x+1}=(1+2x)(1-x+x^2-x^3+…)=1+x-x^2+x^3-x^4+…
$$

ということから1次までのマクローリン展開では1+xとなる。つまりa=1,b=1ですね。cを決定するときには

$$
\dfrac{2x+1}{x^2}
$$

にx=-1を代入するだけです。c=-1ですね

 もう少し複雑な例をやってみましょう。

$$
\dfrac{1}{x^4(x-1)^2(x+2)}=\dfrac{a}{x}+\dfrac{b}{x^2}+\dfrac{c}{x^3}+\dfrac{d}{x^4}+\dfrac{e}{x-1}+\dfrac{f}{(x-1)^2}+\dfrac{g}{x+2}
$$

のa,b,c,d,e,f,gを求めてみます。
 まず$${\dfrac{1}{(x-1)^2(x+2)}}$$のx=0での3次までのテイラー展開をしてみます。|x|が十分小さいと考えて近似式のような形で書くと楽です。

 $$
\dfrac{1}{(x-1)^2(x+2)}\\=\dfrac{1}{2}\dfrac{1}{(1-x)^2(1+x/2)}\\≒\dfrac{1}{2}(1+2x+3x^2+4x^3)(1-\dfrac{x}{2}+\dfrac{x^2}{4}-\dfrac{x^3}{8})\\≒\dfrac{1}{2}+\dfrac{3x}{4}+\dfrac{9x^2}{8}+\dfrac{23x^3}{16}
$$

 次に$${\dfrac{1}{x^4(x+2)}}$$のx=1におけるテイラー展開を1次の項まで計算してみます。|x-1|が十分小さいと考えて近似式の形でかくと 

$$
\dfrac{1}{x^4(x+2)}\\=\dfrac{1}{(1+(x-1))^4(3+(x-1))}\\≒(1-4(x-1))(\dfrac{1}{3}-\dfrac{x-1}{9})\\≒\dfrac{1}{3}-\dfrac{13(x-1)}{9}
$$

 最後に$${\dfrac{1}{x^4(x-1)^2}}$$のx=-2におけるテイラー展開を0次の項まで求めれば良いのですがこれは単にx=-2を代入するだけで$${\dfrac{1}{144}}$$と分かりますね。
 以上より

$$
a=\dfrac{23}{16},b=\dfrac{9}{8},c=\dfrac{3}{4},d=\dfrac{1}{2},\\e=-\dfrac{13}{9},f=\dfrac{1}{3},g=\dfrac{1}{144}
$$

と分かりました。つまり

$$
\dfrac{1}{x^4(x-1)^2(x+2)}\\=\dfrac{23}{16x}+\dfrac{9}{8x^2}+\dfrac{3}{4x^3}+\dfrac{1}{2x^4}-\dfrac{13}{9(x-1)}+\dfrac{1}{3(x-1)^2}+\dfrac{1}{144(x+2)}
$$

ローラン展開との関係

 ところで

$$
\dfrac{P(x)}{(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=a_{1,m_1}+a_{1,m_1-1}(x-α_1)+…+a_{1,1}(x-α_1)^{m_1-1}\\+b_0(x-α_1)^{m_1}+b_1(x-α_1)^{m_1+1}+b_2(x-α_1)^{m_1+2}+…
$$

の両辺を$${(x-\alpha_1)^{m_1}}$$で割ると

$$
\dfrac{P(x)}{(x-α_1)^{m_1}(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=\dfrac{a_{1,m_1}}{(x-α_1)^{m_1}}+\dfrac{a_{1,m_1-1}}{(x-α_1)^{m_1-1}}+…+\dfrac{a_{1,1}}{x-α_1}\\+b_0+b_1(x-α_1)+b_2(x-α_1)^2+…
$$

という形になります。これは$${x=\alpha_1}$$の周りでのローラン展開になっています。$${\dfrac{P(x)}{(x-α_1)^{m_1}(x-α_2)^{m_2}…(x-α_n)^{m_n}}}$$は$${x=\alpha_1}$$で$${m_1}$$位の極となっていてそこでのローラン展開の主要部が

$$
\dfrac{a_{1,m_1}}{(x-α_1)^{m_1}}+\dfrac{a_{1,m_1-1}}{(x-α_1)^{m_1-1}}+…+\dfrac{a_{1,1}}{x-α_1}
$$

です。同様に$${x=\alpha_k}$$でのローラン展開の主要部が

$$
\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

と表されますね。
 元の部分分数分解が

$$
\dfrac{P(x)}{(x-α_1)^{m_1}(x-α_2)^{m_2}…(x-α_n)^{m_n}}\\=\sum_{k=1}^n\sum_{m=1}^{m_k}\dfrac{a_{k,m}}{(x-α_k)^m}
$$

であったことを思い出してみましょう。これは各特異点周りのローラン展開の主要部を全て足し合わせたものになっていますね。
(多少細かいことを言うと複数の特異点を持つ場合ローラン展開はどの範囲でのローラン展開であるかを明記する必要があります。例えば

$$
\dfrac{1}{x(x+1)}
$$

をx=0でローラン展開するときは

$$
\{ x \mid 0<|x|<1 \} と\{ x \mid |x|>1 \}
$$

の2つの領域が考えられますね。今回は全て前者のような特異点に十分近い方の領域で展開しています。)

 以上をまとめると

  • 部分分数分解は各特異点周りのローラン展開の主要部を足し合わせたもの

  • $${\dfrac{P(x)}{Q(x)}}$$が$${x=\alpha}$$でm位の極ならその主要部は
    $${\dfrac{(x-\alpha)^mP(x)}{Q(x)}}$$を
    $${x=\alpha}$$で$${(m-1)}$$次までテイラー展開をすれば求まる

  • 有理式の有限次までのテイラー展開を手計算するなら高階微分を計算するのではなく近似の考え方を使う

 お疲れ様でした!今回は長かったですね。

予告

 次回は$${f(x)}$$を複素平面の全域で正則な関数として

$$
\dfrac{f(x)}{(x-α_1)^{m_1}(x-α_2)^{m_2}…(x-α_n)^{m_n}}
$$

に対して各特異点周りのローラン展開の主要部を足し合わせた関数について考えてみます。もちろん$${f(x)}$$が多項式とは限らないので部分分数分解とは呼べないのですが、少し面白い性質を持っているので、それを紹介しようと思います。多分今回よりは短いです

この記事が気に入ったらサポートをしてみませんか?