数式処理ソフトウェアMathematicaを使う


情報処理演習インデックスに戻る

表計算ソフトウェアExcelでは数値計算で解を求めることはできても,数学のように数式を使った解を求めることはできない.Mathematicaは数式処理をするソフトウェアである.

スタート・メニュー→プログラムから,Mathematicaを探して起動.

  1. 数の計算(電卓的な使い方)
  2. 起動したら白紙が表示される.ここに,

    3 + 8
    
    と打ち込んで,キーボード右端にあるテンキーのエンターキーを押す(または,シフトキーを押しながらエンターキーを押す).エンターキーだけでは改行されるだけで答が出ないので注意.
    Out[1]= 11
    
    と表示される.以下,入力する文字は太い文字で,コンピュータが返す答は細い文字で示す.Out[1]というのは,起動後の1番目の結果出力ということであり,番号は使う人によって違う場合があるので,以下[ ]内の数字は省略する.また,入力した式にも,対応した番号でIn[1]=という表示が出るが,これも省略する.
    かけ算や引き算も同じ.
    5 * 6
    
    Out[ ]= 30
    
    割り算は少し違う.
    3 / 4
    
            3
    Out[ ]= -
            4
    
    と分数表示される.数値の答がほしい場合には,
    N[3/4]
    
    Out[ ]= 0.75
    
    とする.N[ ]というのは,他にも数値解が欲しいときに使う.
    その他,いくつか例を挙げる.
    Mod[4, 3]
    
    Out[ ]= 1
    
    4を3で割った余りを求めている.
    
    2^4
    
    Out[ ]= 16
    
    累乗には^記号を使う.2の4乗の計算.
    Sqrt[2]
    
    Out[ ]= √2
    
    Sqrtというのは,Square Rootの略でルートを求める関数.関数や命令の最初の文字は大文字.この数値解が欲しいときには,Sqrt[ ]とN[ ]とを組み合わせる.
    N[ Sqrt[2] ]
    
    Out[ ]= 1.41421
    
    もっと詳細な解が欲しいときには,有効数字の桁数を指定することができる.
    N[ Sqrt[2], 10 ]
    
    Out[ ]= 1.414213562
    
    これで,10桁まで求めることができる.100桁でも可能.
    N[ Pi ]
    
    Out[ ]= 3.14159
    
    Piは円周率パイ(π)であり,これも,N[Pi,50]のように50桁でも何桁でも表示させることができる.
    N[ Pi, 50 ]
    
    Out[ ]= 3.1415926535897932384626433832795028841971693993751
    
    Sin[ Pi/6 ]
    
            1
    Out[ ]= -
            2
    
    三角関数は,Sin[ ], Cos[ ], Tan[ ], ArcSin[ ], ArcCos[ ], ArcTan[ ]など.
    FactorInteger[ 24 ]
    
    Out[ ]= {{2,3},{3,1}}
    
    FactorIntegerは素因数分解をする命令.24の素因数分解をして,2の3乗と3の1乗の積であることを表示している.


  3. 式の計算
  4. Expand[ ]:展開してカッコをはずす命令
    Factor[ ]:因数分解
    Simplify[ ]:次数の小さい方からの整頓

    Expand[ (2a+b)2 ]
    
    Out[ ]= 4 a2 + 4 a b + b2
    
    式が展開される.
    Factor[ % ]
    
    Out[ ]= (2a+b)2
    
    %記号は,直前の結果を表す.ここでは展開した結果の(4 a2 + 4 a b + b2)を表している.
    Factor[x^5+x^4+x+1]
    
    Out[ ]= (1+x)(1+x4)
    
    Simplifyは式を整理したい時などに便利.
    Simplify[2x^2+3x+4x^2+4x]
    
    Out[ ]= x (7+6 x)
    



  5. 微分と積分
  6. Dt[3x+2x^2+Sin[x], x]
    
    Out[ ]= 3+4 x+Cos[x]
    
    3x+2x2+Sin[x]をxで微分した結果が表示される. (Dtが常微分,Dが偏微分)
    逆に,
    Integrate[3+4x+Cos[x], x]
    
    Out[ ]= 3x+2x2+Sin[x]
    
    xで積分した元の関数が表示される.ただし,積分定数は表示されない.
     
    定積分をするには,
    Integrate[2+3x^2, {x,0,1}]
    
    Out[ ]= 3
    
    のように,積分範囲(この場合0から1まで)を変数とともに{}の中で定義.


  7. 関数の解
  8. 関数の解を求めるには,Solveという命令を使う.等号には==と,=を2つ続けて使う. f(x)=0という関数をxについて解くには,Solve[f[x]==0, x]とする.

    Solve[x^2+4x+7==0, x]
    
    Out[ ]= {{x→-2-I√3}, {x→-2+I√3}}
    
    これは,xの解が2つあることを示しており,Iは虚数記号.

    一方,NSolveという命令を使えば,

    NSolve[x^2+4x+7==0, x]
    
    Out[ ]= {{x→-2.-1.73205I}, {x→-2.+1.73205I}}
    
    と,数値解を求めることができる.

    連立方程式を解くこともできる.x+y=4と2x+y=9との連立方程式を解くには,解きたい式を{ }でくくり,xとyという解きたい変数も{ }でくくって指定する.

    Solve[ {x+y==4, 2x+y==9}, {x, y} ]
    
    Out[ ]= {{x → 5,y → -1}}
    

    微分方程式の解を求めるには,DSolveを使う.独立変数xに対して,y[x]という関数があり,そのy[x]の微分方程式を解くには,次のようにする.y'[x]というのは,y[x]のxに関する微分を表す.

    DSolve[ y[x]y'[x]==1, y[x], x ]
    
    Out[ ]= {{y[x] → - √2 √(x + C[1])}, {y[x] → √2 √(x + C[1])}}
    

    三角関数の解は,FindRootという命令を使う.三角関数を使ったf(x)=0という式をxについて解くには,初期値x0を与えて,FindRoot[ f(x)==0, {x, x0} ]という形式で解く.

    FindRoot[ Sin[x](1-Cos[x])==1, {x, 1} ]
    
    Out[ ]= {x → 1.5708}
    
    初期値として何を与えるかは,次に説明する方法でグラフを描いて確かめればよい.


  9. グラフ
  10. Plot[ 式, {x, 最小値, 最大値} ]という形式で,グラフを描くことができる.

    Plot[ Sin[x](1-Cos[x])-1, {x, 0, 2} ]
    

    これで先ほどの関数のグラフが描かれる.およそ1.5あたりに解があることがわかるので,先ほどのFindRootで解を求める際の初期値として,1や1.5などを与えればよいことが分かる.

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

    とすれば,Sin[x]とSin[2x]の2本のグラフを,xが0から2πまでの範囲で描く.

    Plot3D[ Sin[x * y], {x,0,4}, {y,0,4} ]
    

    とすれば,Sin[x * y]の3次元グラフを,xとyをそれぞれ0から4までの範囲で描く. 描いたグラフは,マウス右クリックでメニューを表示させてcopyすれば,他のソフト(例えばWord)に貼り付けることができる.ただし,貼り付ける際には,形式を指定して貼り付ける命令を選び,図として貼り付けること.あるいはファイルに保存することも可能.

わからないことがあれば,ヘルプを見る.参考書も多く出版されている.


練習問題

1.連立方程式 x+y+z=10, x-y-z=1, x+y-z=2 を解け.答は数値で.
 
2.関数 2 sin(x) / cos(x)を積分せよ.
 
3.整数 93600 を素因数分解せよ.
 

    課題提出について


上記練習問題を解いて答を送信せよ.

To: <授業中に指定>

cc: 自分のログイン名 <コピーのあて先>

Subject: <授業中に指定>

---------------------------------------

*メールの第1行めは,最初に学生証番号を
半角数字で打ち,半角スペースを1つ入れて,
日本語モードにして漢字氏名を打つ.
名字と名前は続けて書くこと.

---------------------------------------

0000000000-0 建設環太郎

練習問題の答



情報処理演習インデックスに戻る