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

求助:如何通过数组函数传递计算基于theta的Q_bar系列项?

问题解决:基于多输入theta数组计算Q_bar项

问题根源

你代码里的核心问题是使用了math模块的函数处理numpy数组,math.cos、math.radians这类函数仅支持单个数值输入,无法直接作用于numpy数组,导致无法生成对应的m、n数组,后续的Q_bar计算自然也无法得到数组结果。

修正后的代码

把math模块的函数替换为numpy对应的向量化函数即可,numpy的函数支持直接对数组进行批量运算:

import numpy as np

# 先定义Q系列参数(替换成你的实际参数)
Q11 = 100
Q12 = 20
Q22 = 80
Q66 = 30

theta = np.array([0, 25, -80, 90, 20])

# 使用numpy的radians和cos/sin,支持数组运算
m = np.cos(np.radians(theta))
n = np.sin(np.radians(theta))

# 计算各Q_bar项,自动生成对应长度的数组
Q_bar11 = Q11*(m**4) + 2*(Q12 + 2*Q66)*(n**2)*(m**2) + Q22*(n**4)
Q_bar12 = (Q11 + Q22 - 4*Q66)*(n**2)*(m**2) + Q12*(n**4 + m**4)
Q_bar16 = (Q11 - Q12 - 2*Q66)*n*(m**3) + (Q12 - Q22 + 2*Q66)*(n**3)*m
Q_bar22 = Q11*(n**4) + 2*(Q12 + 2*Q66)*(n**2)*(m**2) + Q22*(m**4)
Q_bar26 = (Q11 - Q12 - 2*Q66)*(n**3)*m + (Q12 - Q22 + 2*Q66)*n*(m**3)
Q_bar66 = (Q11 + Q22 - 2*Q12 - 2*Q66)*(n**2)*(m**2) + Q66*(n**4 + m**4)

# 输出结果示例
print(Q_bar11)

说明

  • 替换后,m和n会生成与theta长度一致的numpy数组
  • 所有Q_bar项的计算都会自动进行向量化运算,最终得到对应长度的数组结果
  • 注意先定义好Q11、Q12、Q22、Q66的实际数值,示例中用的是占位值

内容的提问来源于stack exchange,提问作者Josh Daniel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:15:43