1.求极限

#高等数学求极限
from sympy import *
x=symbols('x')
print(limit(sin(x)/x,x,0))
print(limit(pow(1+1/x,x),x,oo)) #小写字母oo代表正无穷
运行结果:
1
E
2.求导

from sympy import *
x,y=symbols('x y') #构造符号变量
z=sin(x)+x**2*exp(y) #构造符号表达式
print("关于x的二阶偏导数:",diff(z,x,2))
print("关于y的一阶偏导数:",diff(z,y,1))
运行结果:
关于x的二阶偏导数: 2exp(y) - sin(x)
关于y的一阶偏导数: x**2exp(y)
3.级数求和

#级数求和
from sympy import *
k,n=symbols('k n')
print(summation(k**2,(k,1,n)))
print(factor(summation(k**2,(k,1,n)))) #把所得结果因式分解
print(summation(1/k**2,(k,1,oo)))
运行结果:

4,泰勒展开
#泰勒展开
#写出sinx在0点处的3,5,7阶泰勒展开,
#在同一个图形界面画出sinx及上述各阶泰勒展开式在[0,2]的图形
from pylab import rc
from sympy import *
rc('font',size=16)
#rc('text',usetex=True)
x=symbols('x') #构造符号变量
y=sin(x) #构造符号表达式
for k in range(3,8,2):print(series(y,x,0,k)) #3,5,7
#for k in range(3,8,2):print(y.series(x,0,k))
plot(y,series(y,x,0,3).removeO(),series(y,x,0,5).removeO(),
series(y,x,0,7).removeO(),(x,0,2),xlabel='$x$',ylabel='$y$')
运行结果:


- 不定积分和定积分

#不定积分和定积分
from sympy import *
#from sympy import integrate,symbols,sin,pi,oo
x=symbols('x')
print(integrate(sin(2*x),(x,0,pi)))
print(integrate(sin(x)/x,(x,0,oo)))
运行结果:
0
pi/2
6.求代数方程的符号解

#求代数方程的符号解
from sympy import *
x,y=symbols('x y')
print(solve(x**3-1,x))
print(solve((x-2)**2*(x-1)**3,x))
print(roots((x-2)**2*(x-1)**3,x)) #得到根的重数信息 {解:重数}
'''
x^3=1
解:原式=(x-1)(x^2+x+1)=0
x-1=0 =>x=1
x^2+x+1=0(由求根公式)=>x=(-1±√3i)/2
'''
运行结果:
[1, -1/2 - sqrt(3)*I/2, -1/2 + sqrt(3)*I/2]
[1, 2]
{2: 2, 1: 3}
7.代数方程组

from sympy import *
#from sympy import solve 3#等价
from sympy.abc import x,y
#x,y=symbols('x y') #等价
s=solve([x**2+y**2-1,x-y],[x,y])
print("方程组的解:",s)
运行结果:
方程组的解: [(-sqrt(2)/2, -sqrt(2)/2), (sqrt(2)/2, sqrt(2)/2)]
8.求驻点以及最大值

from sympy import *
x=symbols('x') #符号变量
y=2*x**3-5*x**2+x #符号表达式
x0=solve(diff(y,x),x) #求驻点
print("驻点的精确解为:",x0)
print("驻点的浮点数表示为:",[x0[i].n() for i in range(len(x0))])
y0=[y.subs(x,0),y.subs(x,1),y.subs(x,x0[0]).n()] #代入两个端点以及应该驻点的数值
print("这三个数分别为:",y0)
print('\n')
print("最大值为:",max(y0))
运行结果:
驻点的精确解为: [5/6 - sqrt(19)/6, sqrt(19)/6 + 5/6]
驻点的浮点数表示为: [0.106850176076554, 1.55981649059011]
这三个数分别为: [0, -2, 0.0522051838383851]
最大值为: 0.0522051838383851
9.求微分方程通解

#求微分方程(方程组)的符号解
from sympy import *
x=symbols('x')
y=symbols('y',cls=Function)
eq1=diff(y(x),x,2)-5*diff(y(x),x,1)+6*y(x)
eq2=diff(y(x),x,2)-5*diff(y(x),x,1)+6*y(x)-x*exp(2*x)
print("齐次方程的解",dsolve(eq1,y(x)))
print("非齐次方程的解",dsolve(eq2,y(x)))
运行结果:
齐次方程的解 Eq(y(x), (C1 + C2*exp(x))exp(2x))
非齐次方程的解 Eq(y(x), (C1 + C2*exp(x) - x**2/2 - x)exp(2x))
求微分方程的符号解
from sympy import *
x=symbols('x')
y=symbols('y',cls=Function)
eq1=diff(y(x),x,2)-5*diff(y(x),x)+6*y(x)
eq2=diff(y(x),x,2)-5*diff(y(x),x)+6*y(x)-x*exp(2*x)
print("初值问题的解:{}".format(dsolve(eq1,y(x),
ics={y(0):1,diff(y(x),x).subs(x,0):0})))
y2=dsolve(eq2,y(x),ics={y(0):1,y(2):0})
print("边值问题的解:{}".format(y2))
运行结果:
初值问题的解:Eq(y(x), (3 - 2*exp(x))exp(2x))
边值问题的解:Eq(y(x), (-x**2/2 - x + 3*exp(x)/(-1 + exp(2)) + (-4 + exp(2))/(-1 + exp(2)))exp(2x))
这篇博客介绍了Python在高等数学中的应用,包括求极限、求导、级数求和、泰勒展开、不定积分和定积分、代数方程的符号解、方程组求解、寻找驻点及最大值、以及微分方程的通解和特定解。通过具体的运行结果展示了Python在这些数学问题上的强大功能。


3025

被折叠的 条评论
为什么被折叠?



