Ограничение, что сумма всех
равно нулю, портит всю картину. Если бы его не было, то введение косинусов сводило бы задачу с ограничениями к задаче без ограничений. Хотя и тут возникали бы дополнительные сложности при вычислении производных. А теперь у нас вроде возникает задача без ограничений, но только в рассматриваемой области возникают местами запретные подобласти. Мы можем вручную как-то их отслеживать. Только может возникнуть такая ситуация, когда мы дошли до края допустимой области, а общий алгоритм оптимизации зовёт нас в область недопустимую. Хотелось бы двигаться в сторону оптимума, но как-то по краю допустимой области. Но тут возникает сложность, что граница нелинейна (в отличие от исходной задачи) и её не так уж и просто отследить.
Существуют и другие методы решения этих проблем. Первый подход, воспользоваться какой-то стандартной программой оптимизации, коих много на любом языке программирования. Второй подход, если уж хочется всё сделать самому, вспомнить, что преподавали на курсе вычислительной математики и на курсе методов оптимизации. В крайнем случае соответствующую книгу прочитать. Но этот путь не для слабых духом.