遇到一个物理问题,要求解如下微分方程组:
d2xdt2=wdydt
d2ydt2=−wdxdt
经参考相关资料后得知,需要用到scipy包中的odeint函数。
odeint函数使用方法如下:
def sol(y,t,v0,w0):
return (w0*y[1]+v0,-w0*y[0])
y = odeint(sol,(0,0),t,args = (10,10))
其中t是自变量,需要给出其取值范围;sol用来描述微分方程;得到的y是一个numpy矩阵,每一行对应一个因变量在自变量范围的值。
odeint所求解的方程必须是如下形式:
dydx=f(x,y)
因此,在求解上面的方程组中,实际上是求出了导数,还需要进行积分得到真实的值。
参考资料:
Scipy科学计算: http://blog.chinaunix.net/uid-21633169-id-4437868.html
scipy下载(win32 python2.7) http://download.csdn.net/download/u010156024/9302697