使用 Python 求解一对非线性方程时遇到问题
Having issues solving pair of nonlinear equations using Python
所以我知道有很多 questions/answers 关于这个主题,但我无法准确找到我的尝试中出了什么问题。我有两个非线性函数 f(x,y)
和 g(x,y)
,我正在尝试求解系统
f(x,y) - g(x,y) = 0
f(x,y) + g(x,y) = c
其中 c
是一些正常数。我一直在使用这个问题的答案中描述的片段:How to solve a pair of nonlinear equations using Python?,但我遇到了问题。如果我 运行 我的代码片段,它 returns x
和 y
值使得 只有 第二个等式系统满足,即它 returns x
和 y
使得 f(x,y) + g(x,y) = c
,而对于另一个方程,它认为 f(x,y) - g(x,y) != 0
。使用 scipy.optimize.root
函数时,我遇到了完全相同的问题。对于可能导致此问题的原因,我很迷茫。这是否意味着不存在 x, y
使得两个方程都满足?
在此先感谢您的帮助!
很有可能无解。例如 x + y = 10, x + y = 20 无解。这不是非线性问题;这是一个数学问题。此外,如果无法用代数方法求解,则第一个方程的 f(x,y) - g(x,y) 可能 近似 为零。如果 f(x,y)-g(x,y)=0.0001,您认为这足够接近吗?
为了完整性:检查数学,如@tsanisl 所述。如果将方程式相加,则求解 f(x,y)=c/2 或 g(x,y)=c/2,这更容易。
所以我知道有很多 questions/answers 关于这个主题,但我无法准确找到我的尝试中出了什么问题。我有两个非线性函数 f(x,y)
和 g(x,y)
,我正在尝试求解系统
f(x,y) - g(x,y) = 0
f(x,y) + g(x,y) = c
其中 c
是一些正常数。我一直在使用这个问题的答案中描述的片段:How to solve a pair of nonlinear equations using Python?,但我遇到了问题。如果我 运行 我的代码片段,它 returns x
和 y
值使得 只有 第二个等式系统满足,即它 returns x
和 y
使得 f(x,y) + g(x,y) = c
,而对于另一个方程,它认为 f(x,y) - g(x,y) != 0
。使用 scipy.optimize.root
函数时,我遇到了完全相同的问题。对于可能导致此问题的原因,我很迷茫。这是否意味着不存在 x, y
使得两个方程都满足?
在此先感谢您的帮助!
很有可能无解。例如 x + y = 10, x + y = 20 无解。这不是非线性问题;这是一个数学问题。此外,如果无法用代数方法求解,则第一个方程的 f(x,y) - g(x,y) 可能 近似 为零。如果 f(x,y)-g(x,y)=0.0001,您认为这足够接近吗?
为了完整性:检查数学,如@tsanisl 所述。如果将方程式相加,则求解 f(x,y)=c/2 或 g(x,y)=c/2,这更容易。