gpt4 book ai didi

python - SymPy 无法求解 Matlab 可以求解的方程

转载 作者:太空狗 更新时间:2023-10-29 20:21:48 25 4
gpt4 key购买 nike

我有一个与轨道力学中的太阳同步共振条件有关的方程式。我目前正在学习 Python,所以我尝试使用以下代码在 SymPy 中解决它:

from sympy import symbols,solve

[n_,Re_,p_,i_,J2_,Pe_] = symbols(['n_','Re_','p_','i_','J2_','Pe_'])

del_ss = -((3*n_*(Re_**2)*J2_/(4*(p_**2)))*(4-5*(sin(i_)**2)))-((3*n_*(Re_**2)*J2_/(2*(p_**2)))*cos(i_))-((2*pi)/Pe_)

pprint(solve(del_ss,i_))

表达式可以成功地重新排列五个变量,但是当在 solve 命令中使用变量 i_ 时(如上所述),会产生错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 479, in runfile
execfile(filename, namespace)
File "C:\Users\Nathan\Python\sympy_test_1.py", line 22, in <module>
pprint(solve(del_ss,i_))
File "C:\Python27\lib\site-packages\sympy\solvers\solvers.py", line 484, in solve
solution = _solve(f, *symbols, **flags)
File "C:\Python27\lib\site-packages\sympy\solvers\solvers.py", line 700, in _solve
soln = tsolve(f_num, symbol)
File "C:\Python27\lib\site-packages\sympy\solvers\solvers.py", line 1143, in tsolve
"(tsolve: at least one Function expected at this point")
NotImplementedError: Unable to solve the equation(tsolve: at least one Function expected at this point

但是,当将相同的表达式输入 Matlab 并调用 solve 命令时,它会重新正确排列。我意识到该错误提到了一个未实现的功能,这两个函数无疑会有所不同,但如果知道是否有更合适的 SymPy 函数我可以使用,那还是很高兴的。任何帮助将不胜感激。

最佳答案

  1. 使用 Pi 的 sympy 版本。
  2. 用新变量ci_替换cos(i_),用1-ci_替换sin(i_)**2 **2,求解ci_

应该这样做:

from sympy import symbols,solve,sin,cos,pi

[n_,Re_,p_,ci_,J2_,Pe_] = symbols(['n_','Re_','p_','ci_','J2_','Pe_'])

del_ss = -((3*n_*(Re_**2)*J2_/(4*(p_**2)))*(4-5*(1-ci_**2)))-((3*n_*(Re_**2)*J2_/(2*(p_**2)))*ci_)-((2*pi)/Pe_)

pprint(solve(del_ss,ci_))

(编辑因为我第一次尝试只写了一半的解决方案...)

关于python - SymPy 无法求解 Matlab 可以求解的方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13360496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com