• 検索結果がありません。

untitled

N/A
N/A
Protected

Academic year: 2021

シェア "untitled"

Copied!
44
0
0

読み込み中.... (全文を見る)

全文

(1)

1

COM実験第6回

飯島 正([email protected])

(2)

2

1. 数式処理言語Mathematica入門

1.1 はじめに

1.2 数式の入力と計算

1.3 計算結果の可視化

1.4 記号処理と数値計算(数値近似と精度指定)

(3)

3

(4)

4

Mathematicaを勉強する理由

• 数式処理とは?

– 記号を含む数式の代数的な展開や操作⇒記号計算

– 電卓のように計算するもの        ⇒数値計算

– 例としては,微積分がわかりやすい

• 記号処理と数値計算

– 強力な可視化(visualization)機能をもった,

計算の道具,プログラミング言語として...

– 単に計算の道具,プログラミング言語として,

Mathematicaを勉強するだけでなく,

記号処理と数値計算のそれぞれの得失を

理解して欲しい

(5)

5

Mathematicaの起動と終了

アイコンをダブル・クリック

Windows

[ファイル]メニューから

[終了]を選択

書き込み可能な

Mathematicaノートブックを

ダブル・クリック

Quitコマンド

mathコマンド

UNIX

終了

起動

注意:起動には少し時間がかかる

Mathematica.exe

(6)

6

Mathematicaの画面

ノートブック

パレット

(7)

7

授業用にノートブックの字を大きくする

• [編集]メニュー

   ⇒[環境設定]

      ⇒ [書式設定]

         ⇒ [フォント設定]

      ⇒ [サイズ]

(8)

8

参考書(1)

10分間チュートリアル

(Mathematica4.2に付属)

0

はやわかりMathematica(第二版)

Mathematica

  その無限の可能性・基礎編

Mathematicaによる工科系数学

書名

共立出版

実教出版

共立出版

出版社

2000

榊原進:著

3

2001

小島,川瀬,松本,武沢,

大橋:共著

2

1996

ロバートソン:著

(下地・永田・菱田:共訳)

1

出版年

著訳者名

今回の内容は,文献[1]と[2]に負うところが多い

1994

近代科学社

Mathematicaプログラミング

R.J. ゲイロード,他:共著

(榊原進:訳)

4

2002

ピアソンエデュ

ケーション

理工系の教養としての情報科学

―Mathematicaによる入門(新装版)

R. E.. メーダー:著

(時田節:訳)

5

プログラミングMATHEMATICA

―バージョン3&4対応

書名

ピアソンエデュ

ケーション

出版社

1999

R. E.. メーダー:著

(時田節:訳)

6

出版年

著訳者名

(9)

9

参考書(2)

〈基礎プログラム編〉

〈グラフィックス編〉

〈数学編〉

1995

森北出版

例題で学ぶMathematica

白石修二

7

1996

8

書名

出版社

2000

9

出版年

著訳者名

Mathematica関連の和書は(絶版書も含めて)約100冊出版されている

1999

牧野書店

Mathematicaで楽しむ数理科学

山田 修司

10

書名

出版社

出版年

著訳者名

数学・物理・複雑系,電気工学,画像処理,金融工学など,

個々の応用分野向けの書籍も多数出版されている

(10)

10

文字表記上の注意(1)

中括弧

角括弧

丸括弧

{ と }

[ と ]

( と )

小文字で始まる

大文字で始まる

{1, 2, 3}

リスト

(1 + 2) * 100

式の中の括弧,

優先順位の制御

括弧

Sin[0]

Cos[Pi]

関数の引数

f[x_] := x / (x^2 + 1)

f[2]

利用者定義関数

Sin[0]

組み込み関数

大文字と

小文字の

区別

関数

演算

文献[1]より

(11)

11

文字表記上の注意(2)

方程式や,右辺と左辺が等しいことを判定する

際につかう,数学で使う等号

==

等値性判定

参照時に評価する.内容の変化する変数が使わ

れている関数の定義などに使われる.

:=

遅延代入(遅延定義)

Set[〈左辺〉, 〈右辺〉]

Equal[〈左辺〉, 〈右辺〉]

SetDelayed[〈左辺〉, 〈右辺〉]

右辺の内容を左辺に代入する,普通の代入

=

代入(即時定義)

関数

演算

文献[2]より

(12)

12

参考:遅延代入(遅延定義)

• a=Table[Ramdom[], {3}]

• b:=Table[Ramdom[], {3}]

文献[2]より

呼ぶたびに値が異なる

(13)

13

オンライン・ヘルプ(1)

?? Factor

?? 〈関数名〉

? Factor

? 〈関数名〉

関数のヘルプ

操作

機能

Factor

@

poly

D

は,整数について多項式を因数分解する.

Factor

@

poly,

Modulus

- >

p

D

は,素数

p

を法として多項式を因数分解する.

Factor

@

poly, Extension

- >

8

a1, a2, ...

<

D

は,代数的数

ai

の有理的組合せからなる係数を使い,多項式を因数分解„

する.

詳細

Attributes

@

Factor

D

=

8

