栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python Sympy计算变限积分积分函数含有对数(log)时,遇到的问题。

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Sympy计算变限积分积分函数含有对数(log)时,遇到的问题。

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进行求解。

大佬有知道怎么出结果吗?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号