DOP853 entegrasyon yöntemi eksik (SciPy)
Aug 18 2020
SciPy tarafından sağlanan, DOP853'ün web sayfasına göre dahil edilmesi gereken bazı entegrasyon yöntemlerini kontrol ediyordum (https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html#scipy.integrate.solve_ivp).
Ancak, diğerlerinden farklı olarak DOP853 çalışmaz ve aşağıdaki mesaj görünür:
~/anaconda3/lib/python3.6/site-packages/scipy/integrate/_ivp/ivp.py in solve_ivp(fun, t_span, y0, method, t_eval, dense_output, events, vectorized, **options)
425 inspect.isclass(method) and issubclass(method, OdeSolver)):
426 raise ValueError("`method` must be one of {} or OdeSolver class."
--> 427 .format(METHODS))
428
429 t0, tf = float(t_span[0]), float(t_span[1])
ValueError: `method` must be one of {'RK23': <class 'scipy.integrate._ivp.rk.RK23'>, 'RK45': <class 'scipy.integrate._ivp.rk.RK45'>, 'Radau': <class 'scipy.integrate._ivp.radau.Radau'>, 'BDF': <class 'scipy.integrate._ivp.bdf.BDF'>, 'LSODA': <class 'scipy.integrate._ivp.lsoda.LSODA'>} or OdeSolver class.
Bu yöntemi nasıl kullanabileceğimi veya nerede bulabileceğimi biliyor musunuz? Diferansiyel denklemlerin yüksek hassasiyetle çözülmesi için önerildiği ve karmaşık alanda uygulanabildiği için özellikle ihtiyacım var.
Yanıtlar
1 Alex Aug 18 2020 at 17:39
Hangi scipy sürümünü kullandığınızı kontrol ederim. DOP853 nispeten yakın zamanda tanıtıldı 1.4.0 yılında .
1.4.1'de, DOP853'ün uygun şekilde listelendiğini görüyorum.
>>> import scipy
>>> scipy.__version__
'1.4.1'
>>> from scipy.integrate import solve_ivp
>>> def exponential_decay(t, y): return -0.5 * y
>>> sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8], "DOP853")
>>> print(sol.t)
[ 0. 0.25860956 2.84470518 7.28558373 10. ]
>>> sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8], "Invalid")
Traceback (most recent call last):
File "<pyshell#37>", line 1, in <module>
sol = solve_ivp(exponential_decay, [0, 10], [2, 4, 8], "Invalid")
File "C:\WPy64-3771\python-3.7.7.amd64\lib\site-packages\scipy\integrate\_ivp\ivp.py", line 507, in solve_ivp
.format(METHODS))
ValueError: `method` must be one of {'RK23': <class 'scipy.integrate._ivp.rk.RK23'>, 'RK45': <class 'scipy.integrate._ivp.rk.RK45'>, 'DOP853': <class 'scipy.integrate._ivp.rk.DOP853'>, 'Radau': <class 'scipy.integrate._ivp.radau.Radau'>, 'BDF': <class 'scipy.integrate._ivp.bdf.BDF'>, 'LSODA': <class 'scipy.integrate._ivp.lsoda.LSODA'>} or OdeSolver class.
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı