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 rcfrom 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$')运行结果:
运行结果:
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))
求微分方程的符号解
运行结果:
初值问题的解: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))