14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

豊田工業大学KaggleサークルAdvent Calendar 2021

Day 9

Sympyによるシンボリック変数での微分積分

Last updated at Posted at 2021-12-08

#sympyの導入

import sympy as sym

sympyをこれで導入します。
うまくいかない場合は、

!pip install sympy
import sympy as sym

としてみましょう。
#シンボリック変数の導入
Scipyのモジュールでは、シンボリック変数というものを用いて計算を行います。なので、まず、シンボリック変数を導入します。
例えば、x、y、zの三変数を用いたいときは、

x , y , z = sym.symbols('x y z')

という風にコードを書きます。
これをやらないとエラーが起こるので注意しましょう。

特殊な数字を扱うこともできます。

ensyuritu = sym.S.Pi
sizentaisu = sym.S.Exp1
kyosu = sym.S.ImaginaryUnit
mugen = sym.oo

#微分
sympyを用いれば、数式の微分をすることができます。
今回は、x2の微分をしてみましょう。
次のコードを入れて実行してみましょう。

sym.diff(x**2,x)

結果は、2x と出力されます。

複数の変数で微分することもできます。今度はx5y2z4をx,y,zでそれぞれ一回ずつ微分してみよう。

sym.diff(x**5*Y**2*z**4, x, y, z)

結果は、40x4yz3 と出力されます。

同じ変数で複数回微分することもできます。
x4を4回微分してみましょう。

sym.diff(x**4, x, 4)

24と出力されるはずです。

これらを組み合わせることで様々な微分を計算をすることができます。ぜひ、いろんな数式を入れてみてください。

#積分
sympyを用いれば、不定積分をすることができます。
7y/xを積分してみましょう。

sym.integrate(7y/x,x)

結果は、7ylog(x) と出力されます。

定積分をすることもできます。
1/x2を1から無限大まで定積分してみましょう。

sym.integrate(1/x**2, (x, 1, sym.oo))

結果は、1と出力されます。

これで広義積分も求められます。

積分は答えが求まるとは限りません。
次の式を計算してみましょう。

\int\frac{x}{sinx}dx
sym.integrate(x/sym.sin(x))

そのまま式の状態で出力されるはずです。

#最後に
sympyを使っていろんな計算をしてみよう。


補足:プログラムはgoogle colaboratoryで実行しました。

14
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?