Q and A, 2022-11-25

unstable.rr は何をやってる?

$y'=-2y, y(0)=1$ を2通りの方法で解く.
厳密解は $y=\exp(-t)$. y 軸は下向き.
un() は中心差分法, un2() は(Eulerの)差分法. un() は途中から嘘の解. 正負の値が交互に出るので黒くぬりつぶされてる. 詳しくは Risa/Asir ドリル9章.

oscillator.rr は何をやってる?

$y''+y=\sin(At)$, $A=0.5$ を初期条件 $y(0)=1, y'(0)=0.001/0.07$ で解いてる. これは単振動の微分方程式に周期的な外力 $\sin(At)$ を加えたもの.
$y''(t_n)=\frac{y(t_n+h)-2y(t_n)+y(t_{n-1})}{h^2}$ と近似. Risa/Asir ドリル9章参照.

oscillator-sys.rr は何をやってる?

$p_1=y, p_2=y'$ と変数 $(p_1,p_2)$ を導入して, $y''+y=\sin(t)$ を連立系 $p_1'=p_2, p_2'=-p_1+\sin(t)$ と変形. これを解いてる.

lorentz.rr, lorentz2.rr は何をやってる?

ローレンツ方程式については Wikipedia に概説があり. カオス研究の端緒となった有名な方程式. 初期条件を変えて解を眺めてると多彩な変化があり見飽きない. lorentz2.rr の putPoint(), erasePoint() は点を打つ, 描いた点を消す, ための関数. 変数 SIZE の値を変更すると点の大きさが変わる.

lotka-voltera.rr は何をやってる?

Lotka-Voltera 方程式については Wikipedia に概説があり. 講義でも詳しく解説.

newton.rr

diff 関数を用いて(マニュアル参照) 多項式 F の解を Newton法で求める関数. base_replace(F,[[x,P]]) は F の中の x を P で置き換える (asir-contrib のマニュアル参照).

bisection2.rr

2分法とNewton法の比較. Risa/Asir ドリル6章参照.

testmatrix.rr は何をやってる?

行列とベクトルの計算のデモ. printf() 関数は print() 関数より便利.
\n が改行, %a が対応する変数の値に置き換わる. (\ が 円記号になってたらバックスラッシュに読み替えて下さい). なお Risa/Asir の printf は C言語の printf 関数の真似.