多个颂歌的python代码

时间:2013-05-25 10:03:38

标签: python numpy ode

我想写第四个订单Adams Bashforth来解决系统问题。以下是我所拥有的:

系统位于以下链接: system we have

def AdamsBashforth4( f, x0, t ):
    """
    Fourth-order Adams-Bashforth method::

    u[n+1] = u[n] + dt/24.*(55.*f(u[n], t[n]) - 59*f(u[n-1], t[n-1]) +
                            37*f(u[n-2], t[n-2]) - 9*f(u[n-3], t[n-3]))

    for constant time step dt.

    RK2 is used as default solver for first steps.
    """
    n = len( t )
    x = numpy.array( [ x0 ] * n )


    for i in xrange( n - 1 ):
        h = t[i+1] - t[i]
        f0 = f( x[i], t[i] )
        k1 = h * f0
        k2 = h * f( x[i] + 0.5 * k1, t[i] + 0.5 * h )
        k3 = h * f( x[i] + 0.5 * k2, t[i] + 0.5 * h )
        k4 = h * f( x[i] + k3, t[i+1] )
        x[i+1] = x[i] + h * ( 55.0 * f0 - 59.0 * k1 + 37.0 * k2 - 9.0 * k3 ) / 24.0

    return x

我是对的吗?

当我执行它时,它会给我以下错误消息(P.S。:使用链接定义系统:链接)

>>>X = AdamsBashforth4(equation, init, t)
  

追踪(最近的呼叫最后):
  文件&#34; <pyshell#21>&#34;,第1行,在<module> X = AdamsBashforth4(equation, init, t)中   文件&#34; <pyshell#20>&#34;,第15行,在AdamsBashforth4 f0 = f( x[:-1], t[:-1] )中   文件&#34; <pyshell#11>&#34;,第2行,在等式x, y = X中   ValueError:要解压缩的值太多

0 个答案:

没有答案