はじめMath! Javaでコンピュータ数学

第66回 微分・積分の数学 微分・積分とは

この記事を読むのに必要な時間:およそ 2 分

微分と積分の数値計算

微分や積分をコンピュータ・プログラムで計算することを,数値微分※9⁠,数値積分※10といいます。これらの数値計算に共通するありがたい性質は,あの大変な数に及ぶ微分・積分の変換公式を,基本的に使う必要がない,ということです。微分する前,あるいは積分する前の式があれば,あるいは連続したデータがあれば,微分値,積分値を近似的に求めることができるのです。これが微分と積分を数値計算することのメリットです。

※9)
numerical differentiation
※10)
numerical integration

数値微分

数値微分は,微分の定義に従い,次の式で計算を実行します。

コンピュータ・プログラムでこの計算を行う場合, ⊿x の大きさは0に出来ないので,出来るだけ小さい値を用います※11⁠。こうして,微分の公式を用いて導関数を求めることなく,微分係数の近似値を得ることが出来るのです。

※11)
実用的には,桁落ち誤差を可能な限り避けるため,計算精度の半分から三分の一程度に設定します。

数値積分

数値積分は,積分の定義に素朴に従い,関数のグラフと座標軸の間で囲まれた部分の面積を求める方法です。関数 f(x) とx軸で囲まれた閉区間[a,b]を,N等分して面積の合計値を計算します。

問題 微積分の基本的な問題を確認しましょう。

微分,積分の最も基本的で身近な活用シーンが「移動距離,速度,加速度」の3つでしょう。微積分を意識して使ってはいないのですが,これらの値の間には,それぞれ微積分という演算があります。微積分とコンピュータ数学の学習に入る前に,ウォーミングアップとして微積の定義・公式の復習をしておきましょう。

  • (a)微分を使って,速度,加速度の定義式を導きましょう。
  • (b)重力加速度の値から積分して,自由落下距離の式を導きましょう。

解説

問題 微積分の基本的な問題を確認しましょう。

(a)微分を使って,速度,加速度の定義式を導きましょう。

等速運動であれば,速度の定義式は次の通りです。

sは移動距離,tは移動時間です。

運動一般に適用するために,等速運動でない場合を考えなければなりません。その際,瞬間ごとの速度を定義すればよいのです。

以上で微分を用いた一般的な速度の定義式が得られました。

加速度は,速度の変化ですから,等加速度運動であれば次の通りです。

v0 は最初の速度, v1 は時間 t が経過した後の速度です。 t は速度変化に要した時間です。これを一般的にするために,加速度が一定で無い場合を考えなければなりません。先ほど同様,瞬間ごとの速度の変化を定義すればよいのです。

以上で微分を用いた一般的な加速度の定義式が得られました。

こうして得られた式66.14,66.17を見ると,速度や加速度を求めるために,必ずしも方程式が必要ないことがわかります。ある時点前後のデータがあれば,各値の近似値を計算できるのです。数値微分はまさにこの定義を上手に利用しています。

(b)重力加速度の値から積分して,自由落下距離の式を導きましょう。

計算の結果が具体的な物理現象ですので感覚的に納得しやすい良い課題です。また,物理で力学を勉強し始める際の定番的問題です。これが出来れば公式をおぼえる必要がありません。

重力加速度は定数 g =9.8[ m/s2 ]です。重力加速度から一定時間後の自由落下距離 s を求めるためには,2回積分を施します。加速度を時間で積分すると速度が導かれ,速度を時間で積分すると距離になるからです。

式66.24の積分定数は例えば観測者の位置 s0 として残しても良いのですが,物理的に残す意味がないので取ってしまいました。

今回はここまで

微積分とは何か,そしてコンピュータで微積分を利用する方法,数値微分と数値積分を簡単に紹介しました。問題では,基本的な定義と公式を確認しました。次回は微分をうまく数値計算に活用した例としてニュートン・ラフソン法を紹介します。解の公式を用いずに,コンピュータの長所を生かして方程式の近似解を得ることが出来る便利な方法です。

どうぞ,お楽しみに。

今回のまとめ

  • 微分・積分の定義を確認しました。
  • 数値微分・数値積分とは何かを紹介しました。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。