2015-07-21 37 views
0

我已经写下面的代码定义,我将在以后使用几个功能:无效的语法差异,奇怪

def dy1_dt(t, y1, y2, y3, y5, y6, i): 
     S=pi*y5**2 
     return -G*m_range[i]/y2**2+(1.0/(2.0*y3)*C_D*rho_range[i]*(y1**2+y2**2*y6**2)*cos(phi)*S 


    def dy2_dt(t, y1, i): 
     return y1   

    def dy3_dt(t, y1, y2, y5, y6, i): 
     S=pi*y5**2 
     return -0.5*C_H*rho_range[i]*(y1**2+y2**2*y6**2)**(1.50)*S/Q_abl 

    def dy4_dt(t, y1, y2, y5, y6, i): 
     return C_D*rho_range[i]/(2*iron_den)*(y1**2+y2**2*y6**2)/y5 


    def dy5_dt(t, y1, y2, y3, y5, y6, i): 
     S=pi*y5**2 
     return -y5/(6.0*y3)*C_H*rho_range[i]*(y1**2+y2**2*y6**2)**(1.50)*S/Q_abl 

    def dy6_dt(t, y1, y2, y3, y6, i): 
     return -C_D*rho_range[i]/(2*y3*y2)*(y1**2+y2**2*y6**2)*sin(phi)*S-((y1*y6)/y2) 

    def dy7_dt(t, y6, i): 
     return y6 

我在“dy2_dt(T线收到错误消息,Y1,我)'说'无效语法'。我对于其中实际包含的无效语法感到不知所措 - 看起来一切顺利。

回答

2

您的代码确实无效,您忘记关闭括号。

如果你扩大你的第一个功能,它提供了:

def dy1_dt(t, y1, y2, y3, y5, y6, i): 
     S=pi*y5**2 
     return (
       -G * 
       m_range[i]/
       y2 ** 
       2 + 
       (
         1.0/
         (2.0 *y3) * 
         C_D * 
         rho_range[i] * 
         (
           y1 ** 
           2 + 
           y2 ** 
           2 * 
           y6 ** 
           2 
         ) * 
         cos(phi) * 
         S