数式処理に欠かせない定数(円周率等)が既に定義されています.
円周率は, Piという記号を使います. 関数に値を代入する時には,
必ず括弧が必要で, しかも数式計算上の括弧は, これ以外には使えません.
は別の意味になります.
> Pi; > cos(Pi/4); > tan(Pi/2); > arctan(-infinity);
Maple では, 有理数, 冪根, 円周率等の定数は, そのまま出力されます.
上の逆正接函数の計算でもそうですし,
例えば,
も次で計算させると, 円周率を使った答が出ます.
> sum(1/n^2, n=1..infinity);これを小数へ変換するには, evalf(evaluate float)という手続きを用います.
> evalf(Pi^2/6);
Mapleでは, 非常に正確な数値計算ができます.
例えば,
を C言語の
数学関数で計算しますと
という答を得ます. Mapleを
使うと, C言語の計算がとんでもない誤差を含む事がわかります.
起動時では, 浮動小数点の仮数部は10桁に設定されており,
そのままですと, この結果は真の値の約40倍という答になります.
そのため仮数部の桁数を事前に設定します.
仮数部の桁数は, Maple のシステム変数 Digitsに格納されていますから,
この値を変更します. Mapleでは変数への代入に := を用います.
> Digits:=50; > evalf(exp(Pi*sqrt(163))); > evalf(exp(Pi*sqrt(163))-744-640320^3);
exp
は exponential(指数関数) の sqrt
は square root(平方根)の略)
文字式の展開, 因数分解も可能です.
> expand((x+y)^5); > factor(a^8-b^8);
次の問題は, 2000年の琉球大学入学試験問題前期日程数学甲のです.
> diff(x/sqrt(1+x^2),x); > simplify(%); > int(x*sqrt(x^2+2),x); > int(x^3*log(x), x=exp(-1)..2*exp(1)); > limit((sqrt(2*x+1)-1-x)/x^2, x=0);
方程式 の解を求める様々な方法も Maple には用意されています.
が 4次以下の多項式なら, この方程式には
代数的な解法が存在する事が知られています.
(3年の代数学 I・II で勉強する予定です.)
Maple はこれらの解法を知っており, solve という手続きに
なっています. 次を実行してみて下さい.
これらの解には複素数が含まれますが, Maple では虚数単位は大文字の
I で表示されます.
> solve(x^3+1,x); > solve(x^3+3*x+1,x);
5次以上の方程式には, 代数的な解法が一般には存在しない事が 知られています(代数的という制限を外せば, 別な解法はあります). 次を実行してみてください.
> solve(x^5+x^2+1, x);RootOf(
代数的な解法がある場合でも, その解法が複雑な場合には, 残念ながら代数的な解を出力 しません. 例えば, 1の 7乗根を計算させようとしても, de Moivre (ド モアブル) の公式から出てくる解が単純に出力されるだけです.
> solve(x^7-1, x);上で述べたように Maple では, 代数的数が扱えます. これを利用すると,
> factor(x^6+x^5+x^4+x^3+x^2+x+1, (-7)^(1/2));従って, 1の複素7乗根は, 次のベキ根だけを利用して記述すると, 2つ方程式の解全体です.
> solve(2*x^3+x^2-I*sqrt(7)*x^2-x-I*sqrt(7)*x-2,x); > solve(2*x^3+x^2+I*sqrt(7)*x^2-x+I*sqrt(7)*x-2,x);
が 5次以上の多項式や, 多項式以外の場合には, 一般的な
解法が存在しません.
このような方程式の近似解を数値的に計算する方法も Maple
は知っています. 上の方程式の数値解も, 次で計算してくれます.
> fsolve(x^5+x^2+1, x);