SymPy-区分有些扭曲的功能

如何解决SymPy-区分有些扭曲的功能

diff ( (1/2) * ( sqrt (x**2+x+1) - x ) - (4/2) * ln ( ( sqrt (x**2+x+1) - x ) +1) + (1/2) * ln (2* ( sqrt (x**2+x+1) - x ) -1) + (3/4) * (1/(2* ( sqrt (x**2+x+1) - x ) -1)) )

我正在尝试使用SymPy计算此导数
但这给了我比我想象的更复杂的表达方式。

我用手解决一个不定积分,因此我知道了答案
应该是(sqrt(x**2+x+1)-1)/x

Wolfram Alpha也证实了这一点 (在WA中,只需将**替换为^)。

这是WA的答案(请参阅其他表格):

WA derivative

是否可以使用SymPy计算和简化此导数?
还是对SymPy来说太过分了?

解决方法

我可以确认答案,可以用sympy简化它,但是做到这一点并不容易:

In [90]: d = diff ( (S(1)/2) *  ( sqrt (x**2+x+1) - x )   - (S(4)/2) * ln ( ( sqrt (x**2+x+1) - x )  +1) + (S(1)/2) * ln (2* ( sqrt (x**2+x+1) 
    ...: - x )  -1) + (S(3)/4) * (1/(2* ( sqrt (x**2+x+1) - x )  -1)) )                                                                        

In [91]: d                                                                                                                                     
Out[91]: 
                          ⎛    2⋅(x + 1/2)      ⎞         ⎛    x + 1/2        ⎞            2⋅(x + 1/2)                 
                        3⋅⎜- ─────────────── + 2⎟       2⋅⎜─────────────── - 1⎟          ─────────────── - 2           
                          ⎜     ____________    ⎟         ⎜   ____________    ⎟             ____________               
                          ⎜    ╱  2             ⎟         ⎜  ╱  2             ⎟            ╱  2                        
     x + 1/2              ⎝  ╲╱  x  + x + 1     ⎠         ⎝╲╱  x  + x + 1     ⎠          ╲╱  x  + x + 1               1
───────────────── + ───────────────────────────────── - ──────────────────────── + ──────────────────────────────── - ─
     ____________                                   2           ____________         ⎛            ____________    ⎞   2
    ╱  2              ⎛            ____________    ⎞           ╱  2                  ⎜           ╱  2             ⎟    
2⋅╲╱  x  + x + 1      ⎜           ╱  2             ⎟    -x + ╲╱  x  + x + 1  + 1   2⋅⎝-2⋅x + 2⋅╲╱  x  + x + 1  - 1⎠    
                    4⋅⎝-2⋅x + 2⋅╲╱  x  + x + 1  - 1⎠                                                                   

In [92]: f = sqrt(x**2 + x + 1)                                                                                                                

In [93]: f                                                                                                                                     
Out[93]: 
   ____________
  ╱  2         
╲╱  x  + x + 1 

In [94]: d.subs(f,y)                                                                                                                          
Out[94]: 
      2⋅(x + 1/2)      ⎛     x + 1/2⎞     ⎛    2⋅(x + 1/2)⎞              
 -2 + ───────────    2⋅⎜-1 + ───────⎟   3⋅⎜2 - ───────────⎟              
           y           ⎝        y   ⎠     ⎝         y     ⎠   1   x + 1/2
────────────────── - ──────────────── + ─────────────────── - ─ + ───────
2⋅(-2⋅x + 2⋅y - 1)      -x + y + 1                        2   2     2⋅y  
                                        4⋅(-2⋅x + 2⋅y - 1)               

In [95]: ratsimpmodprime(d.subs(f,y),[minpoly(f,y)]).subs(y,f)                                                                             
Out[95]: 
   ____________    
  ╱  2             
╲╱  x  + x + 1  - 1
───────────────────
         x 

在文档中似乎未列出ratsimpmodprime函数,但您可以在此处看到它: https://github.com/sympy/sympy/blob/524fa229306898fded1d477017e0a88048d88c6b/sympy/simplify/ratsimp.py#L33

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?