陳鍾誠

Version 1.0

單變數微積分

數值微分

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