python - 如何使用 scipy.integrate 库集成此功能?
问题描述
我得到:
def sumAN(theta,CoefAN,n_cl):
# this function give us the sumatory in the right side of the formula
Sumatorio = np.array([])
for count,i in enumerate(theta):
sumatorio = 0
for count2,j in enumerate(n_cl):
sumatorio = sumatorio +CoefAN[count2]*sin(int(count2+1)*i)
Sumatorio = np.append(Sumatorio,sumatorio)
return Sumatorio
cl= 4*((np.radians(alpha)+A0)*tan(theta/2)+sumAN(theta,CoefAN,n_cl))
稍微解释一下:
- Alpha:常量
- A0:常量
- AN :np.array([])(n 值)
- theta:自变量
在此之后,我需要计算下一个积分:
这是我遇到问题的地方:
ch = integrate.quad(lambda theta:(4*((alpha_char+A0)*tan(theta/2)+sumAN(theta,CoefAN,n_charl)))*(cos(theta)-cos(xa))*sin(theta),0,xa)[0]
我有所有的限制和一切。但我得到下一个错误:
“浮动”对象不可迭代
我不知道如何继续。所以我的问题是:如何使用integrate.quad 方法集成这个函数?也许我会改变总结的方式?我如何以其他方式编写函数?提前致谢
解决方案
这应该工作
import numpy as np
from scipy.integrate import quad
def integrand(theta, theta_a, alpha, A):
sum = 0
# get sum
for index, value in enumerate(A):
if index == 0:
sum += (alpha + A[index]) * np.tan(0.5 * theta)
else:
sum += A[index] * np.sin(index * theta)
# note that multiplication with 4 and multiplication with 1/4
# result in one as prefactor
return -sum * (np.cos(theta) - np.cos(theta_a))
# calculate integral
theta_a = 0
alpha = 0
array_coefficients = np.array([1, 2, 3, 4])
integral = quad(integrand, 0, 1, args=(theta_a , alpha, array_coefficients))
推荐阅读
- sql - Hive 如何订购编号?
- android - android中的设备管理员可以安装软件包吗?
- c - 如何在 C 中正确地 fscanf txt 文件
- amazon-web-services - 附加时的镶木地板文件保护
- python - 使用正则表达式在 json 数据中查找列表
- angular - Angular:解决订阅中的渲染
- excel - 问题在下拉列表中引用值
- c# - VSCode 和omnisharp 选择项目
- apache - 在 .htaccess 中设置 Content-Security-Policy 标头时出现 500 内部服务器错误
- jquery - 错误:DataTables 警告:table id = example1 - 无法重新初始化 DataTable