python符号积分

参考ailearning

积分和求导的关系如下:

符号运算可以用 sympy 模块完成。

先导入 init_printing 模块方便其显示

from sympy import init_printing
from sympy import symbols, integrate
import sympy

产生 x 和 y 两个符号变量,并进行运算:

x, y = symbols('x y')
z = sympy.sqrt(x**2 + y**2)

赋值,x = 3, y = 4

z = z.subs(x, 3).subs(y, 4) # print 5
print(z)

对sin(x) ** 2进行积分

xita = symbols('x')
y = sympy.sin(xita) ** 2
Y = integrate(y)
print(Y)

得到答案: 

计算Y(pi) - Y(0)

#计算Y(pi) - Y(0)
ans = Y.subs(xita, np.pi) - Y.subs(xita, 0)
print(ans)

Y = integrate(y, (xita, 0, sympy.pi))
print(Y)

显示的是字符表达式,查看具体数值可以使用 evalf() 方法,或者传入 numpy.pi,而不是 sympy.pi

积分如此简单。。。

Y_indef = sympy.Integral(y)
Y_indef

如果想拿到这个表达式,将其向量化即可

xita = symbols('x')
y = sympy.sin(xita) ** 2
Y_raw = lambda x: integrate(y, (xita, 0, x))
Y = np.vectorize(Y_raw)
x = np.linspace(0, 2 * np.pi)
p = plt.plot(x, Y(x))


版权声明:本文为henuyl原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。