Спасибо большое,
Евгений Машеров и
Vince Diesel за советы!
Да, и в минимизируемой функции там везде альфа, а не два альфа? Или всё же в одном слагаемом аргумент удвоен?
это я так упростил, там либо вторая степень по синусам/косинусам, либо синусы и косинусы от двойного аргумента.
Причём численное решение для "исходной функции", которую минимизируют, выглядит куда проще решения тригонометрического уравнения...
На первый взгляд - да, но по сути там такая проблема:
корней вроде как 2 или 4 (0 корней не интересно), из которых половина минимумов, и половина максимумов. Если корней два, то все просто - методом деления отрезка пополам на всем интервале от
до
все на ура решается, но если корней 4, то возникают заморочки как локализовать корни. То есть можно найти один корень, пусть это будет минимум, потом можно найти еще один максимум. Далее у нас есть два интервала, на каждом из которых может быть либо
1. ничего,
2. один минимум или максимум,
3. и минимум и максимум.
И тут надо либо делать оценки на вторые производные и городить реально кучу всего, или квадратно-гнездовым, что в общем случае, и вычислительно трудоемко, и очень не тривиально запрограммировать, чтобы ненакосячить.
PS: решать надо на встраиваемых процессорах с очень ограниченными ресурсами, поэтому притащить туда какую-нибудь GSL или еще какой-то внешний минимизатор - не реально. Свой BFGS есть, но он там как мертвому припарка, так как сразу свалится на одномерную минимизацию и, один минимум найдет сразу, а на втором как раз и заткнется.