單變數微積分
數值微分
import math
def df(f, x, h=0.00001):
return (f(x+h)-f(x))/h
print('df(sin, 3.14159/4)=', df(math.sin, 3.14159/4))
執行結果:
$ python diff1.py
df(sin, 3.14159/4)= 0.7071037147365898
數值積分
import math
def integrate(f, a, b, h=0.001):
area = 0
x = a
while (x < b):
area += f(x)*h
x += h
return area
print('integrate(sin, 0, Pi)=', integrate(math.sin, 0, 3.14159))
執行
$ python diff1.py
df(sin, 3.14159/4)= 0.7071037147365898
符號微分
from sympy import *
x, y, z = symbols('x y z')
init_printing(use_unicode=True)
print('diff(cos(x), x)=', diff(cos(x), x))
print('diff(exp(x**2), x)=', diff(exp(x**2), x))
執行
$ python sym_diff1.py
diff(cos(x), x)= -sin(x)
diff(exp(x**2), x)= 2*x*exp(x**2)
符號積分
from sympy import *
x, y, z = symbols('x y z')
init_printing(use_unicode=True)
print('integrate(cos(x), x)=', integrate(cos(x), x))
print('integrate(exp(-x), (x, 0, oo))=', integrate(exp(-x), (x, 0, oo)))
expr = Integral(log(x)**2, x)
print('Integral(log(x)**2, x)=', expr.doit())
執行
$ python .\sym_integrate1.py
integrate(cos(x), x)= sin(x)
integrate(exp(-x), (x, 0, oo))= 1
Integral(log(x)**2, x)= x*log(x)**2 - 2*x*log(x) + 2*x