Personal tools
You are here: Home メンバー 菊地時夫 授業 大学基礎論 SymPy を使ってみる
Document Actions

SymPy を使ってみる

by 菊地時夫 last modified 2008-07-18 16:44

大学(理系)でよく使われるソフト

  • Word/Excel/PowerPoint は(まぁ)あたりまえすぎ
  • Mathematica
    • 数式処理(微分・積分・行列、、、)
  • Matlab
    • データ処理・シミュレーション
  • どれも有料です

無料のソフトもあります

SymPy

  • 数式処理
  • 有理数計算
  • 式の展開・因数分解・代入・方程式
  • 微分・積分
  • 行列・行列式 ... and more

展開・因数分解

  • >>> from sympy import *
    >>> x = Symbol('x')
    >>> y = Symbol('y')
    >>> (x + y)**2
    (x + y)**2
    >>> expand( (x + y)**2 )
    2*x*y + x**2 + y**2
    >>> factor( 2*x*y + x**2 + y**2 )
    (x + y)**2
    

方程式

  • >>> a, b, c = symbols('abc')
    >>> s = a*x**2 + b*x + c
    >>> s
    c + b*x + a*x**2
    >>> solve(s, x)
    [(1/2)/a*(-b + (-4*a*c + b**2)**(1/2)), (1/2)/a*(-b - (-4*a*c + b**2)*(1/2))]
    >>> pprint(solve(s, x))
             _____________          _____________ 
            /           2          /           2  
     -b + \/  -4*a*c + b    -b - \/  -4*a*c + b   
    [---------------------, ---------------------]
              2*a                    2*a          
    

微分・積分

  • >>> diff(sin(x)*cos(x), x)
    cos(x)**2 - sin(x)**2
    >>> integrate(cos(x)**2, x)
    (1/2)*x + (1/2)*cos(x)*sin(x)
    >>> pprint(_)
    x   cos(x)*sin(x)
    - + -------------
    2         2      
    

インストール

インストール(2)

試してみる

  • メニューから Python2.5 -> IDLE を起動する
  • >>> というのが出ているが、これが Python のプロンプト(入力を促す印)。
  • まずは、 from sympy import * を入力
  • 続いて、x, y, z = symbols("xyz")
  • これで、x, y, z を「変数」とする式の操作ができる
  • solve(x**2 -1, x) とか試してみる

記号について

  • * (アスタリスク)1つは 掛け算 (3x はダメ、 3*x はヨシ)
  • ** は べき乗 (x^3 という書き方ではない)
  • / (スラッシュ)は割り算
  • sqrt(x) は 2乗根, x**(Rational(1)/3) で 3乗根

あとは

IPython を使った環境

  • メニューから IPython -> IPython を探して、右クリックで「コピー」
  • デスクトップ(など)に「貼り付け」
  • プロパティを開いて、リンク先の最後の IPython を isympy に変更する
  • 名前も isympy に変更する
  • これをダブルクリックすると、SymPy Wiki などと同じ IPython 環境で実行できる

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: