Python 给出不同答案的方程组的负数
我遇到了一些奇怪的事情,这可能只是一个愚蠢的错误,但我需要一些帮助来了解发生了什么 考虑下面的第一组非线性方程和计算出的解Python 给出不同答案的方程组的负数,python,scipy,scipy-optimize,Python,Scipy,Scipy Optimize,我遇到了一些奇怪的事情,这可能只是一个愚蠢的错误,但我需要一些帮助来了解发生了什么 考虑下面的第一组非线性方程和计算出的解 from scipy.optimize import fsolve import math m = 0.8 n = 0.5 def equations1(p1): x1, y1 = p1 return (m*x1+n*y1+1,y1-x1**2-1) x1, y1 = fsolve(equations1, (0.5,0.5)) print equati
from scipy.optimize import fsolve
import math
m = 0.8
n = 0.5
def equations1(p1):
x1, y1 = p1
return (m*x1+n*y1+1,y1-x1**2-1)
x1, y1 = fsolve(equations1, (0.5,0.5))
print equations1((x1,y1))
(0.9441394305358858, -0.47173248837117643)
现在,将方程乘以负1并求解(注意:这应该是同一组方程,因为solve是求解形式为f(x)=0的方程)
为什么解也被否定?那么,
equations2
返回否定,您直接打印equations2
的结果,对吗?打印x2
和y2
;它们应该是相同的。嗯,但我认为方程1代表系统mx1+ny1+1=0,y1-x1^2-1=0,方程2代表系统-(mx1+ny1+1)=0,-(y1-x1^2-1)=0,这在数学上都是相同的集合。我遗漏了什么?是的,但是你打印了否定词。解决方案是相同的。检查这个:(x1,y1)==(x2,y2)
试着打印x2
和y2
我明白了!非常感谢。那么,equations2
返回反运算,您直接打印equations2
的结果,对吗?打印x2
和y2
;它们应该是相同的。嗯,但我认为方程1代表系统mx1+ny1+1=0,y1-x1^2-1=0,方程2代表系统-(mx1+ny1+1)=0,-(y1-x1^2-1)=0,这在数学上都是相同的集合。我遗漏了什么?是的,但是你打印了否定词。解决方案是相同的。检查这个:(x1,y1)==(x2,y2)
试着打印x2
和y2
我明白了!非常感谢。
def equations2(p2):
x2, y2 = p2
return (-1*(m*x2+n*y2+1),-1*(y2-x2**2-1))
x2, y2 = fsolve(equations2, (0.5,0.5))
print equations2((x2,y2))
(-0.9441394305358858, 0.47173248837117643)