概述
import sympy
Z, x, t ,H1 ,H2,H3,H4= sympy.symbols('Z,x,t,H1,H2,H3,H4')
z11 = Z ** 3 + 0.01
H1 = Z ** 2 * (- (
-16 * 41.3399927 * Z ** 3 - 48 * 41.3399927 * sympy.log(Z) - Z * (16 * -1634.89996 - 144 * 41.3399927) - (
-240 * 41.3399927 * Z ** 9 - 120 * 41.3399927 * Z ** 6 - 20 * 41.3399927 * Z ** 3 - 15 * 41.3399927 +
Z ** 11 * (-60 * 190592.559 + 360 * -1634.89996 - 1620 * 41.3399927) + Z ** 10 * (
-120 * -1634.89996 + 1080 * 41.3399927) + Z ** 8 * (
-15 * 190592.559 + 90 * -1634.89996 - 405 * 41.3399927) + Z ** 7 * (
-24 * -1634.89996 + 216 * 41.3399927) + Z ** 4 * (-15 * -1634.89996 + 135 * 41.3399927)) / (
15 * Z ** 12)) / 190592.559 + (
-15.8415841584158 * 41.3399927 * z11 ** 1.0 - 48 * 41.3399927 *
sympy.log(0.996688717477339 * z11 ** (1 / 3)) - 0.996688717477339 * (
16 * -1634.89996 - 144 * 41.3399927) * z11 ** (
1 / 3) - 0.0693736006666667 * (-19.8019801980198 * 41.3399927 * z11
** 1.0 - 117.63552592883 * 41.3399927 * z11 ** 2.0
- 232.941635502635 * 41.3399927 * z11 **
3.0 - 15 * 41.3399927 + 0.967376249734144 *
(-120 * -1634.89996 + 1080 * 41.3399927) *
z11 ** (10 / 3) + 0.977050012231486 *
(-24 * -1634.89996 + 216 * 41.3399927) *
z11 ** (7 / 3) + 0.986820512353801 *
(-15 * -1634.89996 + 135 * 41.3399927) *
z11 ** (4 / 3) + 0.973814723602218 *
z11 ** 2.66666666666667 *
(-15 * 190592.559 + 90 * -1634.89996 -
405 * 41.3399927) + 0.964172993665562
* z11 ** 3.66666666666667 *
(-60 * 190592.559 + 360 * -1634.89996 -
1620 * 41.3399927)) / z11 ** 4.0) / 190592.559)
print('**************************************************')
I1 = sympy.integrate(H1, (Z, 1, x))
print("积分为:", I1)
print('****************')
代码如上
函数表达式没用numpy.log表示对数是因为,接下来要对H1利用sympy.integrate方法求积分。用numpy.log会出错误。
这个积分貌似陷入了无限循环,始终解不出来。
我将方程转换成MATLAB代码进行运行,几秒钟就运行出结果了。我个人觉得是sympy库的计算能力问题。由于是变上限积分,上限为x,所以不能用Scipy进行求解。
大佬有知道怎么出结果吗?
最后
以上就是微笑花瓣为你收集整理的Python Sympy计算变限积分积分函数含有对数(log)时,遇到的问题。的全部内容,希望文章能够帮你解决Python Sympy计算变限积分积分函数含有对数(log)时,遇到的问题。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复