Maple
出典: フリー百科事典『ウィキペディア(Wikipedia)』
![]() |
記事の正確さ:この記事の正確さについては疑問が提出されているか、あるいは議論中です。詳しくは、この記事のノートを参照してください。 |
Maple (メイプル) とは、数式処理、数値計算、グラフ作成などを行うソフトウェアのひとつである。Mapleは、1980年代前半にカナダのウォータールー大学で開発され、日本ではサイバネットシステム社が販売、翻訳を行っている。Mapleを使うと、紙と鉛筆で行う数学の計算や作図をコンピュータで行うことができる。
インターフェイスはMathematicaと類似しているが、グラフ描画機能などにおいて特に優れているという定評がある。
又、販売方法としては、アカデミックバージョンを出し、学生や、教員、研究者向けに廉価で(1ライセンス3万円程度)殆どスペックの落ちない製品を販売していて、理系の研究者のユーザーを学部生、大学院生の段階で取り込むという戦略をとり、徐々にではあるがシェアを伸ばしている。。[1]又、小学校、中学校、高校などの初等教育の現場における数学、理科の授業から、大学や企業のR&D部門などの 研究機関に至るまで幅広いユーザー層が開拓されつつある。
しかしながらマニュアルや解説書の不足等は深刻で、全く使い方を知らない人間、あるいは周囲にそのような人材がいない人間 のおかれた状況は、悪い[2]。サードパーティのマニュアル本の出版が近年なされず、新しいパージョンに関しては、直訳に近く、索引のない付属の解説書に頼らざるを得ない状況にある。又、ソフト付属のヘルプの質も悪く、和訳されていない箇所があるのはともかくとして、ヘルプ内の文章をコピーアンドペーストによって他の箇所に保存することが出来ないのは、自分用のマニュアルを作るうえで、あるいは教材を作るうえで致命的と言えるほど不便で、でこれでは紙にかかれたマニュアルと大差ない[3]。
目次 |
[編集] 各部の名称
[編集] 主なコマンド
[編集] 数式、関数の定義、代入、代数演算等に関するコマンド
[編集] 代数演算
代数演算とは加減乗除および階乗(平方根等を含む)及びはそれらを組み合わせることで作られる演算の 総称である。以下、主な代数演算について説明する。
[編集] 表示するか否かの選択
[編集] 関数の定義
関数の定義は以下のように行う。例えば関数fを と定義したい場合には、
f:=x->x*exp(-x^2);
と入力すればよい。二変数以上の関数もほぼ同様で、例えば関数fを と定義したい場合には、
g:=(x,y)->y*exp(-x^2);
と入力すればよい。一般に関数には変数が存在する。人間は関数を見せられた場合に『何が変数であるか』を理解できるが、機械はそうではない。したがって、変数が何なのかを明示する必要がある。上記のコマンドにおいて、変数が何なのかを明示する役割を果たしている記号がそれぞれ『x->』『(x,y)->』である。もちろん
f:=x*exp(-x^2);
のように変数を明示しない定義の仕方もあるが、これだと、後々別のコマンドと組み合わせる際に何らかの不都合が生じる可能性がある。
[編集] 代入
代入に関するコマンド、つまり、文字式や関数に、文字や数字を代入するためのコマンド としては、evalとsubsが代表的である。
[編集] evalによる代入
evalコマンドを用いると、文字式や関数に、文字や数字を代入できる。
> eval(x^2+x+1 , x=1);
f:=(x,y,z)->y*exp(-x^2)+z;
> eval(poly,[x=2,y=3,z=t]);
[編集] subsによる代入
同様にsubsコマンドを使えば、文字式や関数に、文字や数字を代入できる。但し 代入する側の位置と代入する側の位置が、evalとは逆になっている。
subs( x=2, x^2+x+1 );
subs( x=A, x^2+x+1 );
h:=x*exp(-x^2); subs( x=A, f );
f:=x->x*exp(-x^2); subs( x=A, f );
(駄目)
f:=x->x*exp(-x^2): subs( x=A, f );
f
f:=x->x*exp(-x^2): subs( x=A, f(x) );
[編集] evalとsubsの違い
evalコマンドとsubsコマンドの違いは、次の例において顕著である。
expr := sin(x)/cos(x); subs(x=0,expr); eval(expr,x=0);
> der := diff(f(x),x) + f(x);
/ d \ der := |--- f(x)| + f(x) \ dx /
> eval(der,x=0);
/ / d \\ |eval|--- f(x), {x = 0}|| + f(0) \ \ dx //
> subs(x=0,der);
(diff(f(0), 0)) + f(0)
[編集] 整式の整理
多項式等を降冪の順や昇冪の順にならべることが出来る。 但し、Sinの次数について並べ替えるのは難しい。
[編集] グラフ描画に関するコマンド
[編集] 曲線
[編集] 曲面
[編集] 基本構文
曲面を描画するコマンドの基本形は、通常のグラフの場合は
plot3d(曲面の定義式, x=a..b, y=c..d,z=..e..f, options)
で、陰関数で定義されたグラフの場合は
implicitplot3d(陰関数による曲面の定義式, x=a..b, y=c..d,z=e..f, options)
である。その他に媒介変数表示等も可能だが、それは下の表に纏める。
但し、曲面を描画する場合には、
with(plots):
を予め読み込んでおかねばならない。具体的には、
with(plots): plot3d(x+y, x=1..2, y=1..2);
や、
with(plots): implicitplot3d(x^2+y^2=1, x=-1..1, y=-1..1)
のようにすればよい。但し、この場合はzの定義域や、曲面の色やグリッドを指定する為のoptionは省略した(省略しても問題ない)。
又、with(plots):は同じシェルの上で作業する限り一度読み込めば、あとはそのシェルを終了するまで有効なので、
with(plots):
plot3d(x+y, x=1..2, y=1..2);
別の作業
implicitplot3d(x^2+y^2=1, x=-1..1, y=-1..1);
のように、一度だけ読み込んでその後は読み込む必要がないが、
with(plots):
plot3d(x+y, x=1..2, y=1..2);
別の作業
with(plots):
implicitplot3d(x^2+y^2=1, x=-1..1, y=-1..1);
のように、曲面を描くたびに読み込んでも別段問題がない。
[編集] 一般性を持った曲面描画のプログラム
基本はこれでよいのだが、現実には『複数の曲面や曲線を同じエリアに描く』あるいは 『予め定義しておいた関数に関するグラフを書く』あるいはその両方を行うことが 単独のグラフを書くことに比べ多いだろう。 そのため、比較的応用範囲が広いプログラムを一つ挙げておこう。以下のプログラムは、 『g(x,y)の定義を行ったうえでそれのグラフとg(x,y)=1についての陰関数を、表示色を変えて同時に表示させる』ものである。
with(plots):
g:=(x,y)->y*exp(-x^2);
p1:=plot3d(g(x,y),x=-3..4,y=-2..4,axes=boxed):
p2:=implicitplot3d(g(x,y)=1,x=-3..4,y=-2..4,z=-2..4,axes=boxed,grid= [15,15,15],style=patchnogrid):
display(p1,p2);
表示するグラフを3つ以上に増やすことも出来る
with(plots):
g:=(x,y)->y*exp(-x^2);
p1:=plot3d(g(x,y),x=-3..4,y=-2..4,axes=boxed):
p2:=implicitplot3d(g(x,y)=1,x=-3..4,y=-2..4,z=-2..4,axes=boxed,grid=[15,15,15],style=patchnogrid):
p3:=plot3d(x*y ,x=-3..4,y=-2..4,axes=boxed):
display(p1,p2,p3);
もちろん、1種類の曲面のみを表すことも、可能である。
with(plots):
g:=(x,y)->y*exp(-x^2); p1:=plot3d(g(x,y),x=-3..4,y=-2..4,axes=boxed): display(p1);
尚、g,p1,p2 等の変数名は好きなように変えてよい。(変更で影響を受ける部分、例えば『display(p1,p2);』等も同時に正しく変更すれば)問題ない。例えば
with(plots):
f:=(x,y)->y*exp(-x^2);
p:=plot3d(g(x,y),x=-3..4,y=-2..4,axes=boxed):
q:=implicitplot3d(f(x,y)=1,x=-3..4,y=-2..4,z=-2..4,axes=boxed,grid= [15,15,15],style=patchnogrid):
display(p,q);
のようにしても何も問題ない。
[編集] 曲面描画の主なオプション
曲面の形式としては、グラフ(plot3d)、陰関数のグラフ(implicitplot3d)等がある。 その他のものは以下の表に纏める。
[編集] 代数方程式に関するコマンド
[編集] 微分、積分に関するコマンド
[編集] 行列、ベクトル等のコマンド
[編集] 微分方程式に関するコマンド
[編集] 参考文献、外部リンク、脚注
- ^ 競合するMathematicaは使用できる期間が限られている。[1]
- ^ インターネット上には、中学、高校、大学の教師などが自分の講義用に作ったノートが複数公開されている。 その辺りを考えると、こういった専門家用のソフトの中ではましなほうなのかもしれない。
- ^ 例をコピーという項目はあり、ヘルプ内の特定のページに書かれたコマンドだけを 一斉にコピーすることは可能である。説明文がコピーできないという段階で 不便きわまるが、よく分からない人間にとって、意味不明のコマンドの羅列しか 抜き出せないことは、不便を通り越している。
カテゴリ: 正確性 | 数学関連のスタブ項目 | コンピュータ関連のスタブ項目 | 数式処理システム | 数学に関する記事