python - ODES:ValueError:使用序列设置数组元素
问题描述
我正在尝试在 python 中定义以下 ODES 系统:
这边走:
def rhs(t, P):
dP = np.zeros_like(P)
dP[0] = np.sqrt((1 - 3 / P) * (2 + 4 / P**2))
dP[1] = 1 / math.pow(P,2)
return dP
但是,我收到一个错误:
ValueError:使用序列设置数组元素。
我不知道是什么问题......如果有任何帮助,我将不胜感激!
解决方案
显然,您的状态 P 有 2 个分量。因此,您从 P 计算的表达式也将具有两个分量。然后您尝试将这些元组分配给数组中的单个单元格dP
,这是不可能的,并且会导致该错误消息。
您可能想用这些表达式中P
的第一个元素替换。P[0]
或使用
def rhs(t, u):
P,phi = u
dP = ...
dphi = ...
return [dP, dphi]
推荐阅读
- android - 如何使用 Android 样式来控制 Views 的 onClick 行为
- python - 如何在python中使用字典创建颜色条
- java - 在 Andriod studio 3.2 中查找 Sqllite 数据库
- tomcat - 提供者 org.ehcache.jcache.JCacheCachingProvider 不是 Tomcat /lib 中的子类型
- r - Most declarative approach to extract data from strings
- shell - 如何搜索关键字然后列出有关该关键字的所有行?
- jquery - 如何在没有任何页面跳转的情况下删除 dom 元素?
- java - 如何按数字对列表进行排序,如果重复按字符串排序?
- java - 使用 SockJS 到 Spring Boot 2.2.0 CORS 策略的 Websocket:请求的资源上不存在“Access-Control-Allow-Origin”标头
- html - 为什么我的标签和输入出现在我的导航栏中?