Mathematica とは

コンピュータ入門 II (第 6 回)
担当教員:西沢 清子:TA: 斎藤, 大和田 2004.11.08
Mathematica とは
Mathematica とは Stephen Wolfram (1959–) によって作られた, プログラミング言語を備え
た数式処理ソフトです. Mathematica を使うと, 紙と鉛筆で行う数学の計算や作図をコンピュー
タで行うことができます. 参考書は色々あります。例えば、次を挙げておきます.
白石 修二 (森北出版) 例題で学ぶ Mathematica [数学編]
中村 健蔵 (東京電機大学出版局)Mathematica で絵を描こう
小島・川瀬他 (実教出版)Mathematica (シリーズ 2、3)
大塚 道明 (実教出版)Mathematica でトライ!ー試して分かる高校数学
S. ワゴン (シュプリンガーフェアラーク東京) Mathematica 現代数学探究
実習 YAHOO のホームページ (http://www.yahoo.co.jp) の検索機能を活用して, 数式処理
に関するホームページを探してみましょう.
Mathematica の起動と終了
起動
[スタート] → [プログラム] → [Mathematica 5] → [Mathematica 5]
を選択すると, Mathematica が起動し, Mathematica ノートブックとよばれる画面が立ち上が
ります。
実行
Mathematica の入出力は通常この上で実行されます。とりあえず, ノートブックに
2
3
4
Shift + ←-
と入力してみて下さい。入力した式を評価 (実行) するには Shift + ←- とします.
Mathematica では 空白は積の演算と解釈します。
初めの計算にはすこし時間がかかります。これは実際に計算を行うカーネルを読み込む為の
時間がかかるためで、次回からはすぐに実行されます。
式の入力後、行頭にラベル In[1] := が現れ、実行結果は Out[1] = に出されます。
¶
10 分チュートリアル
³
• Mathematica のメニューバーのヘルプ開き、[Mathematica-10 分チュートリアル] を
表示してください。説明します。
µ
´
終了
Mathematica を終了するには, [ファイル] → [終了] とします. ノートブックの実行結果等をファ
イルに保存する場合にはファイル名を入力します. [ファイル] → [保存] として保存場所、ファ
イル名などを入力します。Mathematica のファイルには自動的に拡張子 ****.nb が付きます。
Mathematica 1: 数値計算、シンボル計算
数値計算
四則演算子の表し方
足し算「+」 引き算「-」 掛け算「∗ または半角空白」
割り算「/」 べき乗「^」
階乗「!」
例えば 数値計算や、シンボル x の入った式の計算
(1.5 + 3.2) × 4 − 5.2 3x + 1 ÷ 4x2
3x ÷ 4x2
は Mathematica では次のように入力します:
(1.5+3.2) ∗ 4 - 5.2
(3 x+1) / (4 x^2)
3 x / (4 x^2)
丸括弧でくくられているいる部分は通常の数学記号と同様に他の式より先に評価されます. ま
た 3x + 1 のような場合には、半角の空白を省略して 3x+1 としてもよい。
以下では, Mathematica が出力する部分 (In[ ]:= など) も併せて書いてあります.
In[1]:= 2^10 Shift + ←Out[1]:= 1024
In[2]:= 12! Shift + ←Out[2]:= 479001600
となります。
数の表記
2 進数 ((10101)2 ) を 10 進数に変換 してみましょう。 2^^10101 と入力してください。
また 10 進数 *** を n 進数に変換してみましょう。それには BaseForm[***, n] と言う関数
を使います。
In[]:= 2^^10101 Shift + ←Out[]:= 21
In[]:= BaseForm[21,2] Shift + ←Out[]:= 10101
(1) 3 + 14 − 5
(2) (6 + 5 × 3) ÷ 3
(3) 323
(4) 10! (5) 4 ÷ 5 (6) 4.0 ÷ 5.0
1 1
2
(7) +
(8) 30.5 (9) 22
3 5
(10) 3^^2001 (11) BaseForm[57,3]
(12) BaseForm[256,2]
(13) BaseForm[256,8]
シンボル計算
3x
の入力は 3 x / (4 x^2) でした。
4x2
ここでは、シンボル計算 (または文字式の計算) を取り上げます。
シンボル (文字) x, y を持つ式を入力しましょう。部分 (In[ ]:= など) も併せて書いてあり
ます.
シンボル x を使った式
In[1]:= 3x -4y + 8x - (5y + 9x - y) Shift + ←Out[1]= 2x - 8y
シンボルはスペースを含まない英数文字の列で、何文字でも良い。
xy は 1 つのシンボルであり、x y は x と y の積を表す。また x2 は 1 つのシンボルであり、
2x は x の 2 倍を表す事などに注意しましょう。
代入演算子と変換規則
シンボル計算 (または文字式の計算) は文字式のまま計算することが特徴ですが、変数に具体的
な数値や別な文字式を代入して計算することがあります。この様な場合に Mathematica では
「代入演算子 (/.)」と「変換規則 (->)」を用います。1 + x2 において、 x を 5 として計算する
場合、x を y − 1 として計算する場合をあげておきましょう。
In[1]:= 1+ x*x /. x->5 Shift + ←Out[1]= 26
In[2]=Clear[x]
In[3]:= 1+ x*x /. x->y-1 Shift + ←Out[3]= 1+(-1+y)^2
値の割り当て
代入演算子を使って特定の文字式に変換規則を適用する方法を述べましたが、特定のシンボル
(文字) x に数値を「割り当てる」こともできます。この場合には = を使って変数 x に数値を
割り当てます。値の割り当ては大域的な約束と認識しますので、不要になったら Clear 関数を
使って, 割り当てを解除します。
¶
割り当て、解除
³
x = *
x に値 (式)* を割り当てる
x=. x に割り当てられた値 (式)* を解除
Clear[x] x に割り当てられた値 (式)* を解除
µ
´
チャレンジ! 次を実行してみましょう。
入力後に 実行の Shift + ←- をしますが、記入を適宜省略します。
¶
実行例
In[1]:= a=x+2.4
Out[1]:= 2.4+x
In[2]:= x=5
Out[2]:= 5
In[3]:= a
Out[3]:= 7.4
In[4]:= Clear[a]
In[5]:= a
Out[5]:= a
µ
³
(x + 2.4 を a とおく)
(x に 5 を割り当てる)
(a の内容を表示)
(a に割り当てられた値をクリア)
(a の内容を表示)
´
多項式 A = −7x + 3x3 + 9 + 2x2 , B = 4x2 − 5 + x3 に対して A + B, A − B を求めましょう。
¶
実行例
³
In[1]:= A=-7x+3x^3+9+2x^2 Shift + ←Out[1]:= -7x+3x^3+9+2x^2
In[2]:= B=4x^2 -5 +x^3 Shift + ←Out[2]:= 4x^2 -5 +x^3
In[3]:= A+B
(A + B の内容を表示)
Out[3]:=
In[4]:= A-B
(A − B の内容を表示)
Out[4]:=
In[5]:= Clear[A]
(A に割り当てられた値をクリア)
In[6]:= A
(A の内容を表示)
Out[6]:= A
µ
´
変数は使い終えたら Clear 関数を使って, 値を消去する習慣をつけておきましょう。
次を実行してみましょう. またそれにかかる 時間も表示させましょう。
In[1]:= Timing[FactorInteger[2^105 -1]]
Shift + ←Out[1]:={3.7 Second, {{7,2},{31,1},{71,1},{127,1},{151,1},{337,1},
{29191,1},{106681,1},{122921,1},{152041,1} }}
この問題は FactorInteger[2^105 -1]] で 2105 − 1 の素因数分解をさせています。結果は以
下のようになります:
72 · 31 · 71 · 127 · 151 · 337 · 29191 · 106681 · 122921 · 152041
課題 m-1
7 進数の『九九の表』(?) を作りましょう.
作成したノートブックを整理して, ファイル名 math-1 としてフォルダ (nyumon2) に保存しま
しょう. 拡張子 .nb が自動的につきます。
課題 m-2
整数 524287 の素因数分解を求めましょう。
整数 2128 + 1 の素因数分解を求めましょう。
整数 264 + 1 の素因数分解を求めましょう。
整数 10! の素因数分解を求めましょう。
n
フェルマー数 Fn = 22 + 1 (n ∈ N) について n = 1, 2, 3, 4 の場合に素数か否かを判定しなさい。
上記の課題で得た結果を整理して, ファイル名 math-2 としてフォルダ (nyumon2) に保存し
ましょう.
bababababababababababababababababababababab
提出課題
EX ー 04.11.08
• 画面横の該当部分のセルを撰び、部分印刷すること
• math-2 に自分の学籍番号、名前を記入し、
次回の決められた時間内に提出してください。
• math-1 の 7 進数の『九九の表』はエクセル等を利用して表を作成して
提出してもよいし、結果を手書きの表でも構いません。
提出期日は 11 月 29 日の決められた時間内に提出してください。