我是靠谱客的博主 微笑花瓣,最近开发中收集的这篇文章主要介绍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进行求解。

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

最后

以上就是微笑花瓣为你收集整理的Python Sympy计算变限积分积分函数含有对数(log)时,遇到的问题。的全部内容,希望文章能够帮你解决Python Sympy计算变限积分积分函数含有对数(log)时,遇到的问题。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部