You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用solve_ivp求解运动方程时Pendulum类y属性触发TypeError求助

问题原因
  • 运行solve方法后,self._theta存储的是solve_ivp返回的numpy数组,包含所有时间步对应的角度值,属于多元素数组而非单个标量。
  • 你当前y属性中调用的cos是Python标准库math模块的接口,该接口仅支持传入单个标量值,无法直接处理数组类型的输入,因此触发类型错误。
修复方案

将y属性中使用的cos替换为numpy库的向量化cos接口即可,numpy的三角函数原生支持多元素数组运算,能直接返回对应所有时间点的垂直坐标数组。修改后的代码如下:

import numpy as np # 确保已导入numpy模块

@property
def y(self):
    """
    Translating angles into cartesian coordinates
    y is an array of vertical positions
    """
    return - self.L * np.cos(self.theta)

内容的提问来源于stack exchange,提问作者N.A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:12:03