Listable, Protected

<

Options

@

Factor

D

=

8

Extension

®

None,

GaussianIntegers

®

False, Modulus

®

0, Trig

®

False

<

?

(14)

14

オンライン・ヘルプ(2)

[ヘルプ]メニューで[ヘルプ]項目を選択する

ヘルプ・ブラウザ

操作

機能

(15)

15

(16)

16

式の入力

(3 + 5)^2

式を入力したらshift-Return

Windows

(3 + 5)^2

式を入力したらReturn

UNIX

操作

Return

shift-Return

※^ はべき乗

ノートブック

shift-Return

文献[1]より

(17)

17

式の実行(評価)

Expand[(x+y)^2]

⇒ x

2

+ 2 x y +y

2

数式処理(数式の変形…

簡約化や展開,因数分解)

(3 + 5)^2

⇒ 64

数値計算

記号の含まれて

いない式

x=3; y=4; (x+y)^2

⇒ 49

記号に値が

代入されると計算

変数への代入

(x+y)^2

⇒ (x+y)

2

式の入力(入力するだけ

で,計算はしない)

記号の含まれて

いる式

shift-Return

shift-Return

shift-Return

shift-Return

電卓のように使える

•数値計算

•数式処理(記号計算,記号処理)

(18)

18

以前に入力した式(計算結果)の参照

In[1]:= (x+y)^2

Out[1]= (x+y)

2

In[2]:= x=3;

In[3]:= y=4;

In[4]:= %1

out[4]= 49

Out[3]の結果が参照される

%3

数式番号での参照

%%

二つ前の式の参照

(x+y)^2

Expand[%]

%

直前の式の参照

記号

演算

;をつけると出力を表示しない

(19)

19

基本的な演算子

x ^ 3

^

べき乗

x * y

*

x / y

/

除算

x y

空白

乗算

x – y

減算

x + y

+

加算

関数

演算

•(x+y)^2

文献[1]より

(20)

20

数式の操作(展開と因数分解)

Simplify[〈式〉]

簡約化

% - 4 x y

Factor[%]

Forctor[〈式〉]

因数分解

Expand[%]

Expand[〈式〉]

展開

関数

演算

•Expand[%]

•% - 4 x y

•Factor[%]

Expand[%]

Factor[%]

因数分解

展開

文献[1]より

(21)

21

関数の定義

X_

引数

f[x_] := x / (x^2 + 1)

:=

式の定義

関数

演算

•f[x_] := x / (x^2 + 1)

文献[1]より

(22)

22

関数の微分

D[f[x], x]

D[〈式〉, 〈変数〉]

(偏)微分

関数

演算

•D[f[x], x]

文献[1]より

(23)

23

積分と数値計算(1)

Integrate[f[x], {x, 0, 4}]

Integrate[〈式〉,〈積分区間〉]

定積分

Integrate[f[x], x]

Integrate[〈式〉,〈変数〉]

不定積分

関数

演算

•Integrate[f[x], x]

•Integrate[f[x], {x, 0, 4}]

文献[1]より

(24)

24

積分と数値計算(2)

(※実行時間が速い、誤差は心配)

N[%%]

N[〈式〉] (※ 〈式〉は積分に限らない)

数値評価

NIntegrate[f[x], {x, 0, 4}]

NIntegrate[〈式〉,〈積分区間〉]

数値積分

関数

演算

•NIntegrate[f[x], {x, 0, 4}]

•N[%%]

Integrate[〈式〉,〈積分区間〉]

Integrate[f[x], {x, 0, 4}]

文献[1]より

(25)

25

基本入力パレットからの数式入力

• パレット内のボタンを押して,

プレースホルダーを埋める

Tabキーでプレースホルダー

の移動

矢印キーも使える

(26)

26

(27)

27

可視化:2次元グラフィックス

( ※Pi は π を表す定数)

Plot[Cos[x], {x, Pi/2, 5 Pi/2}]

Plot[Sin[x], {x, 0, 2 Pi}]

Plot[〈式〉,〈区間〉]

2次元グラフ

関数

演算

•Plot[Sin[x], {x, 0, 2 Pi}]

•Plot[Cos[x], {x, Pi/2, 5 Pi/2}]

(28)

28

可視化:2次元グラフィックス

Show[%11, %12]

Show[〈式〉, 〈式〉,...]

計算済みの結果表示

関数

演算

•Show[%11, %12]

文献[1]より

(29)

29

可視化:グラフのオプション

Show[atanplot, Axes -> False, 

    Boxed -> False]

Axesオプション

Boxedオプション

軸や箱の消去

Show[atanplot, ViewPoint -> {2.8, 0, 2}]

ViewPointオプション

視点の指定

atanplot = Plot3D[1/(1 – ArcTan[x y]), {x, 0, 4},

      {y, 0, 4}, PlotPoints -> 35]

関数

演算

0 1 2 3 40 1 2 3 4 -10 -5 0 5 10 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 -10 -5 0 5 10 -10 -5 0 5 10

atanplot = Plot3D[1/(1 - ArcTan[x y]), {x, 0, 4}, {y, 0, 4},

PlotPoints -> 35]

