微分方程式を数値積分して解くための手法にルンゲ・クッタ法(古典ルンゲ・クッタ)というのがあるんですが、lispで解けるやつないかな、と思っていたら、色々な言語でのコーディング例がのってるサイトがありました。Runge-Kutta methodです。(Common lispのソースはリンク先にありました。ループを使っていますが、再帰的な方法だったらどうするのかなぁ?)
そもそもルンゲ・クッタという手法はどういうものかというと、微分方程式 $ dy/dt = y^{\prime} = f(t,y), y(t_0) = y_0 $ という方程式に対し、 $$ \begin{align} y_{n+1} & = y_n + \frac{h}{6}\left( k_1 + 2k_2 + 2k_3 + k_4\right) \\ t_{n+1} & = t_n + h \end{align} $$ で、ここで、 $$ \begin{align} k_1 & = f(t_n, y_n), \\ k_2 & = f \left( t_n + \frac{h}{2}, y_n + \frac{h}{2} k_1 \right), \\ k_3 & = f\left( t_n + \frac{h}{2}, y_n + \frac{h}{2} k_2 \right), \\ k_4 & = f \left( t_n + h, y_n + h k_3\right) \end{align} $$
まぁ、微分方程式の形で導関数イコールの形になおせれば上記方法が使えるわけですね。初期値からの時間発展として時事刻々の状態を求めることができるわけです。
ニュートンの運動方程式は $$ F = m \frac{d^2 x}{dt^2} $$ で、これは $ v = \frac{dx}{dt} $ を使って以下の方程式に分解できます。
$$ \begin{align} \frac{dx}{dt} & = v, \\ \frac{dv}{dt} & = \frac{1}{m} F \end{align} $$
こうすれば関数 $F$ の形がわかっていればルンゲ・クッタで使える方程式の形になりました。 $x$ と $v$ を別々に計算しないといけないので、2段階で計算をしないといけませんけどね。
例えば、 $$ F = \frac{GMm}{x^2} $$ という重力の式についても解けるわけです。 $x$ だけだと垂直に落下もしくは投げ上げた場合にしか対応してないので、3次元的な動きを計算するためにはベクトルを用いて $$ \mathbf{F} = \frac{GMm}{r^3}\mathbf{r} $$ とする必要がありまして、その分、連立させなければいけない方程式の数が増えますけど、コンピューターによる数値計算のときはプログラムがしっかりしていれば坦々と計算を続けてくれますから。ちなみにボールド体がベクトルです。
6日に予定していたのですが、メンバーに風邪を引いたり用事が入った人がでてきたので、別の日に移動することになりました。
まぁ、6日はぎりぎりで、私はCOMITIAのあとに参加することになっていたので、まぁ、助かるといえば助かると。
日本茶。
お茶の宮鍋で新茶をもらてきました。
狭山茶の方はまだできていないのですが、知覧茶とかの新茶が先に出てくるんですよね。
幸右衛門カフェで遅くなった昼も食べてきました。
今日は憲法記念日だったということで。
日本の憲法は修正なしで続いているものでは世界で一番長いものだそうです。歴代では、かつてのタイで80年というのがあったそうですが、日本の70年はそれに比べても2位になるんだそうで。
そういう時期に改憲の話が持ち上がってきていて。
でも、特に若い人の中では憲法といってもピンとこない人の方が多いというNHKのニュースでやっていた分析でしたね。
日本国憲法は、世界的に見ても短く、細かい内容については別途制定する法律にまかせる形態をとっているので小回りが効く作りになっているようです。そして、権利の保証項目が多いことが当時としては画期的で、あらたに権利をつけたす必要がなかったのも長く続いている理由のひとつだとか。
その一方で、成立そのものがかなり押しつけられたものであり、しかも70年も経過していて時代にそぐわないところもでているという分析もあって。
いずれにしろ、改憲のためには色々と慎重になる必要はあると思います。
それにしても、野党が憲法「改正」反対と言ってるのを聞いて不思議に思うのですが、「改正」というのは良くすることなんではないですか? 「正す」ことなんですよね? 「改憲反対」とか「憲法改悪反対」ならわかるんですが。。良くすることに反対する、というのに違和感が。それとも「憲法改正」というのは別の意味もあるんでしょうか。