Если вы даете каждому из ваших ограничений клеток имени через Formulas > Define Name
, вы можете использовать это имя для ограничения, введя его в ячейках справочного поля диалогового окна Add Constraint:
ограничения затем будут отображаться и упорядочены по имени, а не по адресу, в окне Solver:
Вы можете сделать то же самое, если вы настройки решателя из VBA кода и т.д .:
SolverAdd CellRef:="cell1", Relation:=1, FormulaText:="60"
я не уверен, является ли это хорошее решение вашей проблемы, хотя. Если система уравнений, которую вы пытаетесь решить, имеет несколько разных решений, результат выполнения Solver может зависеть не только от настроек ограничения и начальных значений, но и от предпочтений Solver, версий Excel и Solver и, вполне возможно, других свойств две системы, над которыми вы не контролируете. Некоторые вещи, которые вы могли бы попробовать, включают:
- убедившись, что вы предварительно загрузить ваши переменные ячейки электронной таблицы с одинаковыми начальными значениями перед каждым Solver перспективе, и эксперимент с тем, что эти ценности должны быть
- перестраивая систему уравнений одобрять конкретный результат. Например, вместо решения A + B = 100, который имеет бесконечно много одинаково хороших решений, решите максимизировать A * B при ограничении C = 100, где C = A + B.
- , написание собственного алгоритма для поиска решение ваших уравнений в соответствии с введенными пользователем ограничениями. Если вам нужно было объяснить кому-то, как найти правильное решение, что бы вы им сказали, можете ли вы преобразовать его в код VBA?
Solver не гарантирует одинаковое решение каждый раз, просто ** a ** решение. – SeanC