Я не уверен, почему вы создаете все эти функции более высокого порядка, это просто запутывает, на мой взгляд. Вместо этого вычистите свою шляпу алгебры и немного подумайте.
У вас есть 5 уравнений с 5 неизвестными. (F1, F2, T1, T2 и x). Три из этих уравнений (T1-F2=0
, F1=0.1*T1
и F2=0.3*T2
), как вы, вероятно, понимаете, тривиальны, поэтому устраните 3 из неизвестных сразу с помощью замены, например, везде, где вы видите T1, вставляйте F2 на свое место, поскольку T1 = F2 (Если вы похожи на меня и не совсем доверяете себе, вы всегда можете подставить окончательные числа обратно в исходные уравнения, чтобы убедиться, что вы поняли это правильно.)
Тогда у вас осталось два уравнения. Если вы можете решить уравнения вручную, у вас будет уравнение для x, и вам просто нужно написать программу для его оценки. В противном случае используйте общий подход с системой из 2 уравнений и 2 неизвестных.
В общем, для решения линейных уравнений для неизвестных x1, x2, ... xn, с учетом известных величин, приведите их в стандартную форму (где известны коэффициенты A и B):
A11*x1 + A12*x2 + A13*x3 ... + A1n*xn = B1
A21*x1 + A22*x2 + A23*x3 ... + A2n*xn = B2
.
.
.
An1*x1 + An2*x2 + An3*x3 ... + Ann*xn = Bn
или, в матричной форме:
Ax = B
У этого есть много способов решить для x, см. wikipedia ; стандартный метод для больших систем.
Для системы из 2 уравнений и 2 неизвестных:
A11*x1 + A12*x2 = B1
A21*x1 + A22*x2 = B2
достаточно нескольких уравнений, чтобы вы могли использовать правило Крамера . Правило Крамера ужасно для большого N, как из-за численной точности и чувствительности к ошибкам, так и потому, что оно очень медленное по сравнению с другими методами. Но для N = 2 это хорошо.