Maple

提供: miniwiki
2018/8/19/ (日) 17:24時点におけるAdmin (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索


Maple(メイプル)とは、数式処理数値計算グラフ作成などを行うソフトウェアのひとつである。Mapleは、1980年代前半にカナダウォータールー大学で開発され(株式会社としてはWaterloo Maple名義。以下Maplesoft)、日本ではサイバネットシステムが販売、翻訳を行っていたが、2009年9月に、Maplesoftをサイバネットシステムが買収した。Mapleを使うと、鉛筆で行う数学の計算や作図をコンピュータで行うことができる。

また、販売方法としては、アカデミックバージョンを出し、学生や、教員、研究者向けに廉価で(1ライセンス2~3万円程度)ほとんどスペックの落ちない製品を販売している。また、小学校、中学校、高校などの初等教育の現場における数学、理科の授業から、大学や企業のR&D部門などの研究機関に至るまで幅広いユーザ層が開拓されつつある。

類似製品との比較

  • インタフェースMathematicaと類似しているが、グラフ描画機能などにおいて特に優れているとされている。
  • Mathematicaと比較して少ないメモリハードディスク容量で計算が可能である。
  • 本来、記号解の導出を想定して設計してあり、ほとんどの計算において記号解を出すことが可能である。
  • Mathematicaと比較して、膨大な量の計算を長時間かかって行うには不向きと考えられている。
  • Mathematicaと比較して、特化した用法へのアドインアプリケーションが寡少である。

各部の名称

主なコマンド

数式、関数の定義、代入、代数演算等に関するコマンド

代数演算

代数演算とは加減乗除および階乗(平方根等を含む)及びはそれらを組み合わせることで作られる演算の総称である。以下、主な代数演算について説明する。

表示するか否かの選択

関数の定義

関数の定義は以下のように行う。例えば関数fを[math]f(x)=x\times \exp(-{x}^{2})[/math]と定義したい場合には、

f:=x->x*exp(-x^2); 

と入力すればよい。2変数以上の関数もほぼ同様で、例えば関数fを[math]g(x,y)=y\times \exp(-{x}^{2})[/math]と定義したい場合には、

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

(次のように書く)

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)

subsは評価(evaluation)をせずに代入するのみ。evalは評価したあとに代入する。

整式の整理

多項式等を降冪の順昇冪の順にならべることができる。ただし、Sinの次数について並べ替えるのは難しい。

グラフ描画に関するコマンド

基本コマンド plot , plot3d および描画パッケージ plots(パッケージ内に描画用のコマンド群が含まれています。)

曲線

基本コマンド plot は、一変数の方程式を曲線で描画します。 例:x^2+3

曲面

基本コマンド plot3d は、二変数の方程式を曲面で描画します。 例:x+y

基本構文

曲線を描画する plot コマンドの基本形は、以下となります

plot(曲線の定義式、x=a..b,options);

曲面を描画する plot3d コマンドの基本形は、以下となります

plot3d(曲面の定義式, x=a..b, y=c..d, options) ;

x,y,z で、陰関数で定義されたグラフの場合は

plots[implicitplot3d](陰関数による曲面の定義式, x=a..b, y=c..d,z=e..f, options) 

である。その他に媒介変数表示等も可能だが、それは下の表に纏めます。

 ただし、曲面を描画する場合には、

with(plots): 

を予め読み込んでおかねばならない。具体的には、

with(plots):
implicitplot3d(x^2+y^2=1, x=-1..1, y=-1..1) 

のようにすればよい。ただし、この場合はzの定義域や、曲面の色やグリッドを指定するためのoptionは省略した(省略しても問題ない)。


また、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);


のように、一度だけ読み込んでその後は読み込む必要がないが、



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)等がある。 その他のものは以下の表に纏める。

代数方程式に関するコマンド

微分、積分に関するコマンド

微分

diff(f(x),x);

不定積分

int(f(x),x);

定積分

int(f(x),x=0..100);

f(x)を定義しなかった場合は、直接x^2などを代わりに入力できる。

行列、ベクトル等のコマンド

微分方程式に関するコマンド

関連書籍

和書

