- 締切済み
摂動法について
物理のみならず摂動法はいろんなところに出てくると思います。 私の解釈ですが、ある発展方程式があり、とりあえず安定といわれている解があるとします。その解に何らかの変動(摂動)を与え、それが増幅していく様子を調べたり、方程式や安定解のパラメータを使って増幅率を調べたりするという方法だと思います。増幅せず摂動がゼロに収束していく場合はそのパラメータは安定領域に属するというようなことになると思います。(私の理解が違っていたらご指摘下さい。) さて、ここからが質問ですが、そのような計算を行う場合、紙と鉛筆でかなり複雑な四則計算を展開していくと思いますが、この過程は非常にたいくつでつまらないように思います。また、うっかり計算ミスをやると大失敗ですし、再計算をする気が無くなります。これこそ、数式処理ソフトの得意分野かと思います。例えば、摂動をexp(-λt)などとおいて、微分方程式に代入して代数方程式化して増幅率λをパラメータ(α、β)の空間における等高線を描いてみたりするわけですが、そのための具体的な数式処理ソフトの利用法が分からないのです。実例を教えてくれるようなサイトとか文献とかないでしょうか。Maxima(フリー)が使える環境ではあります。Mathematica(ver.3),Mapleは10年以上前のバージョンのものはなくはないという感じです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- foobar
- ベストアンサー率44% (1423/3185)
おそらく手順としては、 1. ある微分方程式があり、平衡点がある。 2. 平衡点の周りに摂動(微少変化)を想定し、方程式を展開。 3. もとの点が平衡であることを使って、摂動だけの方程式にする。 4. 摂動の2次以上の項を無視して線形方程式にする。 5. 得られた線型方程式の固有値を計算する。 になるかとおもいます。 1-3は数式処理ソフトで処理できそうですし、5の固有値解析も得意かとおもいます。 問題は、4の二次以上の項を削除する、というのを機械的に処理(記述)できるかどうかにかかってくるのでは無いでしょうか。 これを機械的に処理(記述)できれば、全プロセスの処理を記述できそうにおもいます。
- kentaurino
- ベストアンサー率17% (4/23)
くわしくないですが、初段で言っているのは断熱的変化のようなことではないでしょうか? 摂動法と聞いて浮かぶイメージとちょっと違うような気がしました。 摂動の効果はゼロか発散、ではなく有限でもあり得ます。 摂動後の解は非摂動の一般解の線形結合で表わしていたような気がします。 計算の方も実際にやってないのでうまく言えませんが、 摂動法というより数値積分の方がイメージに近いのでは?と思います。 ただ、数式を展開する手間を省くのに数式処理ソフトを使うところまでは構いませんが、数値積分でソフトウェアが自動的に正しい答えを出してくれると期待するのは危険な気がします。 やっている計算が妥当なのか、チェックするのはそれはそれでたいくつでつまらないという感想にいたるかもしれませんが。 数式処理はMathematicaでもMapleでも教科書は売っているでしょう。 10年前のものだから機能が足りないということはさほどないと思います。Maximaは知りません。
お礼
回答有難うございました。 私は全く門外漢なのですが、お話を伺って、これは量子力学の発散問題からくりこみ理論とか経路積分とかそのようなところに出てくる摂動法(?)を想定されているような気がします。ファインマンの有名な仕事なのでしょうか。 私の質問はもっとずっとシンプルで流体運動の解に対する摂動というようなものです。基礎方程式に摂動を入れて代数方程式化するだけなのですが、とにかくめんどくさいのです。 Maple, Mathematicaの解説本は持っていますが、ぴったりの例がありません。本には連立一次方程式、1次方程式の近似解、マトリックス計算、簡単な微積分、作図などが取り扱われています。具体的な数値を計算する例が多いです。今回の問題は式の変形なので具体的な数値を計算するわけではないのですが。 Matlab, octave, Rなどの科学技術ソフト群は具体的な数値を計算するようですが、Mathematica, Maple, Maximaは数式処理ですね。いい例が載っていないかなと思っています。
お礼
回答有難うございます。まさにこの手法です。 y=y0+y1などして方程式に代入し、y0はもとの方程式の解であることを使って整理。y1=exp(-λt)...という感じでその式に代入してλの代数方程式(固有方程式?)を複素数の領域まで解を求める。というようなものだと思います。ここで問題となるのは、実際のソフトでこれをどのように実現するかということだと思います。 特に簡単化みたいなところが問題のように思います。ソフトは難しい展開のまま処理していくからですね。sin^2+cos^2=1というようなことです。また、1つのプロセスの結果を次のプロセスの入力条件とする、という処理がフィーリングと合致しないので紙と鉛筆で処理していくような自由度が得られないのです。