非線形連立方程式の解をNewton法を使って探す。 もちろん手計算は面倒なので、maximaに頼んでやってもらう。 そのスクリプトを書くときに使うものについてのメモを残しておく。 大半がwebをさまようと得られる情報なのであまり大したことはない。 print関数 x,yにそれぞれ、3,4が代入されていた時に、次のように書くと print("sonomama",x",sonomimi,",y); で sonomama 3 ,sonomimi, 4 と表示される。 define関数 define(f(x),x^2); でf(x)=x^2と定義される。x^2はdiff(g(x),x)のようなものでも可。 block関数 f(x):=block(pani(x),poni(x)); でf(x)を実行すると、pani(x)とponi(x)が順番に実行。 kill関数 kill(x); で変数xに代入されている値を消去。また変数の性質も消去。 float関数 float(17/3)で17/3を小数に直してくれる。16桁で打ちきられるようだ。 for文 for i:0 thru 100 do (pani(i),poni(i)); でi=0から100まで順番にpani(i),poni(i)を実行。 if文 if x<=3 and y<4 then pani(x) else poni(y) もしxが3以下かつyが4未満ならば、pani(x)を実行。 それ以外ならばponi(x)を実行。 andをorに変えれば「かつ」を「もしくは」に変更可。 それ以外にもいろいろあると思うけど、当面必要なのはこれぐらい。 それにしてもだれかニュートン法のスクリプトを書いてくれればいいのに。 パッケージになっているのは1変数の場合の時だけだ。 (追記:もうすでにありました。mnewtonという名前だそうです。深く調べもせずにすみません...。)