# sympy可以解决这些多项式平方根方程吗？

### 方程式

``````from sympy import *

x,xh,xhh,p,q,r = symbols('x xh xhh p q r')

eq1 = ((2*q**2-2*r**2)/(-q - r + xh) - 2*q - 2*r + x + xhh
+ sqrt(4*p*x + 4*p*xh + 4*q**2 + x**2 + 2*x*xh + xh**2)
+ sqrt(4*p*xh + 4*q**2 + xh**2 + xhh**2 + 2*xhh*(2*p + xh))
)

eq2 = (4*q**2 + 4*q*r - q*x - 2*q*xh - r*x - 2*r*xh + x*xh + xhh*(-q - r + xh)
+ (-q - r + xh)*sqrt(4*p*xh + 4*q**2 + xh**2 + xhh**2 + 2*xhh*(2*p + xh))
+ (-q - r + xh)*sqrt(4*p*x + 4*p*xh + 4*q**2 + x**2 + 2*x*xh + xh**2)
)

A,C,D,F,G,H = symbols('A C D F G H')

eq3 = A + xhh + C/D + sqrt(F) + sqrt(G + H*xhh + xhh**2)
``````

### 解决尝试

``````Traceback (most recent call last):

File "<ipython-input-24-9923c6f02abd>", line 1, in <module>
solve(eq1,xhh)

File "/Users/jacobrichardson/anaconda/envs/env_sympy/lib/python3.8/site-packages/sympy/solvers/solvers.py", line 1097, in solve
solution = _solve(f[0], *symbols, **flags)

File "/Users/jacobrichardson/anaconda/envs/env_sympy/lib/python3.8/site-packages/sympy/solvers/solvers.py", line 1460, in _solve
gen = f_num.match(D.xreplace({d: w}))[w]

TypeError: 'NoneType' object is not subscriptable
``````

### 等价方程

``````print(simplify(eq1 * (-q - r + xh) - eq2)) # "0" equations 1 and 2 equivalent up to one singularity
print(simplify(eq1 -
eq3.subs([(A,-2*q - 2*r + x),(C,2*q**2 - 2*r**2),(D,-q - r + xh),
(F,4*p*x + 4*p*xh + 4*q**2 + x**2 + 2*x*xh + xh**2),
(G,4*p*xh + 4*q**2 + xh**2),(H,2*(2*p + xh))]))) # "0" equations 1 and 3 equivalent
``````

https://github.com/sympy/sympy/pull/20842

``````In [2]: %time solve(eq1, xhh, check=False)
CPU times: user 4.21 s, sys: 45.3 ms, total: 4.25 s
Wall time: 4.33 s
Out[2]:
⎡                                                                                                                      ______________________
⎢       2                                   2                          2      4       3        3        3         3   ╱                     2
⎢- 2⋅p⋅q ⋅x - 4⋅p⋅q⋅r⋅x + 4⋅p⋅q⋅x⋅xh - 2⋅p⋅r ⋅x + 4⋅p⋅r⋅x⋅xh - 2⋅p⋅x⋅xh  - 8⋅q  - 16⋅q ⋅r + 4⋅q ⋅x + 8⋅q ⋅xh + 4⋅q ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q
⎢────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⎢
⎢
⎣

_____________________                                               ___________________________________________
2              2       2  2      2           2           2     ╱                     2    2              2     2  2      2         2
+ x  + 2⋅x⋅xh + xh   - 8⋅q ⋅r  + 8⋅q ⋅r⋅x + 16⋅q ⋅r⋅xh + 8⋅q ⋅r⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - q ⋅x  - 7⋅q ⋅x⋅xh - q ⋅x⋅╲╱
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

___________________________________________                         ___________________________________________
╱                     2    2              2       2   2      2      ╱                     2    2              2         2          2
4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 2⋅q ⋅xh  - 6⋅q ⋅xh⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   + 4⋅q⋅r ⋅x + 8⋅q⋅r ⋅xh + 4⋅q
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
____________
2                             2                    2      3      2      2        2       2   ╱
- 2⋅p⋅q  - 4⋅p⋅q⋅r + 4⋅p⋅q⋅xh - 2⋅p⋅r  + 4⋅p⋅r⋅xh - 2⋅p⋅xh  - 4⋅q  - 8⋅q ⋅r + q ⋅x + 5⋅q ⋅xh + q ⋅╲╱  4⋅p⋅x + 4⋅p

___________________________________________                                       ___________________________________________
2   ╱                     2    2              2           2                           ╱                     2    2              2
⋅r ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 2⋅q⋅r⋅x  - 10⋅q⋅r⋅x⋅xh - 2⋅q⋅r⋅x⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 4⋅q⋅r⋅
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
_______________________________                                          ___________________________________________                        _
2    2              2         2                                ╱                     2    2              2                        ╱
⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 4⋅q⋅r  + 2⋅q⋅r⋅x + 6⋅q⋅r⋅xh + 2⋅q⋅r⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 2⋅q⋅x⋅xh - 2⋅q⋅xh⋅╲╱

___________________________________________                                       _________________________________________
2              ╱                     2    2              2         2              2              ╱                     2    2
xh  - 8⋅q⋅r⋅xh⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   + 2⋅q⋅x ⋅xh + 4⋅q⋅x⋅xh  + 2⋅q⋅x⋅xh⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
__________________________________________                        ___________________________________________                        ________
2    2              2     2      2       2   ╱                     2    2              2                        ╱
4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   + r ⋅x + r ⋅xh + r ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 2⋅r⋅x⋅xh - 2⋅r⋅xh⋅╲╱  4⋅p⋅x +

__              ___________________________________________                               ___________________________________________
2          2   ╱                     2    2              2     2  2      2         2     ╱                     2    2              2       2
+ 2⋅q⋅xh ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - r ⋅x  - 3⋅r ⋅x⋅xh - r ⋅x⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - 2⋅r ⋅
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
___________________________________                        ___________________________________________
2    2              2        2     3     2   ╱                     2    2              2
4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   + x⋅xh  - xh  + xh ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh

___________________________________________                                       __________________________________________
2      2      ╱                     2    2              2         2              2              ╱                     2    2              2
xh  - 2⋅r ⋅xh⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   + 2⋅r⋅x ⋅xh + 4⋅r⋅x⋅xh  + 2⋅r⋅x⋅xh⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

_              ___________________________________________                             ___________________________________________⎤
2   ╱                     2    2              2     2   2       3       2   ╱                     2    2              2 ⎥
+ 2⋅r⋅xh ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh   - x ⋅xh  - x⋅xh  - x⋅xh ⋅╲╱  4⋅p⋅x + 4⋅p⋅xh + 4⋅q  + x  + 2⋅x⋅xh + xh  ⎥
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────⎥
⎥
⎥
⎦
``````

0 条评论