【发布时间】:2019-12-13 19:14:06
【问题描述】:
我正在尝试在 Python 中求解非线性三角方程组。我尝试了以下方法:
from sympy import symbols,solve,sin,cos,pi, Eq
measurements = [(5.71403,0.347064), (4.28889, -0.396854), (5.78091, -7.29133e-05),
(2.06098, 0.380579), (8.13321, 0.272391), (8.23589, -0.304111), (6.53473, 0.265354), (1.6023,
0.131908)]
f, a, phi = symbols('f a phi')
eq1 = Eq(a*sin((2.0*pi*f*measurements[0][0])+phi) - measurements[0][1])
eq2 = Eq(a*sin((2.0*pi*f*measurements[4][0])+phi) - measurements[4][1])
eq3 = Eq(a*sin((2.0*pi*f*measurements[6][0])+phi) - measurements[6][1])
solve((eq1,eq2,eq3), (a, f, phi))
Python 需要很长时间才能尝试求解方程。然而,MATLAB 瞬间完成。
有什么问题?
【问题讨论】:
-
我怀疑是否有解析解。
-
当时MATLAB是怎么解决的?
-
显然,不是分析性的。
-
那么Python也应该给出一个非解析解。但它什么也没给。
-
Python 是一种通用编程语言。你用它做什么取决于导入的模块。