为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 scipy.integrate 库集成此功能?

如何使用 scipy.integrate 库集成此功能?

狐的传说 2022-10-11 10:15:53
所以我编写了这个公式我得到: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 Sumatoriocl= 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 方法集成这个函数?也许我会改变总结的方式?我如何以其他方式编写函数?提前致谢
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这应该工作


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))


查看完整回答
反对 回复 2022-10-11
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号