(30)

30

可視化:3次元グラフィックス

Show[ContourGraphics[%15]]

ContourGraphics[〈式〉]

等高線表示

Show[DensityGraphics[%14]]

DensityGraphics[〈式〉]

密度をプロット

デフォールト値は15×15

PlotPointsオプション

サンプル点の

個数を指定

Plot3D[Sin[y/2], {x, 0, 4 Pi}, {y, 0, 4 Pi},

PlotPoints -> 30]

Plot3D[Cos[x] Sin[y], {x, 0, 4 Pi}, {y, 0, 4 Pi},

PlotPoints -> 30]

Plot3D[〈式〉,

〈変数の範囲〉,...,

〈オプション〉,...]

3次元グラフ

関数

演算

(31)

31

3次元グラフィックス:例

• Plot3D[Cos[x] Sin[y], {x, 0, 4 Pi}, {y, 0, 4 Pi},

PlotPoints -> 30]

(32)

32

3次元グラフィックス:密度グラフと等高線グラフ

• Show[DensityGraphics[%14]]

• Show[ContourGraphics[%15]]

(33)

33

3次元グラフ:複数のグラフを同時表示

• Plot3D[Sin[y/2], {x, 0, 4 Pi}, {y, 0, 4 Pi}, PlotPoints -> 30]

• Show[%14, %17]

(34)

34

媒介変数表示:2次元グラフ(1)

• ParametricPlot[{Sin[2 t], Cos[3 t]}, {t, 0, 2 Pi}]

(35)

35

媒介変数表示:2次元グラフ(2)

文献[2]より

ParametricPlot[

{Sin[4 t], Cos[3 t]},

{t, 0, 2 Pi},

AspectRatio -> Automatic]

(36)

36

媒介変数表示:3次元グラフ

文献[2]より

ParametricPlot3D[

{(2 - s) Cos[t], (2 - s) Sin[t], s},

{s, 0, 2}, {t, 0, 2π}]

(37)

37

グラフパラメータ:グラフの色

文献[2]より

Plot[{x, x^2}, {x, -1, 1},

AspectRatio -> Automatic,

PlotRange -> {-1, 1},

PlotStyle ->

    { RGBColor[0, 1, 0],

RGBColor[1, 0, 0] }]

(38)

38

グラフパラメータ:点線

文献[2]より

Plot[x^Sin[x], {x, 0, 10},

PlotStyle ->  

 {Thickness[0.01],

 Dashing[{0.05, 0.03}]}]

(39)

39

グラフパラメータ:SurfaceGraphics

Plot3D[Sin[x

2

+ y

2

],

{x, -π, π},

{y, -π, π},

Mesh -> False,

PlotPoints -> 50,

Axes -> False,

Boxed -> False]

文献[2]より

(40)

40

1.4 記号処理と数値計算

(数値近似と精度指定)

(41)

41

式の実行(評価)

Expand[(x+y)^2]

⇒ x

2

+ 2 x y +y

2

数式処理(数式の変形…

簡約化や展開,因数分解)

(3 + 5)^2

⇒ 64

数値計算

記号の含まれて

いない式

x=3; y=4; (x+y)^2

⇒ 49

記号に値が

代入されると計算

変数への代入

(x+y)^2

⇒ (x+y)

2

式の入力(入力するだけ

で,計算はしない)

記号の含まれて

いる式

shift-Return

shift-Return

shift-Return

shift-Return

電卓のように使える

•数値計算

•数式処理(記号計算,記号処理)

(42)

42

記号処理と数値計算(数値近似と精度指定)

• 19^50

• 19. ^50

小数点を付けると

数値近似

長精度数値計算

文献[0]より

(43)

43

記号処理と数値計算(数値近似と精度指定)

• 125!

• N[%]

数値近似

長精度数値計算

文献[0]より

(44)

44

記号処理と数値計算(数値近似と精度指定)

• Eは自然対数の底eのこと

• N[E, 60]...精度(桁数)を指定できる

参照

関連したドキュメント

婚・子育て世代が将来にわたる展望を描ける 環境をつくる」、「多様化する子育て家庭の

項目 MAP-19-01vx.xx AL- ( Ⅱシリーズ初期データ編集ソフト) サポート OS ・ Microsoft Windows 7 32 ( ビット版). ・ Microsoft Windows Vista x86

出版社 教科書名 該当ページ 備考(海洋に関連する用語の記載) 相当領域(学習課題) 学習項目 2-4 海・漁港・船舶・鮨屋のイラスト A 生活・健康・安全 教育. 学校のまわり

編﹁新しき命﹂の最後の一節である︒この作品は弥生子が次男︵茂吉

■使い方 以下の5つのパターンから、自施設で届け出る症例に適したものについて、電子届 出票作成の参考にしてください。

フロートの中に電極 と水銀が納められてい る。通常時(上記イメー ジ図の上側のように垂 直に近い状態)では、水

脅威検出 悪意のある操作や不正な動作を継続的にモニタリングす る脅威検出サービスを導入しています。アカウント侵害の

という熟語が取り上げられています。 26 ページ