猿问

如何使用 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:自变量

在此之后,我需要计算下一个积分:

http://img3.mukewang.com/6344d1fb00019d6205700127.jpg

这是我遇到问题的地方:

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 方法集成这个函数?也许我会改变总结的方式?我如何以其他方式编写函数?提前致谢


狐的传说
浏览 127回答 1
1回答

牛魔王的故事

这应该工作import numpy as npfrom scipy.integrate import quaddef 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 = 0alpha = 0 array_coefficients = np.array([1, 2, 3, 4])integral = quad(integrand, 0, 1, args=(theta_a , alpha, array_coefficients))
随时随地看视频慕课网APP

相关分类

Python
我要回答