Здравствуйте, у меня проблема с использованием функции Сципи fsolve
, когда у меня есть система уравнений.
Мой код только позволяет мне иметь столько переменных, сколько существует уравнений в моей системе, но мы все знаем, что вНа практике у вас может быть больше уравнений, чем переменных, особенно если решение представляет собой не конкретное число, а диапазон чисел, дополнительное уравнение может помочь, так сказать, сузить "стог сена".
Какмой вопрос: вставить больше уравнений, чем переменных?
Предположим, у меня есть следующая нелинейная система:
A/B=0.4583(3)
A/C=0.25
A/D=0.72(2)
B/C=0.54(54)
Итак, у меня есть следующий код для этого:
from scipy.optimize import *
from numpy import *
def FUNC(arg):
A,B,C,D=arg
UNK=empty((4))
UNK[0]= A/B-0.458333333333333
UNK[1]= A/C-0.25
UNK[2]= A/D-0.722222222222222
UNK[3]= B/C-0.545454545454546
return UNK
SOLVED= fsolve(FUNC, [1.0]*4)
print (SOLVED)
Проблема в том, что я также знаю следующую информацию:
B/D=1.57(57)
C/D=2.8(8)
Как я могу вставить эти 2 дополнительных уравнения в мою систему уравнений?
Кроме того, как я могу отобразить диапазон решений вместо одного решения, похоже, что fsolve
отображает только 1-е решение, которое встречается, а не весь диапазон возможных решений.