【问题标题】:Python odeint, parameterPython odeint,参数
【发布时间】:2016-05-08 17:51:41
【问题描述】:

我正在尝试求解一个简单的方程:python 中的dM/dr = r*p(r)

我有p 的值在r 的某些值:

p(0)=1p(1)=3p(2)=5p(3)=7p(4)=9p(5)=11

我尝试使用以下代码,但出现错误

func(6)返回的数组大小与 y0 (1)。

我认为问题在于我没有将p 值与r 值正确匹配。应该只有一个初始条件,因为我只是想解决一个方程。任何帮助将不胜感激。

这是我的代码:

from scipy import integrate
import numpy as np

r = np.array([0, 1, 2, 3, 4, 5])
p = np.array([1, 3, 5, 7, 9, 11])

def deriv (z, r, data):
    M = r*p
    return M

init = np.array([0])
soln = integrate.odeint(deriv, init, p, (r,), full_output=True)
print soln

【问题讨论】:

    标签: python arrays parameters odeint


    【解决方案1】:

    您看到此错误是因为init 的大小与deriv() 返回的数组大小匹配。

    要解决问题,请更改以下行

    init = np.array([0])
    

    init = np.array([0, 0, 0, 0, 0, 0])  
    

    有关使用 'odeint' 的更多示例,请参阅:
    http://scipy-cookbook.readthedocs.org/items/numpy_scipy_ordinary_differential_equations.html
    http://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.odeint.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-14
      • 2018-04-22
      • 2016-04-28
      • 2020-07-27
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 2019-02-26
      相关资源
      最近更新 更多