python求解微分方程_python能解微分方程吗

Sympy

Sympy是一个数学符号库(sym代表了symbol,符号),包括了积分,微分方程等各种数学运算方法,为python提供了强大的数学运算支持。对于图像来说,虽然都是做离散的计算,操作最多的还是numpy里的数组,但实际上,这个库包含了积分微分,三角等最基本的数学运算,可以说是工科最基本的,用起来媲美matlab。

sympy安装

sudo pip install sympy 或者 sudo pip3 install sympy

如果你用anaconda则 conda install sympy

odeint()函数

odeint()函数是scipy库中一个数值求解微分方程的函数

odeint()函数需要至少三个变量,第一个是微分方程函数,第二个是微分方程初值,第三个是微分的自变量。

例子:#y"+a*y'+b*y=0

from scipy.integrate import odeint #使用odeint之前,首先从scipy.integrate中调用它from pylab import *

def deriv(y,t): # 返回值是y和y的导数组成的数组

a = -2.0

b = -0.1

return array([ y[1], a*y[0]+b*y[1] ])

time = linspace(0.0,50.0,1000)

yinit = array([0.0005,0.2]) # 初值

y = odeint(deriv,yinit,time)

figure()

plot(time,y[:,0],label='y') #y[:,0]即返回值的第一列,是y的值。label是为了显示legend用的。

plot(time,y[:,1],label="y'") #y[:,1]即返回值的第二列,是y’的值

xlabel('t')

ylabel('y')

legend()

show()

输出结果如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值