首页 > 编程知识 正文

python中的数学符号,python来表达数学式

时间:2023-05-03 13:37:08 阅读:240576 作者:1922

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$')

运行结果:

不定积分和定积分

#不定积分和定积分from sympy import *#from sympy import integrate,symbols,sin,pi,oox=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))

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。