0

積分暗算術(解説篇)

11
0
$$$$

積分の暗算術 ― 解説篇

本書は『積分の体系化』の内容を理解している読者を対象とする。
『積分の体系化』が積分をどう解くかを扱うのに対し、本書では、既知の解法をどう頭の中で実行するかを扱う。解法の選択・発見・導出は原則として繰り返さず、暗算に必要な数式の認識、代数計算の圧縮、情報管理、実行技術に集中する。
本編は第1章「積分の脳内処理」と第2章「積分の暗算技術」からなる。練習問題とその解説は、別記事『積分の暗算術 ― 実践篇』で扱う。

第1章 積分の脳内処理

積分の暗算では、計算用紙に書いて行う操作を、すべて頭の中で再現しているわけではない。
式全体を大まかに捉えると、その構造や変形後の形が自然に浮かぶことがある。さらに、複数の操作をまとめて処理したり、後で不要になる計算を省略したりすることで、途中式を書かずに答えへ到達できる。
ただし、この感覚を単に「見れば分かる」「慣れればできる」と説明しても、他人が再現することは難しい。
そこで本章では、習熟によって自動化された思考を、意識的に練習できる操作へ分解する。
ここで扱うのは積分の解法そのものではない。数式をどう認識し、頭の中でどのように操作し、複雑な計算をいかに簡単なまま処理するかを考える。
なお、以下の手順は、熟練者が毎回その順序で思考していることを意味しない。実際にはほぼ無意識に行われる処理を、学習者が再現できるように分解したものである。

1.1 構造認識の起点

積分を暗算するとき、式を見た瞬間に構造や結果の形が浮かぶことがある。
しかし、初めから式全体を一度に認識しようとする必要はない。まずは、何がその構造を連想させるのかを意識するとよい。
例えば、次の有理式を考える。
$$ \frac{x^4-4x^3+9x^2-10x+6}{x^2-2x+2} $$
分母に注目すると、分子にもこれと共通する構造が含まれている可能性を考えられる。
特に、分子の最高次の二項から、
$$ (x^2-2x)^2 $$
という形が候補になる。
これを展開したときの四次・三次の項は、分子と一致する。残りも同じ二次式を利用して表せるため、
$$ \begin{aligned} &x^4-4x^3+9x^2-10x+6\\ &=(x^2-2x)^2+5(x^2-2x)+6\\ &=(x^2-2x+2)(x^2-2x+3) \end{aligned} $$
となる。
実際の暗算では、これらの等式を順番に構成するとは限らない。最初から最後の因数分解が浮かぶ場合もある。
しかし、その認識を再現するには、次のように考えられる。
まず、分母や最高次の項など、式の中で目立つ特徴を認識する。次に、そこから考えられる構造を予測する。そして、その構造が元の式と一致するかを必要な係数について確認する。
ここで重要なのは、最初の予測が完全に一致する必要はないということである。
例えば、先ほどの分子の定数項だけを変えた、
$$ x^4-4x^3+9x^2-10x+7 $$
を考える。
先ほどと同じ構造を予測すれば、定数項だけが一つ異なると分かる。
したがって、
$$ \begin{aligned} &x^4-4x^3+9x^2-10x+7\\ &=(x^2-2x+2)(x^2-2x+3)+1 \end{aligned} $$
となる。
予測した構造が完全に一致しなかったからといって、最初から考え直す必要はない。一致しなかった部分を調整すればよいのである。
つまり、全体の構造を認識した後も、個々の項を無視するわけではない。全体像を保ちながら、必要な係数や項にだけ意識を向ける。
このように、全体と部分を行き来しながら調整することが、柔軟な構造認識につながる。
また、構造認識の速度を高めるうえでは、既知の形を増やすことも有効である。
これは単に積分公式を増やすという意味ではない。展開形、因数分解形、合成関数の形など、同じ構造が異なる姿で現れた場合にも認識できるようにすることである。
一つの構造を習得したら、係数や次数、項の配置を変えた式にも触れてみる。その際、答えだけでなく、何を手がかりに同じ構造だと判断できたのかを確認するとよい。
こうして認識できる構造を増やし、個々の確認を繰り返すことで、次第に式全体が一つのまとまりとして浮かぶようになることを目指す。

1.2 数式の認識と圧縮

構造を認識した後は、その構造を必要以上に崩さずに操作する。
例えば、次の式を考える。
$$ \frac{x^4+2x^3+5x^2+6x+4}{(x^2+x+1)^2} $$
分母には同じ二次式が繰り返し現れている。この二次式を一つの塊として扱えば、分子もその構造を利用して整理できる可能性がある。
ただし、最初から頭の中だけで扱う必要はない。慣れないうちは、
$$ A=x^2+x+1 $$
と文字で置いて考えればよい。
すると、
$$ A'=2x+1 $$
であり、分子は、
$$ A(A+2)+A' $$
と表せる。
したがって、元の式は、
$$ \frac{A(A+2)+A'}{A^2} =1+\frac{2}{A}+\frac{A'}{A^2} $$
となる。
ここでは、四次式の各項を独立に操作する代わりに、共通する二次式を一つの対象として扱っている。
この操作に慣れてきたら、文字を実際に書かず、元の二次式を頭の中で一つの塊として捉えてみる。さらに習熟すれば、別の文字に置き換えることすら意識せず、元の式のまま同様の処理ができるようになる。
つまり、文字で置いて構造を確認する段階から、文字を使わずに構造を操作する段階へ移行する。 この順序で練習するとよい。
ただし、塊として認識することは、その内部を二度と確認しないという意味ではない。
予測した構造と元の式の間にずれがあれば、その部分の係数や項を確認する必要がある。一方、内部を確認する必要がなければ、わざわざ展開して考える必要もない。
重要なのは、式を塊として扱うことと、その内部を操作することを自在に切り替えられるようになることである。
数式の圧縮とは、単に文字数を減らすことではない。多数の項を個別に保持する代わりに、それらの関係を一つの構造として保持することである。

