Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
Contents Previous Next Index
8 Maple の数式
この章では、基本的なデータ構造の概要などの、Maple の数式の使用についての基礎を説明します。この章で説明しているコマンドの多くは、プログラミングで利用できます。ループ構造、条件分岐、プロシージャなどの Maple のプログラミングの詳細については、基本的なプログラミングを参照してください。
8.1 この章の内容
セクション
トピック
データ構造体の作成および使用 - 基礎的なデータ構造体の定義および使用方法
式列
集合
リスト
テーブル
配列
行列およびベクトル
関数演算子
文字列
Maple の数式の使用 - 式の評価の操作および制御用ツール
ローレベル処理
数式の操作
数式の評価
8.2 データ構造体の作成および使用
定数、データ構造体、数式などのオブジェクトは、Maple の式です。数式の詳細については、Maple ヘルプシステムを参照してください。
ここでは、主なデータ構造体について説明します:
Maple の基本的なデータ構造体は、式列です。式列は、コンマ区切りの数式のグループです。
要素の使用
いずれかの数式を使用するには、以下の手順に従います:
式列名の後に、数式の位置を角括弧 ([ ]) で囲んで入力します。
次に例を示します:
負の整数を使用して、式列の最後から数えた位置で数式を選択することができます。
範囲演算子 (..) で範囲を指定して複数の数式を選択することができます。
注意 : この構文は、ほとんどのデータ構造体で有効です。
集合は、式列を中括弧 ({ }) で囲んだものです。
Maple の集合は、数学の集合の特性を持ちます。
各要素は一意です。繰り返される要素は 1 個だけ格納されます。
要素の順序は保持されません。
集合の使用
数学集合の処理を実行するには、集合データ構造体を使用します。
注意 : 和集合演算子は、1-D Math 入力ではunionとして提供されています。union
集合の詳細については、?set で表示されるヘルプページを参照してください。
リストは、式列を角括弧 ([ ]) で囲んだものです。
注意 : リストでは、要素の順序と繰り返しの両方が保持されます。
エントリの使用
リスト内のいずれかの要素を参照するには、以下の手順に従います:
角括弧を使用します。
詳細については、要素の使用を参照してください。
リストの使用
一部のコマンドでは、数式のリスト (または集合) を指定することができます。
たとえば、コンテキストメニューまたはsolve コマンドを使用して、方程式のリスト (または集合) を解くことができます。
詳細については、方程式および不等式を解くを参照してください。
集合およびリストの詳細については、?set で表示されるヘルプページを参照してください。
概念的には、配列データ構造体は一般化されたリストです。各要素のインデックスを使用して、要素を参照することができます。
以下の 2 つの特徴があります:
インデックスには任意の整数を使用できます。
次元は 1 以上になる場合があります。
配列の作成および使用
配列を定義するには、Array コンストラクタを使用します。
通常の Array コンストラクタの引数は、以下のとおりです:
範囲の式列 - 各次元のインデックスを指定します。
ネストリスト - 内容を指定します。
配列内のエントリを参照するには、角括弧または丸括弧の表記を使用します。
角括弧の表記では、インデックスが 1 から始まっていない場合でも、実際の配列のインデックスに従います。
Error, Array index out of range
丸括弧の表記では、インデックスが 1 から開始するように次元が正規化されます。これは相対的な方法であるため、-1 を入力すると配列の最後を参照することができます。
Array コンストラクタは、他の構文をサポートしています。また、多数のオプションをサポートしています。Array コンストラクタおよび配列データ構造体の詳細については、?Array で表示されるヘルプページを参照してください。インデックスの付け方については、?rtable_indexing で表示されるヘルプページを参照してください。
大きな配列
ドキュメントで表示される配列は、1 次元配列および 2 次元配列 (各次元のインデックスは最大 10) だけです。大きな配列は、プレースホルダーとして表示されます。
大きな配列を表示するには、以下の手順に従います:
プレースホルダーをダブルクリックします。
[行列を参照(Matrix Browser)] に配列が表示されます。詳細については、大きな行列およびベクトルの表示を参照してください。
テーブルは、概念的には配列データ構造体を拡張したものです。ただし、テーブルデータ構造体はハッシュテーブルを使用して実装されます。テーブルでは、整数だけではなく任意の値をインデックスとして使用することができます。
テーブルの定義およびエントリの参照
リストなど任意のエントリを、各要素に割り当てることもできます。
テーブルの詳細については、?table で表示されるヘルプページを参照してください。
行列およびベクトルは、線形代数およびベクトル解析の計算で使用する特殊なデータ構造体です。
行列およびベクトルの定義については、行列およびベクトルの作成を参照してください。
エントリの参照方法や線形代数計算の実行方法など、データ構造体の詳細については、線形代数を参照してください。
関数演算子は、 という写像を行います。 の値は、の評価の結果になります。
関数演算子を使用して、数学関数を定義することができます。
関数の定義
1 変数または 2 変数の関数を定義するには、以下の手順に従います:
1. [式(Expression)] パレットで、関数定義項目のいずれかをクリックします。図 8.1 を参照してください。関数定義が挿入されます。
2. プレースホルダーを関数名に置換します。Tabキーを押します。注意 : Tab キーを押すとタブが挿入される場合は、ツールバーの [Tab] アイコン をクリックします。この操作を行うと、プレースホルダー間を移動できるようになります。
3. Enter キーを押します。
図 8.1 : 関数定義パレットの項目
たとえば、入力に 1 を加算する関数を定義します。
注意 : 右矢印記号は、-> という文字を入力して挿入します。2-D Math では、-> が右矢印記号に置換されます。1-D Math では置換されません。
関数 add1 は、引数に記号または数値を指定して評価することができます。
関数演算子と他の数式の区別
式 は、関数演算子 とは異なります。
関数演算子 を f に割り当てます。
式 を g に割り当てます。
関数演算子 f を x の値で評価します:
f の引数として値を指定します。
式 g を x の値で評価します:
eval コマンドを使用する必要があります。
eval コマンドの詳細、およびパレットとコンテキストメニューを使用してある点で数式を評価する方法については、部分式を値で代用するを参照してください。
多変数関数およびベクトル関数
多変数関数またはベクトル関数を定義するには、以下の手順に従います:
座標または座標関数を括弧 (( )) で囲みます。
多変数関数の例を次に示します:
ベクトル関数の例を次に示します:
演算子の使用
関数演算子で処理を実行するには、演算子に引数を指定します。たとえば、演算子 f の場合は、f(x) を指定すると、数式として評価されます。次の例を参照してください。
演算子を数式としてプロットする:
plot3d コマンドを使用して 3 次元関数をプロットします。
プロットについては、プロットおよびアニメーションを参照してください。
積分:
int コマンドを使用して関数を積分します。
積分およびその他の微積分処理については、微積分を参照してください。
文字列とは、二重引用符 (" ") に囲まれた文字の式列です。
文字列の参照
文字列内の文字は、角括弧を使用して参照することができます。
文字列の使用
StringTools パッケージは、文字列を操作および使用するための高度なツールセットです。
8.3 Maple の数式の使用
ここでは、コマンドを使用して数式を操作する方法を説明します。数式の型のテスト、数式のオペランドの参照、数式の評価などの項目が含まれています。
数式の型
Maple の型とは、共通のプロパティを持つ数式のクラスです。Maple には 200 個以上の型があります。以下にその例を示します:
`+`
boolean
constant
integer
Matrix
trig
truefalse
Maple のすべての型の詳細およびリストについては、?type で表示されるヘルプページを参照してください。
type コマンドは、数式が型チェックを満たす場合は true を返します。それ以外の場合は false を返します。
数式の型のテスト
数式が指定の型かテストするには、以下の手順に従います:
type コマンドを使用します。
キーワードを囲む右単一引用符 (') については、評価の後回しを参照してください。
Maple の型は、相互排他的ではありません。数式は、同時に複数の型を持つ場合があります。
数式を別の型に変換する方法については、変換を参照してください。
部分式の型のテスト
部分式が指定の型かテストするには、以下の手順に従います:
hastype コマンドを使用します。
Testing for a Subexpression
数式が、指定した部分式のインスタンスを含むかどうかをテストするには、以下の手順に従います:
has コマンドを使用します。
has コマンドは、数式の構造に、完全一致する部分式が含まれるかどうかを調べます。
たとえば、次の呼び出し手順は false を返します。
特定の型の部分式をすべて返すには、indets コマンドを使用します。詳細については、不定部分を参照してください。
数式の成分の参照
左辺および右辺
方程式、不等式、値域の左辺を取得するには、以下の手順に従います:
lhs コマンドを使用します。
方程式、不等式、値域の右辺を取得するには、以下の手順に従います:
rhs コマンドを使用します。
次の方程式では、範囲の始点は方程式の右辺の左端になります。
分子および分母
数式の分子を取得するには、以下の手順に従います:
numer コマンドを使用します。
数式の分母を取得するには、以下の手順に従います:
denom コマンドを使用します。
数式が正規化されていない場合は、分子または分母を選択する前に数式が正規化されます。詳細については、?normal で表示されるヘルプページを参照してください。
数式には、任意の代数演算式を指定できます。無理式の場合の動作については、?numer で表示されるヘルプページを参照してください。
数式の成分
数式の成分を、オペランドと呼びます。
数式内のオペランド数を数えるには、以下の手順に従います:
nops コマンドを使用します。
方程式の解のリストを作成する例を次に示します。
nops コマンドを使用して、解の個数を数えます。
nops コマンドおよびオペランドの詳細については、?nops で表示されるヘルプページを参照してください。
不定部分
数式の不定部分を求めるには、以下の手順に従います:
indets コマンドを使用します。
indets コマンドは、不定部分を集合として返します。数式は有理式であることを想定しているため、sin(x)、f(x)、sqrt(x) などの関数は不定と見なされます。
特定の型の部分式をすべて返すには、2 番目の引数で型を指定します。型については、数式の型のテストを参照してください。
特定の型の部分式が数式に含まれるかどうかを (部分式を返さずに) テストするには、has コマンドを使用します。詳細については、Testing for a Subexpressionを参照してください。
ここでは、最もよく使用される操作コマンドについて説明します。他の操作コマンドについては、反復コマンドを参照してください。
簡約化
数式を簡約化するには、以下の手順に従います:
simplify コマンドを使用します。
simplify コマンドは、簡約ルールを数式に適用します。Maple には、三角関数、根、対数関数、指数関数、累乗、特殊関数など、さまざまな種類の数式および形式用の簡約ルールがあります。辺関係を使用してカスタムの簡約ルールを指定することもできます。
簡約を制限するには、実行する簡約の種類を指定します。
辺関係を指定してsimplifyコマンドを使用することもできます。部分式を値で代用するを参照してください。
因数分解
多項式を因数分解するには、以下の手順に従います:
factor コマンドを使用します。
Maple では、多項式を、係数で指定される体上で因数分解することができます。また、代数拡大体上で多項式を因数分解することもできます。詳細については、?factor で表示されるヘルプページを参照してください。
多項式の詳細については、多項式代数を参照してください。
整数を素因数分解するには、以下の手順に従います:
ifactor コマンドを使用します。
整数の詳細については、整数演算を参照してください。
展開
数式を展開するには、以下の手順に従います:
expand コマンドを使用します。
expand コマンドは、積を和に直します。 また、関数内の数式を展開します。
結合
数式内の部分式を結合するには、以下の手順に従います:
combine コマンドを使用します。
combine コマンドは、和、積、乗数内の項を 1 つの項に結合します。
は以前に 2 次元の配列を表すために割り当てられたことに注意してください (配列の作成および使用)。
combine コマンドは、数式内の名前のすべての値で有効な変換だけを適用します。
名前に前提条件を設定して操作を実行するには、 assuming コマンドを使用します。前提条件の詳細については、変数の前提条件を参照してください。
変換
数式を変換するには、以下の手順に従います:
convert コマンドを使用します。
convert コマンドは、数式を新しい形式、型 (数式の型を参照)、関数の項に変換します。すべての変換のリストについては、?convert で表示されるヘルプページを参照してください。
測定値をラジアンから度に変換します:
単位を使用する測定を変換するには、Units Calculator または convert/units コマンドを使用します。
Units Calculator および単位の使用の詳細については、単位を参照してください。
リストを集合に変換します:
Mapleでは、数式から新しい関数または関数クラスへの変換を多数サポートしています。
逆双曲余接関数に相当する数式をルジャンドル関数の項で求める例を次に示します。
関数のクラスへの変換の詳細については、?convert/to_special_function で表示されるヘルプページを参照してください。
正規化
数式を正規化するには、以下の手順に従います:
normal コマンドを使用します。
normal コマンドは、数式を因数分解後の正規形に変換します。
normal コマンドは、ゼロ認識にも使用できます。
分子および分母を展開するには、expanded オプションを使用します。
ソート
数式の要素をソートするには、以下の手順に従います:
sort コマンドを使用します。
sort コマンドは、値のリストまたは多項式の項を並べ替えます。
多項式のソートについては、項のソートを参照してください。
ソートの詳細については、?sort で表示されるヘルプページを参照してください。
部分式を値で代用する
ある点で数式を評価するには、変数の代わりに値を使用する必要があります。
コンテキストメニューを使用して変数に値を代入するには、以下の手順に従います:
1. 数式を右クリック (Macintosh の場合は Control キーを押しながらクリック) します。コンテキストメニューが表示されます。
2. コンテキストメニューから [点で評価(Evaluate at a Point)] を選択します。[点で評価(Evaluate at a Point)] ダイアログが表示されます。図 8.2 を参照してください。
図 8.2 : 点で評価(Evaluate at a Point)
3. ドロップダウンリストから、置き換える変数を選択します。
4. テキストフィールドに、変数の代わりに使用する値を入力します。[OK] をクリックします。
ワークシートモードでは、値に置換するeval コマンド呼び出し手順がドキュメントに挿入されます。これが、eval コマンドの最も一般的な使用法になります。
次の多項式で とする例を示します。
パレットを使用して変数に値を代入するには、以下の手順に従います:
1. [式(Expression)] パレットで、特定点での評価を示す項目 をクリックします。
2. 数式、変数、代入する値を指定します。
eval 関数で実行した置換は構文上のもので、より強力な代数形式の置換ではありません。
代入は、代入式の左辺に名前が指定されている場合に実行されます。
代入式の左辺に名前が指定されていない場合は、左辺が数式のオペランドである場合にだけ代入が実行されます。
が のオペランドではないため、評価が実行されていません。オペランドについては、?op で表示されるヘルプページを参照してください。
代数的な置換には、algsubs コマンドを使用するか、simplify コマンドに辺関係を指定して使用します。
数値近似
数式の近似値を計算するには、以下の手順に従います:
evalf コマンドを使用します。
evalf コマンドは、浮動小数 (または複素数) または数式を返します。
デフォルトでは、Maple は結果を 10 桁の精度まで計算しますが、桁数はインデックス (角括弧 ([ ]) で指定します) として任意に指定できます。
詳細については、?evalf で表示されるヘルプページを参照してください。
極限の数値解を得るおよび数値積分も参照してください。
複素式の評価
複素式を評価するには、以下の手順に従います:
evalc コマンドを使用します。
evalc コマンドは、可能であれば標準形である expr1 + i expr2 で出力を返します。
2-D Math 入力では、以下の 2 つの方法を使用して虚数単位を入力することができます。
[一般的な記号(Common Symbols)] パレットで、i または j をクリックします。パレットを参照してください。
i または j と入力し、記号補完ショートカットキーを押します。記号名を参照してください。
1-D Math 入力では、虚数単位を大文字の i (I) として入力します。
evalc(2^(1 + I));
ブール式の評価
関係演算子(、、、、、を含む数式を評価するには、以下の手順に従います:
evalb コマンドを使用します。
注意 : 1-D Math 入力では、、、はそれぞれ <>、<=、>= の各演算子として入力します。
evalb コマンドは、三値論理系を使用します。戻り値は、true、false、FAIL のいずれかになります。評価不能の場合は、未評価の数式を返します。
重要 : evalbコマンドは、<、、>、のいずれかを含む不等式の演算は実行せず、数式の簡約化も行いません。これらの演算を先に実行してから、evalb コマンドを使用してください。
リスト、集合、テーブル、配列、行列、ベクトル内のすべての要素に演算または関数を適用する
チルダ (~) 記号を使用して、リスト、集合、テーブル、配列、行列、ベクトル内のすべての要素に演算または関数を適用することができます。
以下の例では、乗算演算子 ( の後にチルダを追加することで、行列 M 内の各要素を 2 で乗じています。
以下の例では、行列 M 内の各要素に関数 sin を適用しています。
チルダは、以下の例にあるように、複数のデータセットに関数を適用する際にも使用することができます。
2 つのデータ構造体で、各データ構造体に次元があり、そこに含まれる要素の数が同一であれば、一方のデータ構造体内の値を使用して、他方のデータ構造体内の値を算出することができます。以下の例では、ある配列内の値が、同じ数の要素を含む行列内の値と比較されています。
詳細については、?elementwise で表示されるヘルプページを参照してください。
評価のレベル
Maple などの数式処理プログラムでは、評価のレベルの問題が生じます。y を x に、z を y に、5 を z にそれぞれ代入すると、x の評価結果はどうなるでしょうか。
最上位では、名前が完全評価されます。つまり、名前または記号に値が割り当てられているかどうかがチェックされます。値が割り当てられている場合は、その値が名前の代わりに使用されます。この値にさらに値が割り当てられている場合は、置換ができなくなるまで再帰的に置換が実行されます。
名前 x が完全評価され、値 5 が返されます。
数式の評価レベルを設定するには、以下の手順に従います:
eval コマンドを、2 番目の引数として整数を指定して実行します。
単一の引数が指定された場合は、eval コマンドは数式を完全に評価します。2 番目の引数として整数が指定された場合は、Maple はそのレベルまで数式を評価します。
評価のレベルの詳細については、?lastnameevaluation, ?assigned、?evaln で表示される各ヘルプページを参照してください。
評価の後回し
数式の評価を後から実行するには、以下の手順に従います:
数式を右単一 引用符 (' ') で囲みます。
右単一引用符は評価を遅らせる機能を持つため、非評価 引用符と呼ばれます。
割当済みの名前を変数またはキーワードとして使用する
割当済みの名前を変数として使用した場合は、値について名前が評価され、その値がコマンドに引き渡されます。次の例では、上記理由でエラーメッセージが返されます。
Error, (in sum) summation variable previously assigned, second argument evaluates to 4 = 1 .. n
注意: 通常は、名前を変数として使用する場合は、名前の割り当てを解除することをお勧めします。非評価引用符を使用して名前の割り当てを解除するを参照してください。
割当済みの名前を変数として使用するには、以下の手順に従います:
名前を非評価引用符で囲みます。名前がコマンドに引き渡されます。
重要 : 非評価引用符でキーワードを囲むことをお勧めします。
たとえば、キーワード left を非評価引用符で囲むと、割り当てられた値ではなく名前が使用されます。
引用符で囲んだ数式の完全評価
引用符で囲んだ数式を完全評価すると、右単一引用符 1 対が削除されます。
方程式ラベルおよび方程式ラベル参照については、方程式ラベルを参照してください。
数式を非評価引用符で囲むと評価は後回しにされますが、自動簡約は実行されます。
非評価引用符を使用して名前の割り当てを解除する
名前の割り当てを解除するには、以下の手順に従います:
非評価引用符で囲んだ名前を、その名前自身に割り当てます。
unassign コマンドを使用して、名前の割り当てを解除することもできます。詳細については、名前の割り当て解除を参照してください。
Download Help Document