Сам недавно задавал аналогичный вопрос
URL >>.
Там в мини-форуме есть пара методичек от Татьяны Михайловны на эту тему.
Хотя в любом случае, если требуется получить верное решение, одних алгоритмов может не хватить - в определённых ситуациях они очень любят уходить не в ту степь (например модуль Solver в Excel в зависимости от начальных значений может найти какой-нибудь локальный минимум/максимум совершенно не соответствующий требуемому решению). Так что, если программа должна надёжно находить решение, всё равно придётся модифицировать алгоритм в соответствии с физикой описываемой системы.