1.3 脳内での代数計算

構造を認識できても、その後の代数計算をすべて逐次実行しようとすれば、暗算の負担は大きくなる。
そこで重要になるのが、計算の結果を予測し、必要な操作だけを実行することである。

次数を揃えて処理する

次の多項式を考える。
$$ P(x)=x^5+5x^4+20x^3+60x^2+120x+120 $$
瞬間部分積分では、次の交代和を処理することがある。
$$ P-P'+P''-P'''+P^{(4)}-P^{(5)} $$
計算用紙上では各微分式を書き並べられるが、頭の中ではすべてを完全な形で保持する必要はない。同じ次数の項を揃えて処理すればよい。
その対応関係を表すと、
$$ \begin{array}{c|rrrrrr} &x^5&x^4&x^3&x^2&x&1\\ \hline P&1&5&20&60&120&120\\ -P'&0&-5&-20&-60&-120&-120\\ P''&0&0&20&60&120&120\\ -P'''&0&0&0&-60&-120&-120\\ P^{(4)}&0&0&0&0&120&120\\ -P^{(5)}&0&0&0&0&0&-120\\ \hline &1&0&20&0&120&0 \end{array} $$
となる。
これは計算を説明するための表であり、実際の暗算で表全体を頭の中に描く必要はない。重要なのは、同じ次数の項が対応するように式を捉えることである。
例えば、四次の項は、
$$ 5-5=0 $$
となる。三次の項は、
$$ 20-20+20=20 $$
である。
このように次数ごとに処理すれば、各微分式全体を記憶する必要はない。さらに、係数が確定した後は、それを求めるために使った中間情報を保持し続ける必要もない。
ただし、実際にはこの加減算すら意識しない場合がある。例えば、相殺されることが明らかな項なら、最初から結果が零になると認識できる。
このように、最初は次数を揃えて計算し、次第に相殺の関係そのものを認識できるようにしていく。

正負を分けて計算する

項数が増えた場合、交代する符号を順番に処理するより、正の項と負の項を別々に集計した方が簡単なこともある。
例えば、
$$ 120-120+120-120+120 $$
という計算なら、
$$ (120+120+120)-(120+120)=120 $$
と考えられる。
一方、項が交互に相殺されることが明らかであれば、正負に分ける必要さえない。どの計算方法を使うかは、式の構造によって変わる。
相殺が明らかなら直接消し、そうでなければ正負を分ける。必要なら次数ごとに係数を確定させる。
これらを固定された手順として使うのではなく、その場で扱いやすい処理を選ぶのである。

望ましい結果から計算を考える

