Я пытаюсь решить следующие связанные уравнения:
x = 1;
y - 0,5 * y - 0,7 * v = 0;
ш - 0,7 * х - 0,5 * х = 0;
v = 1.
(я знаю, что уравнения = 1 кажутся ненужными, но они мне нужны для более позднего обобщения кода). Мой код следующий:
import numpy as np
from scipy.optimize import fsolve
def myFunction(z):
x = z[0]
y = z[1]
w = z[2]
v = z[3]
F = np.empty((4))
F[0] = 1
F[1] = y - 0.5*y - 0.7*v
F[2] = w - 0.7*x - 0.5*w
F[3] = 1
return F
zGuess = np.array([1,2.5,2.5,1])
z = fsolve(myFunction,zGuess)
print(z)
Я получаю ответ [-224.57569869, -314.40597772, -314.40597817, -224.57569837]
, но я ожидаю [1, 1.4, 1.4, 1]
. Почему fsolve
не может найти ответ на этот простой набор уравнений? Более того: почему значения x и v, которые не изменяются ни в одной точке, не совпадают со значениями первоначального предположения?