出版順に並べる。年、月、日が不明なものはそれぞれ明らかなものよりも前側に置くことにする。

  • B.W. チャー、G.H. ゴネット、M.B. モナガン、K.O. ゲディス:「よくわかるMaple 5」、シュプリンガー・フェアラーク東京、ISBN 978-4431706526(1993年8月)。
  • B.W. チャー、G.H. ゴネット、M.B. モナガン、K.O. ゲディス:「はじめてのMaple5」、シュプリンガー・フェアラーク東京、ISBN 978-4431706519(1993年8月)。
  • 守谷 両時:「Mapleで数学を 入門編」、海文堂出版、ISBN 978-4303732608(1996年3月)。
  • 守谷両時:「Mapleで数学を―線形代数編」、海文堂出版、ISBN 978-4303732707 (1996年4月)。
  • K.M. ヒール、K.M. リカード、M.L. ハンセン:「はじめてのMaple V〈リリース4〉」、シュプリンガー・フェアラーク東京、ISBN 978-4431707288(1997年4月)。
  • 小国力:「Maple Vと利用の実際 -数式処理とCG-」、サイエンス社、ISBN 4-7819-0829-2(1997年5月25日)。
  • ユージン・W. ジョンソン;「MAPLE V 線形代数」 (実践数式処理シリーズ)、ISBN 978-4900718395(1997年7月)。
  • アルバート ボッジス, ディビット バロー:「MAPLE V 微積分」 (実践数式処理シリーズ)、オーム社、ISBN 978-4900718418(1997年8月)。
  • ナンシー・R. ブラックマン, マイケル・J. モッシンホフ:「Maple V リファレンスブック」 (実践数式処理シリーズ)、オーム社、4-900718-42-4(1997年9月12日)。
  • Eade Ellis, Jr.+Eugene Johnson+Ed Lodi + Daniel Schwalbe:「Maple V Release 4 - 数式処理入門」、オーム社、4-900718-49-1(1997年9月22日)。
  • 守谷両時:「Mapleで数学を―微積分編I」、海文堂出版、ISBN 978-4303732806(1997年10月)。
  • 守谷両時:「Mapleで数学を―微積分編 II」、海文堂出版、ISBN 978-4303732905(1997年10月)。
  • ウィリアム・C. ボウドリー , ジョセフ・R. フィドラー :「MAPLE 5 応用数学」 (実践数式処理シリーズ) 、オーム社、ISBN 978-4900718487(1997年10月)。
  • ウエイド エリス ジュニア、エド ロディ、ユージン ジョンソン:「MAPLE V数式処理入門〈Release4〉」(実践数式処理シリーズ) 、オーム社、ISBN 978-4900718494(1997年10月)。
  • C.T.J. ドッドソン (著), E.A. ゴンザレス:「Maple Vで学ぶ実験数学」、シュプリンガー・フェアラーク東京、ISBN 978-4431707387(1997年10月)。
  • ジョン・S. デビット:「MAPLE V 数学解法事典」 (実践数式処理シリーズ) 、オーム社、ISBN 978-4900718548(1997年12月)。
  • 阿部寛:「Maple Vによる数式処理入門ー物理・工学への応用」、講談社サイエンティフィック、ISBN 4-06-153230-8(1998年3月10日)。
  • A.I. ベルツァー:「シミュレーション工学入門―Maple/Mathematicaによる導入」、培風館、ISBN 978-4563035280 (1998年9月)。
  • K.M.ヒール、M.L.ハンセン、K.M.リカード:「Maple V リリース5、ラーニングガイド」、シュプリンガーフェアラーク東京、ISBN 4-431-70776-X (1998年9月25日)。
  • 示野信一: 「Maple Vで見る数学ワールド」、シュプリンガー・フェアラーク東京、ISBN 978-4431708001(1999年5月)。
  • 「MAPLE V 微積分」 (実践数式処理シリーズ)、オーム社、ISBN 978-4274024245(2000年4月)。
  • 赤間世紀:「はやわかりMaple」、共立出版、ISBN 978-4320029866 (2000年8月10日)。
  • 井上毅 :「Mapleによる確率・統計」、森北出版、ISBN 978-4627094710(2001年4月)。
  • クリストファー・S. トッチィ, スティーブン アダムス:「技術者と科学者のためのMaple活用技法」、 秀和システム、ISBN 978-4798001067(2001年4月16日)。
  • Waterloo Maple Inc(編):「maple 7ラーニングガイド」、シュプリンガーフェアラーク東京、ISBN 4-431-70960-6 (2002年3月3日)。
  • Waterloo Maple Inc. (編):「Maple 7 プログラミングガイド」、 シュプリンガー・フェアラーク東京、ISBN 978-4431709619(2002年6月)。
  • 石渡昭一:「Maple Vによる強力超音波システムの理論と応用」、PS研究所、ISBN 978-4901951210(2006年8月)。
  • 遠山聡一、佐藤晶信:「速習Maple- STEMコンピューティングを活用する機械系の工業数学 -」、 コロナ社、ISBN 978-4339028645(2016年10月13日)。

洋書

  • Bruce W. Char, K.O. Geddes, Gaston H. Gonnet, B. Leong:"Maple V Reference Manual", Springer-Verlag Berlin and Heidelberg GmbH & Co. K, ISBN 978-3540976226 (1991/11).

関連項目


テンプレート:Computer algebra systems