Sympy

Sympy

Sympy

Python ライブラリーの一つで,代数演算をサポート

Sympy 公式サイト

数II・B, 数検2級レベルの数式

数III, 数検準1級レベルの数式

演習:微分

演習:極限

離散事象シミュレーションライブラリの SimPy と名前が似ているが別物。

Jupyter notebook と組み合わせて使用すると,ブラウザを電子ノートとしてその上で式展開などができる。

Sympy を使うための用語(J塾独自のもの)

サンプル動作の前に,事前動作するもの,設定&確認プログラム

matplotlib, numpy も使用

from sympy import *
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
var("a:z") # 一文字変数は,記号変数とする
rt = sqrt
init_printing()
Integral(x**2+x, x), rt(2)


使い方

サンプル動作の前のプログラムを実行しておく

matplotlib, numpy も使用

subs代入

siki = x + y * z
siki.subs([(x, 1), (y, 2), (z, -3)])

Rational( , ) 分数

b = Rational(2,5)
print (b) # 2/5
b = b * 1.0
print (b) # 0.400000000000000

expand( ) 展開する

a, b, c = symbols('a b c')
siki = (a+b)*(a+b)
expand(siki)

factor( ) 因数分解をする

siki = x**2 -2*x*y + y**2
factor(siki)

cancel( ) 約分する

siki = (x**2 - y**2) / (x - y)
cancel(siki)

π

π = pi
r = symbols('r')
S = 2*π*r**2

plot(式) グラフを描く

plot(x**3)

slove( ) 方程式を解く

方程式は, = 0 の形としておく。

ans = solve(x**2 - 2*x + 1, x)
ans
連立方程式を解く
ans = solve ([x**2 - y, 2*x - y], [x, y]) 
plot(x**2, 2*x)
print(ans)

%matplotlib

ipywidgets (値変化を対話型で動作させる)

Azure Notebooks で動作可能

from ipywidgets import interact
@interact(n=5)
def f(n):
    return n

三角関数グラフ表示

xa = np.linspace(0, 10, 100)
print(xa)
plt.plot(xa, np.sin(xa))
plt.plot(xa, np.cos(xa))

数II, 数検2級レベル

三角関数加法定理

expand(sin(x+y), trig=True)

Power( ) 累乗

pw = Pow(x, 10)
pw

log () 対数

log(x * x + 1)

sum( ) Σ

Sx = Sum(n**x, (n, 1, k))
Sx

diff 微分

演習:微分

fx = x**3 + x**2 + 1
dfx = diff(fx)
dfx

数列

数III, 数検準1級レベル

limit( ) 極限を計算,表示する

fx = 3/x
ans = limit(fx, x, oo) # oo(オー,オー) は,∞ を表す)
ex = Limit(fx, x, oo)  # Limit の L は,大文字
print (ans) # 計算する
ex          # 式をきれいに表示
fx = sin(5*x) / sin(2*x) # 関数の式
ans = limit(fx, x, 0) # 極限の計算式
ex = Limit(fx, x, 0) # 極限の表示式
print(ans)
ex

無限級数を計算,表示する

siki = 1/((2*k-1)*(2*k+1)) # k の式
sx = Sum(siki,(k, 1, n)) # Σ
ans = limit(sx, n, oo) # 無限級数の計算式
ex = Limit(sx, n, oo) # 無限級数の表示式
print(ans)
ex

その他,無限級数問題?