python计算微分函数 python常微分方程

python里怎么样求解微分方程有很多大学生问我,学习python有什么用呢?我说:你至少可以用来解微分方程 , 如下面的例子,就是解决微分方程:
y"+a*y'+b*y=0
代码如下:
[python] view plain copy
#y"+a*y'+b*y=0
from scipy.integrate import odeint
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()
输出结果如下:
python 的scipy 里的 odeint 这个求微分方程的函数怎么用啊scipy.integrate.odeint(func,y0,t,args=(),dfun=none,col_deriv=0,full_output=0,ml=none,mu=none,rtol=none,atol=none,tcrit=none,h0=0.0,hmax=0.0,hmin=0.0,ixpr=0,mxstep=0,mxhnil=0,mxordn=12,mxords=5,printmessg=0)
实际使用中python计算微分函数,还是主要使用前三个参数python计算微分函数,即微分方程的描写函数、初值和需要求解函数值对应的的时间点 。接收数组形式 。这个函数,要求微分方程必须化为标准形式 , 即dy/dt=f(y,t,) 。
fromscipyimportodeint
y=odeint(dy/dt=r*y*(1-y/k),y(0)=0.1,t)
对于微分方程全还给老师python计算微分函数了 , 
常微分方程的解析解(方法归纳)以及基于Python的微分方程数值解算例实现本文归纳常见常微分方程的解析解解法以及基于Python的微分方程数值解算例实现 。
考虑常微分方程的解析解法,我们一般可以将其归纳为如下几类:
这类微分方程可以变形成如下形式:
两边同时积分即可解出函数 , 难点主要在于不定积分,是最简单的微分方程 。
某些方程看似不可分离变量,但是经过换元之后,其实还是可分离变量的,不要被这种方程迷惑 。
形如
的方程叫做一阶线性微分方程,若为0,则方程齐次,否则称为非齐次 。
解法:(直接套公式)
伯努利方程
形如
的方程称为伯努利方程 , 这种方程可以通过以下步骤化为一阶线性微分方程:
令, 方程两边同时乘以,得到
即.
这就将伯努利方程归结为可以套公式的一阶线性微分方程 。
形如
的方程称为二阶常系数微分方程 , 若,则方程称为齐次的,反之称为非齐次的 。以下默认方程是非齐次的 。
求解此类方程分两步:
原方程的解 = 齐次通解 + 非齐次特解
首先假设.用特征方程法,写出对应的特征方程并且求解:
解的情况分为以下三种:
情况一:方程有两个不同的实数解
假设两个实数解分别是, 此时方程的通解是
情况二:方程有一个二重解
假设该解等于,此时方程的通解是
情况三:方程有一对共轭复解
假设这对解是, 此时方程的通解是
对于和特征根的情况,对特解的情况做如下归纳:
形如
的方程叫做高阶常系数微分方程,若,则方程是齐次的,否则是非齐次的 。下面默认方程是非齐次的 。
求解此类方程分两步:
原方程的解 = 齐次通解 + 非齐次特解
考虑带有第三类边界条件的二阶常系数微分方程边值问题
问题一:两点边值问题的解析解
由于此方程是非齐次的,故 求解此类方程分两步:
原方程的解 = 齐次通解 + 非齐次特解
首先假设. 用特征方程法,写出对应的特征方程

推荐阅读