Python代码sympy库solve函数跑不出结果的问题

为什么slove无法解决复杂的三角函数问题?
麻烦各位看一下我的代码是怎么回事,能跑,但是结果死活出不来,是式子太复杂了吗?

img

在debug的时候上一步还能走

img

下一步就直接宕机了一样

img

这是咋回事 是结果太复杂要算很久,还是因为前面公式有错误,还是说这个方程根本就无解?
代码如下:


```python
# importing library sympy
from sympy import symbols, Eq, solve,sin,cos,tan

import math
import numpy as np
# defining symbols used in equations
# or unknown variables
x, y, z = symbols('x,y,z')

sinA = ((3**(0.5)/2*0.3)/(0.8+x))**0.5
cosA = (1-sinA**2)**0.5
sinB = 0.15/((0.8+x)**2-(0.09*3/4)**2)**0.5
cosB = (1-sinB**2)**0.5
cosBO = cosB*cos(z)-sinB*sin(z)
sinBO = (1-cosBO**2)**0.5
sinY = 0.3/(0.8+y)
cosY = (1-(sinY)**2)**0.5
cosYO = cosY*cos(z)+sinY*sin(z)
sinYO = (1-cosYO**2)**0.5



# defining equations
eq1 = Eq((1000*x*cosA*cosBO + 500*y*cosYO), 100)
print("Equation 1:")
print(eq1)

eq2 = Eq((1000*x*cosA*sinBO - 500*y*sinYO), 0)
print("Equation 2")
print(eq2)

eq3 = Eq((1000*x*cosA*cosBO*(0.15-0.3*tan(z)) - 500*y*cosYO*(0.3+0.3*tan(z))), 0)

print("Equation 3")
print(eq3)

# solving the equation and printing the
# value of unknown variables
print("Values of 3 unknown variable are as follows:")
print(solve((eq1, eq2, eq3), (x, y, z)))
print("done")

```

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7552704
  • 你也可以参考下这篇文章:python数学建模之用sympy.solve求解方程组的解
  • 除此之外, 这篇博客: Python中sympy.solve()函数的使用及报错中的 函数的简单使用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • sympy.solve() 函数来解单一方程的调用方式可以表示为 sympy.solve(表达式,符号) 。下面的代码演示了怎样解exp⁡(x)−3=0\exp(x)-3=0exp(x)3=0这个方程。

    import sympy
    from sympy import *
    
    d = sympy.Symbol("d")
    b = sympy.solve(sympy.exp(d)-3,d)
    print(b)
    

    可以得到log⁡3\log3log3的精确表达式。