Похоже, что вы заинтересованы в том, чтобы поддерживать систему линейных уравнений, а затем в любое время иметь возможность найти одну переменную с точки зрения всех остальных.Если вы закодируете отношения как матрицу, кажется, что вы могли бы затем уменьшить матрицу до некоторой удобной формы (например, уменьшенной формы эшелона строк), чтобы получить «простейшие» зависимости среди переменных (для некоторого красивого определения «простейшие»).") Получив такие данные, вы сможете прочитать все зависимости, просто взглянув на строку, содержащую ненулевую запись для рассматриваемой переменной, а затем нормализовав ее так, чтобы переменная имела коэффициент один.
Примечание. В целом, вы не всегда получите уникальное решение для каждой переменной.Например, учитывая тривиальные уравнения
x = y
x = z
Тогда решение для z может дать либо "z = x", либо "z = y", в зависимости от того, сколько упрощений вы хотите.Или, в качестве альтернативы, в настройках типа
x = 2y + 3w
x = 9z
Возврат значения для x может вернуть либо выражение, либо их сумму за два, либо целый ряд других вещей, которые все технически верны, но не обязательно полезны.Я не уверен, как бы вы справились с этим, но в зависимости от формы ваших уравнений вы, вероятно, сможете найти способ справиться с этим.