@artem311

C#. Как минимизировать функцию, в которой присутствуют суммы?

Каким методом и с помощью какой библиотеки можно минимизировать функцию, в которой присутствует сумма и при этом имеются ограничения для х?
5ac50965710ae888443092.png
с1-с3, a, b, d - константы, для каждого х имеется ограничение по минимальному и максимальному значению(x min<=x<=x max).
Пытался использовать библиотеку accord (методы Нелдера-Мида и Левенберга - Марквардта), но там нельзя задать ограничения, и не совсем понятно, как описать сумму в функции.
  • Вопрос задан
  • 316 просмотров
Решения вопроса 1
LaRN
@LaRN
Senior Developer
Судя по виду функции ваша задача распадается на три более простых.
Т. к. в функции есть три блока сумм и в каждом блоке сумм суммируемые значения идут в четной степени (степень = 2), то значение каждой из сумм строго положительно.
А раз так то минимизируйте каждую из сумм по отдельности.

Теперь если взять каждую из сумм по отдельности, видно что для минимизации значения коэффициентов С не важны, минимизировать нужно результат выражения в скобках.
Если взять выражение в скобках, то для него минимум будет для случая, когда
a(i)=x(i), b(j)=x(j), d(k)=x(k), т.е. для тех a(i), b(j), d(k), которые попадают в диапазон x min<=x<=x max, значение
скобки будет минимальным и равным нулю.

По остальным значениям, функция вида (а/х)^2 не имеет экстремумов, это значит, что она принимает максимальное и минимальное значение на границе диапазона x min<=x<=x max, т.е. либо для х =x min, либо для
х = x max.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks Куратор тега C#
Проанализируйте сначала вручную, затем уже забейте функции в программу. Например,
i,j,k,c1,c2,c3,a,b,d=1
Тогда F(x)->min, |x=1

Обратите внимание на сумму и на квадраты, а так же на функцию y=1/x.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы