python-3.x - 如何集成一个根据另一个符号返回值的函数
问题描述
我目前正在尝试使用 集成一个函数scipy.integrate.quad
,但我的函数有两个变量,第一个是x
,这是一个被集成出来的变量,第二个是G
,我试图在集成完成后解决这个问题。
我已经尝试使用sympy.integrate
它支持符号的集成,但是我的积分太复杂而无法评估。
我试图解决的积分示例如下所示:
C = integrate.quad(lambda x: x/(1+(3*G)*x)
我希望能够评估积分,以便我可以求解,G
因为C
它是一个常数值。
我希望输出是一些G
我可以用来解决G
的函数,但我无法弄清楚如何在没有事先定义的情况下集成函数G
。
解决方案
首先注意您的最终目标是什么:求解方程f(G)==C
,其中f()
是单个参数的函数。现在,碰巧你f
是关于第二个变量的积分结果。因此,只需定义一个计算此积分的单参数函数,如下所示:
def f(G):
return quad(lambda x: x/(1+(3*G)*x), 0, 10)[0]
并调用scipy.optimize.root_scalar
求解方程(C==1
在这个例子中)
root_scalar(lambda G: f(G)-1, x0=2, bracket = [0,5])
converged: True flag: 'converged' function_calls: 10 iterations: 9 root: 3.1734489114921782
推荐阅读
- c++ - 使用什么设计模式或编程技术将数据流与控制流分开?
- javascript - 将字符串转换为数组 JavaScript 中的数字
- firebase - 带有 VueJS 2 数据的 Firestore where 子句
- java - 在测试范围内验证微服务有多糟糕?[JAVA]
- loops - 如何根据参与者的反应选择例程是否继续?
- linux - Glusterfs 熔断客户端消耗高内存 - 内存泄漏
- wordpress - 在第 2 页上找不到 wordpress 分页页面
- reactjs - 所有具有通量的 React 子组件的单一事实来源?
- java - 应用程序在单击按钮时关闭且没有任何提示
- graylog2 - 在 Graylog2 中,是否可以使用提取器创建一个以换行符显示的字段?