数値計算

まず,Mapleに数の計算をさせてみましょう.まずは足し算からです.Mathematicaと異なり,入力の最後に ; (セミコロン)が必要な点に注意.

> 123456789+987654321;

1111111110

次は掛け算です.Mathematicaと異なり,* (アスタリスク)が必要です.

> 142857142857*7;

999999999999

では次に,100 の階乗を計算してみましょう.

> 100!;

9332621544394415268169923885626670049071596826438162146859296389521759999322991560894146397615651828625369792082722375825118521091686400000000000000000000000093326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

最後の桁まで正しく? (だれか確認してください :-) 求まっています. 1000! でも大丈夫! 上の 100! のところでマウスをクリックして書換えてみてください.

2 の 100 乗なんていうのでも,へっちゃらです.

> 2^100;

1267650600228229401496703205376

加減乗除以外にも,Maple にはさまざまな関数が用意されています.例えば,10! の平方根は,以下のようにすれば計算できます.ここで,sqrt(x) という記法で x の平方根を表していることに注意してください.

> sqrt(10!);

720*7^(1/2)

7の平方根が残っていますね. Maple は結果をできるだけ厳密なままで表現しようとしますので,結果を勝手に数値に直すことはしません.

例えば,log(2)  (2の自然対数)を計算させてみても,もとのままです(logではなくlnになっていますが同じ意味です).

> log(2);

ln(2)

次のようにすれば,この結果を数値に直すことができます(Mathematicaでは N でした).

> evalf(%);

.6931471806

ここで,evalf(x) はxを数値に変換するMapleの関数です.また % は直前に実行した計算結果を表します.

関数evalfの第2引数に精度を与えることによって,より高い精度の数値を求めることもできます.

> evalf(log(2), 40);

.6931471805599453094172321214581765680755

同様に,円周率(Mapleでは Pi で表す)の最初の100桁を求めたければ,以下のようにします.

> evalf(Pi, 100);

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068

evalfやsqrtのように Maple にあらかじめ用意されている関数を組込関数と呼びます. Maple 9.5には5000以上の関数が組み込まれています.

例えば,n 番目の素数を求める関数 ithprime(n) なんていうのも,用意されています.

> ithprime(303);

1999