全てを学習することは時間的に不可能なので,ここでは概略のみを述べる.諸君は Mathematicaでプログラムが書けることを憶えておき,研究で必要になればそれを使うよ うにすれば良い.
書式 (* ここにコメントを書く *) |
書式
If[判定式, 判定式が正しい時の文1; 判定式が正しい時の文2, 判定式が誤り時の文1; 判定式が誤り時の文2 ]; |
f[x_]:=If[x<0, Sin[x],x]; Plot[f[x],{x,-10,10}]; Plot[f'[x],{x,-10,10}];この例で分かるように,普通の関数のように微分ができるのである.
Ifのほかに,分岐を行う構文にWhichやSwitchがある.ヘルプを見て,各 自が必要になったときに学習せよ.
書式
For[初期の式, 判別式,ループ後の式, 文1; 文2; 文3; ]; |
For[i=1, i<20, i++, Print[N[Pi,i]]; ];
For以外に,DoやWhileを使ったループ文も使える.また,Breakや Continue,ReturnなどC言語とほとんど同じ構文が使えるようになっている. 必要になったときに学習せよ.
書式
関数名[引数並び_]:=Module[{ローカル変数並び}, 文1; 文2, 文3; Return[返却値]; ]; |
つぎに,サブルーチンを使ったプログラム例を示す.ここで取り扱っている例は,
(* ========== Subroutine ========== *) func[x_]:=Module[{xlow,xhigh}, xlow=x-1; xhigh=x+1; Print["xlow = ",xlow]; result=NDSolve[{f''[t]+f'[t]+f[t]==Sin[t], f'[0]==0,f[0]==0},f,{t,xlow,xhigh} ]; ans[t_]=f[t]/.result; Plot[ans[t],{t,xlow,xhigh}]; Return[ans[x]]; ]; (* ========== Main routine ========== *) value1=func[3.4]; value2=func[6.5]; Print["value1 = ",value1]; Print["value2 = ", value2];