gpt4 book ai didi

python - 使用 numpy 和 scipy 将数组转换为标量

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:51 27 4
gpt4 key购买 nike

import numpy as np
from scipy.integrate import odeint
import math
import pylab

y0=np.array([1,3,2,3,5])
b=np.array([[1],[3],[4],[2],[5]])

'''make a matrix'''
B=np.dot(b,b.T)
def g(t,y,B):
return math.exp(np.dot(y,B))
t=np.linspace(0,1,100)
y= odeint(g, y0, t, args=(B,))

我试图用下面的代码解决 y 的动态系统。运行时,出现错误 only size-1 arrays can be converted to Python scalars。我仍然对如何将其转换为 size-1 数组感到困惑。你能给我一些关于如何修复错误的建议吗?

最佳答案

正如其他人所指出的,您必须使用 np.exp 而不是 math.exp 来解决您的错误。另一个问题是由于 g 在调用中的顺序错误:您必须先传递 y,然后再传递时间(即使它没有在调用中使用)函数),然后是额外的参数。看看the help page and example .从没有引发异常的意义上说,类似以下的东西是有效的,但系统迅速发散。如果您能从数学的角度描述您实际尝试做的事情,可能会有更深入的见解。

import numpy as np
from scipy.integrate import odeint
import pylab

y0=np.array([1,3,2,3,5])
b=np.array([[1],[3],[4],[2],[5]])

# make a matrix
B=np.dot(b,b.T)
def g(y, t, B):
return np.exp(np.dot(y,B))
t=np.linspace(0,1,100)
y= odeint(g, y0, t, args=(B,))

关于python - 使用 numpy 和 scipy 将数组转换为标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49658375/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com