TypeError: объект «модуль» не может быть вызван с помощью rungekutte

у меня есть домашнее задание, и я использовал свой код здесь, чтобы решить симметричное уравнение с использованием метода Рунге-Кутты

import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate as integrate
from matplotlib.legend_handler import HandlerLine2D
#input data
b=0.0529
cd=0.0        
cl=0.0     
cs=0.0
g=9.8
#persamaan diferensial biasa
def F(x,y):
  F=np.zeros(6)
  v=np.sqrt(y[0]**2+y[1]**2+y[2]**2)
  v0=np.sqrt(y[0]**2+y[1]**2)
  F[0]=-b*v*((cd*y[0])+((cl*y[0]*y[2]+cs*v*y[1])/v0))
  F[1]=-b*v*((cd*y[1])+((cl*y[1]*y[2]+cs*v*y[0])/v0))
  F[2]=b*v*(-cd*y[2]+cl*v0)-g
  F[3]=y[0]
  F[4]=y[1]
  F[5]=y[2]
  return F
x = 0.0 #mulai menghitung
xStop = 2.0 #selesai menghitung
y= np.array([10.0,10.0,10.0,0.0,0.0,0.0]) #kondisi awal{y}
h=0.01 #step size
freq = 20
#solusi numerik menggunakan Runge-Kutta orde4
X,Y = integrate(F,x,y,xStop,h)

но это заканчивается так

---> 29 X,Y = integrate(F,x,y,xStop,h)
TypeError: 'module' object is not callable

Как это исправить?


person sia    schedule 04.01.2021    source источник


Ответы (1)


Ваш код импортирует подмодуль integrate из scipy. Это программный модуль, а не вызываемая функция, отсюда и сообщение об ошибке.

Этот модуль также не содержит реализации алгоритма RK4 с фиксированным шагом, его вам придется взять откуда-то еще. Кроме того, дайте ему более конкретное имя, например RK4_integrate.

person Lutz Lehmann    schedule 10.01.2021