代数計算では、与えられた式を順番に変形するだけでなく、どのような形が得られれば、その後の計算が楽になるかを意識することも有効である。
例えば、
$$ \frac{x^3+3x^2+5x+5}{x^2+x+1} $$
を考える。
分母を、
$$ D=x^2+x+1 $$
とすれば、
$$ D'=2x+1 $$
である。
このとき、商が簡単な多項式になり、余りが分母の微分に近い形になれば扱いやすいと予測できる。最高次の項から商を考えると、
$$ x+2 $$
が候補になる。
実際に対応する係数を比較すると、
$$ \begin{aligned} &x^3+3x^2+5x+5\\ &=(x+2)(x^2+x+1)+(2x+3) \end{aligned} $$
となる。余りについても、
$$ 2x+3=D'+2 $$
と認識できる。
したがって、
$$ \frac{x^3+3x^2+5x+5}{x^2+x+1} =x+2+\frac{D'+2}{D} $$
となる。
ここでは、商を求めることと余りの構造を認識することを、完全に独立した操作として扱っていない。初めから余りに望ましい形を意識することで、その後の処理まで見通している。
ただし、望ましい結果を予測することと、式を無理にその結果へ合わせることは異なる。 商や余りは元の式によって決まるため、予測した形との一致を確認する必要がある。
もし一致しなければ、相違する係数や項を調整すればよい。
このように、結果を予測しながら必要な部分を確定させる方法は、因数分解や係数比較など、ほかの代数操作にも応用できる。

複数の操作を一括して処理する

積分の暗算では、因数分解、約分、係数調整、原始関数の構成などが連続して行われる。最初はこれらを個別に実行してもよい。
しかし、同じ構造を繰り返し扱ううちに、一つの操作の結果から次の操作の結果までが、まとまって浮かぶようになることがある。
このとき、数学的な操作そのものがなくなったわけではない。途中の構造を既に認識できているため、改めて計算・保持する必要がなくなっているのである。
例えば、分子に分母の微分が含まれる有理式では、約分できる部分と残る微分形を同時に認識できる場合がある。
このような処理に習熟すると、複数の式変形が一つの操作のように感じられるようになる。
ただし、最初から複数の操作を無理にまとめる必要はない。まずは各操作を正確に実行し、どの中間結果を意識しなくても次の操作へ進めるかを少しずつ確認していけばよい。

1.4 複雑な計算の情報管理

高難度の積分では、複数の変換を連結する必要がある。しかし、複雑な計算を正確に管理する方法を考える前に、まず意識したいことがある。
それは、そもそも計算過程を必要以上に複雑にしないことである。
複雑になった計算を管理する能力も重要だが、初めから不要な計算を発生させなければ、その分だけ処理は容易になる。

不要な計算を発生させない

次の積分を考える。
$$ I=\int_0^1\left(e^{x^2}+2xe^{x^2}\right)\,dx -\int_0^1e^{(1-x)^2}\,dx $$
ここで、最初の積分を分けたとしても、
$$ \int_0^1e^{x^2}\,dx $$
を直ちに評価する必要はない。この積分を、
$$ J=\int_0^1e^{x^2}\,dx $$
として保留する。
すると、
$$ I=J+(e-1)-\int_0^1e^{(1-x)^2}\,dx $$
となる。最後の積分に対して変数変換を考えると、
$$ \int_0^1e^{(1-x)^2}\,dx=J $$
である。したがって、
$$ I=J+(e-1)-J=e-1 $$
を得る。
この例では、個別には初等関数で原始関数を表せない積分が現れるが、その値を求める必要はない。
重要なのは、途中で現れた項を、必ずしもその場で最後まで計算し切る必要はないということである。
後の変形によって相殺される可能性があるなら、その部分を保留しておく方が簡単な場合がある。
もちろん、すべての項が後で相殺されるわけではない。保留することが有効なのは、別の項との関係や、今後の変形によって簡単になる可能性がある場合である。

計算を途中で止める

複数の積分や式が現れたとき、それぞれを完全に評価してから最後にまとめようとすると、不要な計算が生じることがある。
例えば、
$$ I=A+2J-K $$
という関係が得られたとする。さらに、
$$ J=B+L $$
$$ K=C+2L $$
と表せるなら、
$$ I=A+2B-C $$
となる。
このとき、
$$ L $$
の値を求める必要はない。
ここでは、複数の項を分離した後も、それぞれを最後まで計算せず、相互の関係を保持している。
つまり、一度分けた項を独立した計算として完結させる必要はないのである。
必要な部分だけを評価し、未解決の部分はそのまま保持する。そして、別の項との関係が明らかになった時点で、相殺や統合を行えばよい。

情報を保持する単位を決める

長い計算では、すべての途中式を頭の中に保持する必要はない。むしろ、情報をその役割によって区別すると扱いやすい。
ここでは、計算途中の情報を次の三つに分けて考える。

  • 確定した情報:既に得られた値や係数。
  • 未解決の情報:これから処理する積分や式。
  • 保留した情報:後の操作で利用する可能性があるため、まだ評価していない部分。
    これは脳内に三つの領域を実際に作るという意味ではない。計算途中の情報を整理するための考え方である。
    例えば、
    $$ I=A+cJ $$
    という関係が得られた場合、元の積分のすべての式変形を記憶する必要はない。確定した部分と、未解決の積分、その係数を保持すればよい。
    さらに、
    $$ J=B+dK $$
    となれば、
    $$ I=(A+cB)+cdK $$
    と更新できる。この時点で、前の二つの関係を別々に保持する必要はない。

新しく確定した結果を、それ以前の結果へ組み込んでいくのである。
ただし、保留した項が後で相殺される可能性があるなら、無理にまとめず、その関係が見える形のまま保持することもある。
したがって、情報を常に一つへまとめることが正解なのではない。後の操作を考えたとき、最も扱いやすい状態で保持することが重要なのである。

保持する情報と捨てる情報を区別する

複雑な計算で失いやすい情報には、係数、符号、積分区間、パラメータの条件などがある。これらは、式の形が簡単になっても必要な場合がある。
一方、既に変換し終えた式の展開過程や、不要になった中間計算を保持し続ける必要はない。
ここで重要なのは、単純に記憶する情報量を減らすことではない。正確性に関わる情報を残し、不要な情報だけを減らすことである。
例えば、変数変換を終えた段階では、変換後の積分区間と係数が正しいことを確認する。その確認が済めば、元の変数に関する細かな途中式を保持し続ける必要はない。
ただし、定義域や収束条件など、後の計算にも必要な条件は残しておく。
このように、計算の節目ごとに必要な情報を確認し、その状態へ更新していく。

複雑な計算を複雑なまま扱わない

高難度の積分では、途中に複数の関数やパラメータが現れることがある。その場合でも、すべての関数を完全な式のまま保持する必要はない。
例えば、ある積分族を、
$$ F(a,b) $$
として扱えるなら、その具体的な被積分関数を毎回思い浮かべるより、パラメータと必要な関係だけを保持する方が簡単な場合がある。
また、複数の積分が同じ構造へ帰着するなら、個別に計算する前に、それらをまとめて扱うことも考えられる。
重要なのは、複雑な情報を大量に記憶する能力を鍛えることではなく、複雑な情報を少数の関係へ整理する能力を鍛えることである。
構造を塊として認識すること、途中の計算を保留すること、確定した情報を更新することは、すべてこの目的につながっている。

1.5 複数の思考の保持と切替え

積分を見たとき、一つの構造だけでなく、複数の構造が同時に浮かぶことがある。また、ある操作を進めている途中で、別の変形が利用できることに気づく場合もある。
しかし、複数の構造を認識することと、複数の計算を同時に実行することは異なる。必ずしもすべての操作を並行して進める必要はない。
例えば、一つの有理式について、因数分解によって約分できる部分と、残る微分形の両方を認識できたとする。
この場合、まず約分できる部分を処理し、微分形についてはその構造が存在することだけを保持しておけばよい。
逆に、後の操作で相殺される可能性がある項を認識したなら、その部分は計算せずに保留しておいてもよい。
つまり、現在行う操作と、後で必要になる操作を区別するのである。
また、別の方法へ切り替える場合には、それまでの計算をすべて捨てる必要はない。最後に確定した関係を保持しておけば、新しい方法が有効でなかった場合でも、そこから別の処理を考えられる。
ここで重要なのは、複数の思考を無理に同時進行させることではなく、必要な情報を残しながら、適切な順序で処理することである。
習熟すれば、構造の認識、処理の優先順位、保留と再開が、一つながりの思考として行われることもある。
しかし、初めからそれを目指して無理に複数の操作を重ねる必要はない。まずは、一つの操作を正確に実行しながら、次に必要となる情報だけを保持することから始めればよい。
本章で扱ったのは、特定の積分技法ではなく、それらを頭の中で実行するための思考方法である。
構造を認識し、必要に応じて文字で置き、全体と部分を行き来しながら係数を調整する。結果を予測して不要な計算を避け、後で相殺される可能性がある部分は保留する。そして、計算の進行に合わせて必要な情報だけを更新する。
初めはそれぞれを意識的に実行してもよい。反復によって各操作が自動化されれば、次第に複数の処理を一つのまとまりとして扱えるようになる。
暗算の本質は、複雑な計算を無理に頭の中へ詰め込むことではなく、そもそも複雑にしないこと、そして必要な処理だけを正確に実行することにある。
次章では、これらの脳内処理を実際の積分に結びつける。

第2章 積分の暗算技術

第1章では、構造認識、脳内計算、情報管理の基本を扱った。
本章では、これらを実際の積分に適用する。ただし、原始関数の探し方や解法の選び方は既知とする。ここで考えるのは、解法が分かった後、その計算を頭の中でどのように実行するかである。
計算用紙では、途中式を書き残し、必要に応じて見直せる。暗算では、それに代わる処理が必要になる。しかし、すべての式を記憶する必要はない。
例えば、多項式なら係数を、三角関数なら角度と符号を、合成関数なら内部のまとまりを保持する。定積分では、計算途中の式より端点の値だけを残せばよい場合もある。
重要なのは、それぞれの関数で何を一つの単位として扱えば、計算を正確かつ簡潔に実行できるかを知ることである。

2.1 単一構造の暗算

ここでは、一つの主要な計算構造を持つ積分について、関数の種類に応じた脳内操作を考える。

多項式――係数を一つずつ確定させる

次の積分を考える。
$$ I=\int e^x(x^5+5x^4+3x^3+9x^2+7x+11)\,dx $$
瞬間部分積分の方法は既知とする。
原始関数に現れる多項式を高次から確定させる際、各微分式を完全に計算する必要はない。
最高次の係数を一とすれば、次に四次の項を考える。最高次の項を微分すると係数五の四次項が生じるため、被積分関数の四次の項はそこで再現される。したがって原始関数側の四次の係数は零となる。
続いて三次の係数は三、二次の係数は零、一次の係数は七、定数項は四となる。
つまり、被積分関数の多項式の係数列を、
$$ (1,5,3,9,7,11) $$
と捉えれば、頭の中で次のように更新できる。
$$ (1,5,3,9,7,11) \longmapsto (1,0,3,0,7,4) $$
したがって、
$$ I=e^x(x^5+3x^3+7x+4)+C $$
となる。
ここで重要なのは、確定した一つ上の次数の係数だけを使い、次の係数を確定させることである。
各微分式全体を記憶しておく必要はない。高次から低次へ順に進めば、その時点で扱う情報を少数の係数に限定できる。
ただし、交代和の中で相殺が明らかな場合には、係数を一つずつ求める必要すらない。
最初は順番に処理し、習熟するにつれて相殺される部分をまとめて認識する。さらに、正負の項を別々に集計した方が簡単な場合には、その方法へ切り替える。
必要な係数を、必要な回数だけ計算することが目的である。

指数関数と三角関数――二つの係数を一組として扱う

次の積分を考える。
$$ I=\int e^{2x}(7\cos x+4\sin x)\,dx $$
原始関数の形が既に分かっているものとする。
この場合、正弦と余弦の係数を別々の計算として扱うより、二つの係数を一組として保持した方がよい。
原始関数側の係数を、
$$ (a,b) $$
とすると、微分後の係数は、
$$ (2a+b,\ 2b-a) $$
となる。
ここで行うのは、二つの係数の対応を確認する操作である。
$$ 2a+b=7 $$
$$ 2b-a=4 $$
これより、
$$ (a,b)=(2,3) $$
と確定できる。
したがって、
$$ I=e^{2x}(2\cos x+3\sin x)+C $$
となる。
暗算では、正弦と余弦をそれぞれ長い文字式として保持する必要はない。必要なのは二つの係数と、微分によってそれらがどう対応するかという関係だけである。
特に注意したいのは符号である。正弦と余弦は微分によって入れ替わるが、その際に負号も現れる。
そのため、係数を一つずつ独立に計算するより、符号を含めた二つの係数の組として更新する方が、処理を安定させやすい。
この操作に習熟すれば、指数関数の指数や三角関数の角度に係数が付いていても、同じように二つの係数をまとめて処理できる。

三角関数――角度を最後まで計算しない

定積分では、角度の値を大きなまま保持しておく必要はない。
例えば、
$$ I=\int_0^{\frac{13\pi}{2}} (2\cos3x-5\sin2x)\,dx $$
を考える。
原始関数が分かっていれば、必要なのは端点での三角関数の値だけである。
上端に現れる角度は、
$$ \frac{39\pi}{2},\qquad 13\pi $$
となるが、これらをそのまま扱う必要はない。
周期を考慮すれば、
$$ \sin\frac{39\pi}{2}=-1 $$
$$ \cos13\pi=-1 $$
と確定する。
したがって、
$$ I=-\frac{2}{3}-5=-\frac{17}{3} $$
を得る。
ここでは、大きな角度を逐一計算する代わりに、周期を除いた後の位置だけを保持している。
特に、角度が整数倍や半整数倍の円周率で表される場合には、正負と零の判定を素早く行えるようにするとよい。
実際の暗算では、角度全体を頭の中で回転させて考える必要もない。係数の偶奇や、周期に対する剰余から値を確定できれば十分である。

対数関数と根号――符号を失わない

対数関数や根号を含む式では、形式的な計算だけでなく、値の符号を保持する必要がある。
例えば、
$$ I=\int_0^1\frac{2x-5}{x^2-5x-1}\,dx $$
を考える。
分母は積分区間全体で負である。したがって、対数の端点計算では、分母の値そのものではなく、その絶対値を用いる。
端点で必要な値は、
$$ |-1|=1,\qquad |-5|=5 $$
なので、
$$ I=\ln5 $$
である。
ここで暗算上重要なのは、対数の内部に現れる式の符号を、計算途中で勝手に捨てないことである。一方、符号が確定していれば、以後は絶対値だけを扱えばよい。
根号についても同様である。
$$ I=\int_{-2}^{2}\frac{x+1}{\sqrt{x^2+2x+5}}\,dx $$
では、端点で必要な値は、
$$ x^2+2x+5 $$
の値だけである。
下端では五、上端では十三となるため、
$$ I=\sqrt{13}-\sqrt5 $$
を得る。
このとき、根号の値を小数へ変換する必要はない。平方根を一つの数として保持し、最後の差だけを確定させる。
分数冪についても同じ考え方が使える。ただし、偶数次の根号や負の底を含む冪では、定義域と実数値の条件を失ってはならない。

逆三角関数――主値と符号を区別する

逆三角関数では、通常の三角関数と同じように角度を扱うと、主値の範囲を見落とす場合がある。
例えば、次の広義積分を考える。
$$ I=\int_0^\pi \frac{\cos x}{\sqrt{1-\sin^2x}}\,dx $$
積分区間の内部には、分母が零になる点が存在する。しかし、分母の根号について、
$$ \sqrt{1-\sin^2x}=|\cos x| $$
であるため、被積分関数はその点を除いて、
$$ \frac{\cos x}{|\cos x|} $$
となる。
したがって、前半と後半で符号が反転する。
$$ I=\frac{\pi}{2}-\frac{\pi}{2}=0 $$
を得る。
ここでの暗算上の注意点は、式を単純化したときに絶対値を落とさないことである。逆正弦関数を原始関数として扱う場合にも、主値の範囲を考慮する必要がある。
角度や符号に関する条件を、一つの付随情報として保持することが重要である。

双曲線関数――指数関数の値を共有する

双曲線関数では、指数関数との関係を利用する場面がある。
例えば、
$$ I=\int_0^{\ln3}(\cosh x+2\sinh x)\,dx $$
を考える。
上端では、
$$ e^x=3,\qquad e^{-x}=\frac{1}{3} $$
である。
この二つの値を確定させれば、
$$ \sinh(\ln3)=\frac{4}{3} $$
$$ \cosh(\ln3)=\frac{5}{3} $$
を同時に求められる。
したがって、
$$ I=\frac{4}{3}+2\left(\frac{5}{3}-1\right) =\frac{8}{3} $$
となる。
ここでは、双曲線正弦と双曲線余弦を、それぞれ独立に計算する必要はない。指数関数の値とその逆数を一組として保持し、和と差を使い分ければよい。
逆双曲線関数でも、必要に応じて対数表示を利用できる。
例えば、
$$ \int_0^1\frac{1}{\sqrt{1+x^2}}\,dx =\ln(1+\sqrt2) $$
である。
このような既知形を利用する場合、逆双曲線関数の値と対数表示を両方保持する必要はない。必要な最終表現だけを選んで扱えばよい。

広義積分――未定形を分解せずに扱う

広義積分では、端点に現れる発散する因子を個別に評価してはいけない場合がある。
例えば、
$$ I=\int_0^1\frac{\ln x}{\sqrt x}\,dx $$
を考える。
既知の原始関数を用いると、
$$ I=\left[2\sqrt x(\ln x-2)\right]_0^1 $$
となる。ここで下端は極限として評価する。
下端では対数関数が負の無限大へ向かう一方、平方根は零へ向かう。しかし、これらを別々の値として扱う必要はない。
積全体について、
$$ \lim_{x\to0+}\sqrt x\ln x=0 $$
が成り立つため、下端からの寄与は零となる。
したがって、
$$ I=-4 $$
である。
この例では、端点で現れる二つの因子を最後まで一つの積として保持することが重要だった。一方の因子だけを先に評価してしまうと、存在しない値を頭の中で操作することになる。
未定形に関係する因子は、必要な極限が確定するまで分離しない。
この習慣は、対数関数と冪関数の積だけでなく、三角関数や指数関数を含む極限にも役立つ。

2.2 複数構造の暗算

複数の関数が組み合わさっている場合には、計算を個別に完了させてから組み合わせるより、関連する部分を一つのまとまりとして保持する方が簡潔になることがある。
ここでは、複数の関数や計算条件を連結する際の、具体的な脳内操作を考える。

底と指数が変化する冪関数

次の積分を考える。
$$ I=\int_0^1 \frac{(1+x)^x\left(\ln(1+x)+\frac{x}{1+x}\right)} {1+(1+x)^{2x}}\,dx $$
既知の解法によって原始関数が分かっているものとする。
暗算では、底と指数を別々の長い式として扱う必要はない。冪全体を、
$$ A=(1+x)^x $$
という一つの対象として扱えばよい。
このとき微分に必要な情報は、
$$ \ln(1+x)+\frac{x}{1+x} $$
という一つのまとまりである。この部分をさらに分解して計算する必要はない。
原始関数に対応するのは、
$$ \arctan A $$
である。
定積分の端点では、冪全体の値だけを求めればよい。
$$ A(0)=1,\qquad A(1)=2 $$
したがって、
$$ I=\arctan2-\frac{\pi}{4} $$
となる。
ここでは、底、指数、対数、分母をそれぞれ個別に処理するのではなく、冪全体を一つの対象として扱っている。
特に、途中で必要なのは冪の値そのものではなく、その構造であり、具体的な値を計算するのは端点に到達したときだけでよい。

多重合成関数――端点の値だけを順に更新する

次の積分を考える。
$$ I=\int_0^{\frac{\pi}{2}} \frac{e^{\sin x}\cos x}{\sqrt{1+e^{2\sin x}}}\,dx $$
原始関数の形が分かっている場合、暗算で重要なのは、その内部にある関数をどの順番で評価するかである。
まず、最も内側の三角関数は、
$$ 0\longmapsto1 $$
と変化する。続いて、指数関数は、
$$ 1\longmapsto e $$
と変化する。
ここまでで、端点に必要な情報は二つの値だけになっている。あとは、外側に残る平方根と対数関数を評価すればよい。
$$ I=\ln\frac{e+\sqrt{1+e^2}}{1+\sqrt2} $$
を得る。
ここで、途中の三角関数や指数関数の式を、最後まで完全な形で保持しておく必要はない。内側の関数の端点での値を確定させたら、それを次の関数へ渡せばよい。
ただし、原始関数全体に係数や符号が付く場合には、それらを失ってはならない。
合成関数の階層ごとに値を更新し、必要な係数と条件だけを最後まで保持することが重要となる。

絶対値・最大最小――区間ごとの結果だけを残す

絶対値や最大最小を含む積分では、場合分けによって複数の区間が現れることがある。
例えば、
$$ I=\int_0^\pi\max\{\sin x,\cos x\}\,dx $$
を考える。
二つの関数が入れ替わる点は既に分かっているものとする。
暗算では、各区間の積分をそれぞれ長い計算として保持する必要はない。
前半の寄与は、
$$ \sin\frac{\pi}{4}=\frac{\sqrt2}{2} $$
であり、後半の寄与は、
$$ 1+\cos\frac{\pi}{4}=1+\frac{\sqrt2}{2} $$
となる。
したがって、
$$ I=1+\sqrt2 $$
である。
この処理では、区間の切替点と、各区間から生じる最終的な寄与だけを保持している。それぞれの原始関数を区間ごとに書き出し続ける必要はない。
また、同じ端点の値が複数回現れる場合には、最初から係数をまとめられる。例えば、ある関数の値が切替点で二度加算されるなら、その値を二回独立に計算する必要はない。
区間ごとの計算を最後まで分離せず、共通する端点の値をまとめて扱うことで、場合分けが多い積分でも情報量を減らせる。

床関数・天井関数――区間番号を利用する

次の積分を考える。
$$ I=\int_0^4x\lfloor x\rfloor\,dx $$
区間分割は既知とする。
ここで、各区間を別々の積分問題として扱う必要はない。区間番号を使えば、各部分から生じる値は、
$$ \frac{k(2k+1)}{2} $$
で表される。
したがって、
$$ I=\frac{1}{2}(0+3+10+21)=17 $$
となる。
ここでは、四つの区間を一つずつ独立に処理する代わりに、同じ計算規則へまとめている。
また、天井関数を含む場合には、床関数との関係も利用できる。
例えば、
$$ J=\int_0^4x\lceil x\rceil\,dx $$
では、整数の点を除いて、
$$ \lceil x\rceil=\lfloor x\rfloor+1 $$
が成り立つ。
したがって、
$$ J=I+\int_0^4x\,dx=17+8=25 $$
となる。
重要なのは、各区間で新しい計算を始める必要がないことである。共通する規則を一度確定させ、その規則へ区間番号を順番に代入すればよい。
床関数や天井関数に限らず、周期的に形が変化する区分関数でも、同様の処理が役立つ。

対称性――相補的な部分を一組で保持する

次の積分を考える。
$$ I=\int_{-1}^{1}\frac{x^2+1}{1+e^x}\,dx $$
区間の対称性を利用する解法は既知とする。
このとき、指数関数を含む二つの項を個別に評価する必要はない。対応する二つの分母について、
$$ \frac{1}{1+e^x}+\frac{1}{1+e^{-x}}=1 $$
という関係を一つのまとまりとして扱う。
多項式の部分は変化しないため、元の積分と変換後の積分を合わせれば、
$$ I=\frac{1}{2}\int_{-1}^{1}(x^2+1)\,dx=\frac{4}{3} $$
となる。
ここで、指数関数の値は一度も計算していない。必要だったのは、相補的な二つの部分が加わることで一になるという関係だけである。
最終的に相殺・統合される部分を個別の数値に変換しないことが、暗算を簡潔にする。

有限和・有限積・級数・極限――項ではなく規則を保持する

和や積の記号が現れる場合、その項をすべて頭の中に並べる必要はない。
例えば、
$$ I_n=\int_0^1\sum_{k=0}^{n}(x^k-x^{k+1})\,dx $$
を考える。
和の構造が分かっていれば、保持すべきなのは最初と最後に残る項だけである。
$$ \sum_{k=0}^{n}(x^k-x^{k+1})=1-x^{n+1} $$
したがって、
$$ I_n=1-\frac{1}{n+2} $$
となり、
$$ \lim_{n\to\infty}I_n=1 $$
を得る。
同様に、有限積についても、積全体を展開する必要はない。
例えば、
$$ J_n=\int_0^1\prod_{k=1}^{n}\frac{x+k}{x+k+1}\,dx $$
では、積の内部に現れる共通因子が消えるため、保持すべきなのは両端の因子だけとなる。
$$ \prod_{k=1}^{n}\frac{x+k}{x+k+1} =\frac{x+1}{x+n+1} $$
したがって、
$$ J_n=1-n\ln\frac{n+2}{n+1} $$
となる。
無限級数についても、同様に個々の項ではなく、級数全体の規則を利用する。
例えば、
$$ \int_0^{\frac{1}{2}}\sum_{k=0}^{\infty}x^k\,dx =\ln2 $$
である。
この例では、等比級数の和を一つの関数として扱えばよい。区間上で一様収束するため、必要なら項別積分によっても正当化できる。
重要なのは、和・積・極限を含む式を、多数の項の集まりではなく、一つの規則として扱うことである。
もちろん、無限級数や極限では、単なる形式操作では済まない場合もある。収束条件や交換操作の正当性が必要なときは、それらを確認しなければならない。

再帰的な式――全体を展開せず端点を更新する

再帰的に定義された関数でも、必要な情報が限られていれば、すべての関数を明示的に求める必要はない。
例えば、
$$ u_0(x)=x $$
$$ u_{n+1}(x)=\frac{u_n(x)}{1+u_n(x)} $$
と定める。
次の積分を考える。
$$ I_n=\int_0^1\frac{u_n'(x)}{1+u_n(x)}\,dx $$
この場合、積分値を確定させるために必要なのは、関数全体の形ではなく、端点での値である。
下端では常に、
$$ u_n(0)=0 $$
となる。
上端では、
$$ 1,\ \frac{1}{2},\ \frac{1}{3},\ \ldots $$
と値が更新されるため、
$$ u_n(1)=\frac{1}{n+1} $$
である。
したがって、
$$ I_n=\ln\frac{n+2}{n+1} $$
となる。
ここでは、再帰的に定義された関数を毎回展開しているわけではない。積分値に必要な端点の情報だけを再帰的に更新することで、計算を完結させている。

2.3 高難度積分の完全暗算

ここまで扱った技術を複数組み合わせると、見た目には複雑な積分でも、頭の中で保持する情報を少なくできる場合がある。
この節では、解法の発見ではなく、既に確定した解法を最後まで暗算で実行する過程に注目する。
特に、計算の途中でどの情報を保持し、どの部分をまとめ、どの段階で具体的な値へ変換するかを明確にする。

複数の切替点を含む積分

次の定積分を考える。
$$ I=\int_{-\frac{\pi}{2}}^{\frac{\pi}{2}} \frac{\left(1+\lfloor3|\sin x|\rfloor\right)e^{\sin x}\cos x} {1+e^{2\sin x}}\,dx $$
既知の解法によって、三角関数の内部を新しい変数として扱うことが分かっているものとする。
暗算では、まず次の三つの情報を保持する。
第一に、変換後の区間が負の一から一までであること。
第二に、指数関数を含む部分が、その変数について偶関数となることである。
第三に、床関数によって重みが変化する位置である。
これらが確定すると、負の区間を別に最後まで計算する必要はなくなる。
床関数が切り替わる位置は、
$$ \frac{1}{3},\qquad\frac{2}{3} $$
ここで、積分に現れる既知形の原始関数を、
$$ F(t)=\arctan(e^t) $$
と表す。
必要なのは、次の四つの値だけである。
$$ F(0),\quad F\left(\frac{1}{3}\right),\quad F\left(\frac{2}{3}\right),\quad F(1) $$
各区間の重みは一、二、三となる。したがって、
$$ \begin{aligned} I=2\Biggl\{& F\left(\frac{1}{3}\right)-F(0)\\ &+2\left(F\left(\frac{2}{3}\right)-F\left(\frac{1}{3}\right)\right)\\ &+3\left(F(1)-F\left(\frac{2}{3}\right)\right) \Biggr\} \end{aligned} $$
となる。
しかし、暗算でこの式全体を保持する必要はない。内部の切替点における値の係数をまとめれば、
$$ I=2\left\{ 3F(1)-F\left(\frac{2}{3}\right) -F\left(\frac{1}{3}\right)-F(0) \right\} $$
となる。
ここで初めて、具体的な関数値へ戻す。
$$ \boxed{I=6\arctan e-2\arctan(e^{\frac{2}{3}}) -2\arctan(e^{\frac{1}{3}})-\frac{\pi}{2}} $$
ここでは、三角関数、指数関数、絶対値、床関数、逆三角関数を、すべて個別に計算する必要はなかった。
対称性によって区間を半分に減らし、切替点に現れる関数値を最終的な係数とともに保持することが重要である。

絶対値による符号変化を一つの式で処理する

次の積分を考える。
$$ I=\int_0^\pi |\sin x-\cos x|e^{\sin x+\cos x}\,dx $$
原始関数との対応は分かっているものとする。
ここでは、絶対値によって符号が変化することと、指数関数の内部が三角関数の和になっていることが、暗算時の管理対象になる。
まず、符号が切り替わる点は、
$$ x=\frac{\pi}{4} $$
である。
また、関係する指数関数を、
$$ F(x)=e^{\sin x+\cos x} $$
とすれば、その微分は、
$$ F'(x)=(\cos x-\sin x)F(x) $$
となる。したがって、前半と後半では、この微分形に対する符号が反転する。
暗算で必要なのは、次の三つの値である。
$$ F(0)=e $$
$$ F\left(\frac{\pi}{4}\right)=e^{\sqrt2} $$
$$ F(\pi)=e^{-1} $$
各区間の寄与を最後まで独立に計算する代わりに、切替点の値が二度現れることを利用する。
$$ I=2F\left(\frac{\pi}{4}\right)-F(0)-F(\pi) $$
したがって、
$$ \boxed{I=2e^{\sqrt2}-e-e^{-1}} $$
である。
この例では、絶対値の処理と指数関数の微分を個別に完了させる必要はない。符号の切替点を確定させた時点で、その点の関数値がどのような係数で現れるかを把握できる。
また、この考え方は、切替点が複数存在する場合にも応用できる。ただし、その場合には各区間での符号と、内部の端点に現れる係数を正確に管理する必要がある。
途中の端点の値を、別々の計算結果としてではなく、最終的な係数とともに保持することが重要となる。

複雑な根号の最終整理

次の積分を考える。
$$ I=\int_0^1\frac{\sqrt{x(1-x)}}{x^2+x+1}\,dx $$
解法の途中で、次の形が得られたとする。
$$ I=\pi\left\{ \frac{3^{\frac{1}{4}}\left(1+\frac{1}{\sqrt3}\right)} {\sqrt{2+\sqrt3}}-1 \right\} $$
ここで、複雑な根号を個別に簡単化する必要はない。
分母の根号は、
$$ \sqrt{2+\sqrt3}=\frac{\sqrt3+1}{\sqrt2} $$
と認識できる。
一方、分子にも同じ因子がある。
$$ 1+\frac{1}{\sqrt3}=\frac{\sqrt3+1}{\sqrt3} $$
したがって、共通因子を相殺するだけで、
$$ \frac{3^{\frac{1}{4}}\left(1+\frac{1}{\sqrt3}\right)} {\sqrt{2+\sqrt3}} =\frac{\sqrt2}{3^{\frac{1}{4}}} $$
となる。
よって、
$$ \boxed{I=\pi\left(\sqrt{\frac{2}{\sqrt3}}-1\right)} $$
を得る。
ここでの暗算技術は、複雑な根号を個別に展開することではない。分子と分母の共通因子を先に認識し、相殺後の構造だけを保持することである。
なお、この例は解法全体の紹介ではなく、既知の解法で得られた結果を頭の中で最後まで整理する場面を切り出したものである。


第1章では数式の認識・計算・情報管理の原理を、第2章ではそれらをさまざまな関数と計算状況に適用する方法を扱った。
多項式の係数、三角関数の角度と符号、合成関数の内部値、区分関数の切替点、有限和・有限積の規則、広義積分の極限。これらは異なる対象に見えるが、暗算における要点は共通している。
必要な計算を無理に省くのではなく、不要な計算を最初から発生させない。必要な情報だけを正確に保持し、確定した結果を順次更新する。
理解した操作を初見の問題でも再現できるようにするため、別記事『積分の暗算術 ― 実践編』では段階別の演習を行う。

投稿日:11日前
数学の力で現場を変える アルゴリズムエンジニア募集 - Mathlog served by OptHub

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

H・I
H・I
20
3782

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中