以下用 sympy 库求定积分和不定积分
我刚发现这个论坛没法发图片也没法注释代码。被积分函数是 sqrt ( 1+cos ( x )) 积分上下限是 pi/2 , 0
为了避免改动,#注释行都没删掉。各位老师可以自行删除或忽略。
先求定积分,代码:
import sympy as sym
from sympy import sin,cos,sec,exp,asin,sqrt,pi #必须将特殊的函数和常数导入程序才能运行
x = sym.symbols('x') #定义符号变量
y = sym.symbols('y')
# z = sym.symbols('z')
a = sym.Integral(x**2*cos(x**3)) #求不定积分
#b = sym.Integral(exp(2*y)*(sec(exp(2*y))**2))
#c = sym.Integral((3*x**2+7)/(x**3+7*x-9))
d = sym.Integral(sqrt(1-cos(2*x)),(x,0,pi/2))
#a.doit()
#b.doit() #显示不定积分表达式
#c.doit()
#sqrt(4).evalf()
d.doit()
-------------------------------------------------------输出结果--------------------------------------------------------------------
Integral(sqrt(-cos(2*x) + 1), (x, 0, pi/2))
显示数值结果
import sympy as sym
from sympy import sin,cos,sec,exp,asin,sqrt,pi #必须将特殊的函数和常数导入程序才能运行
x = sym.symbols('x') #定义符号变量
y = sym.symbols('y')
# z = sym.symbols('z')
a = sym.Integral(x**2*cos(x**3)) #求不定积分
#b = sym.Integral(exp(2*y)*(sec(exp(2*y))**2))
#c = sym.Integral((3*x**2+7)/(x**3+7*x-9))
d = sym.Integral(sqrt(1-cos(2*x)),(x,0,pi/2))
#a.doit()
#b.doit() #显示不定积分表达式
#c.doit()
#sqrt(4).evalf()
d.evalf()
-------------------------------------------------------输出结果--------------------------------------------------------------------
1.41421356237310
我查过.doit 代表输出解析解。那么为什么第一次用.doit 没有输出 sqrt(2)呢?
求不定积分
import sympy as sym
from sympy import sin,cos,sec,exp,asin,sqrt,pi #必须将特殊的函数和常数导入程序才能运行
x = sym.symbols('x') #定义符号变量
y = sym.symbols('y')
# z = sym.symbols('z')
a = sym.Integral(x**2*cos(x**3)) #求不定积分
#b = sym.Integral(exp(2*y)*(sec(exp(2*y))**2))
#c = sym.Integral((3*x**2+7)/(x**3+7*x-9))
d = sym.Integral(sqrt(1-cos(2*x)))
#a.doit()
#b.doit() #显示不定积分表达式
#c.doit()
#sqrt(4).evalf()
d.doit()
-------------------------------------------------------输出结果--------------------------------------------------------------------
Integral(sqrt(-cos(2*x) + 1), x)
难道 d 这个不定积分。没有解析解?怎么给这么一个结果?
我刚发现这个论坛没法发图片也没法注释代码。被积分函数是 sqrt ( 1+cos ( x )) 积分上下限是 pi/2 , 0
为了避免改动,#注释行都没删掉。各位老师可以自行删除或忽略。
先求定积分,代码:
import sympy as sym
from sympy import sin,cos,sec,exp,asin,sqrt,pi #必须将特殊的函数和常数导入程序才能运行
x = sym.symbols('x') #定义符号变量
y = sym.symbols('y')
# z = sym.symbols('z')
a = sym.Integral(x**2*cos(x**3)) #求不定积分
#b = sym.Integral(exp(2*y)*(sec(exp(2*y))**2))
#c = sym.Integral((3*x**2+7)/(x**3+7*x-9))
d = sym.Integral(sqrt(1-cos(2*x)),(x,0,pi/2))
#a.doit()
#b.doit() #显示不定积分表达式
#c.doit()
#sqrt(4).evalf()
d.doit()
-------------------------------------------------------输出结果--------------------------------------------------------------------
Integral(sqrt(-cos(2*x) + 1), (x, 0, pi/2))
显示数值结果
import sympy as sym
from sympy import sin,cos,sec,exp,asin,sqrt,pi #必须将特殊的函数和常数导入程序才能运行
x = sym.symbols('x') #定义符号变量
y = sym.symbols('y')
# z = sym.symbols('z')
a = sym.Integral(x**2*cos(x**3)) #求不定积分
#b = sym.Integral(exp(2*y)*(sec(exp(2*y))**2))
#c = sym.Integral((3*x**2+7)/(x**3+7*x-9))
d = sym.Integral(sqrt(1-cos(2*x)),(x,0,pi/2))
#a.doit()
#b.doit() #显示不定积分表达式
#c.doit()
#sqrt(4).evalf()
d.evalf()
-------------------------------------------------------输出结果--------------------------------------------------------------------
1.41421356237310
我查过.doit 代表输出解析解。那么为什么第一次用.doit 没有输出 sqrt(2)呢?
求不定积分
import sympy as sym
from sympy import sin,cos,sec,exp,asin,sqrt,pi #必须将特殊的函数和常数导入程序才能运行
x = sym.symbols('x') #定义符号变量
y = sym.symbols('y')
# z = sym.symbols('z')
a = sym.Integral(x**2*cos(x**3)) #求不定积分
#b = sym.Integral(exp(2*y)*(sec(exp(2*y))**2))
#c = sym.Integral((3*x**2+7)/(x**3+7*x-9))
d = sym.Integral(sqrt(1-cos(2*x)))
#a.doit()
#b.doit() #显示不定积分表达式
#c.doit()
#sqrt(4).evalf()
d.doit()
-------------------------------------------------------输出结果--------------------------------------------------------------------
Integral(sqrt(-cos(2*x) + 1), x)
难道 d 这个不定积分。没有解析解?怎么给这么一个结果?