• Регистрация
Igorrr
Igorrr +1.00
н/д

fminunc не работает

26.06.2020

Изменил вопрос.

создал функцию [y]=matlab_fminimax01(x)

задал начальные условия:

x=[1*0.090/20;1*0.42/20;1*0.210/20]
options = optimset('LargeScale','off','TolFun',1e-2);

 

запустил поиск минимума
[x,fval,exitflag,output] = fminunc(@matlab_fminimax01,x,options)

 

Не работает.

fminunc на 1-й итерации x делает шаг 2e-7.

Это очень малый шаг для моей функции, которая "округляет" yдо трех знаков .

В результате  y не изменяется и итрационный процесс не происходит.

Мне надо чтобы первый шаг x был в районе    5e-3

Вопрос - какой параметр fminunc, optimset может загрубить перый шаг по x ?

 

Теги

      26.06.2020

      Ответы

      • aBoomest
        aBoomest+942.89
        28.06.2020 09:20

        Выложите файл с кодом

        • Igorrr
          Igorrr+1.00
          29.06.2020 05:39

           

          пришлось решать используя однокоординатный поиск fminbnd

          запустил итерации по последовательным координатам.

          • Igorrr
            Igorrr+1.00
            29.06.2020 09:18

            Для aBoomest

            Код очень большой и с вызовом python, не буду высылать.

            Выяснил саму проблему.

            На 1-й итерации шаг по х 1е-7.

            У меня промежуточные рассчеты округляются и при малом шаге х 1е-7 шаге  не меняется y, поэтому алгоритм остановился, считая что у в минимуме.

            Пробовал установить 'TolFun',1e-2, не помогло. 

            Мне надо чтобы перый шаг по х был 1е-3 - 3е-3

             

            Криво решил задачу однокоординатным поиском минимума  fminbnd  последовательно двигаясь по отдельным координатам х. Метод не удобный. так как при переходе на новую координату нельзя  стартовать с заданного начения х по этой координате, метод начинает счеты с средины заданного диапазона этой координаты.

            • aBoomest
              aBoomest+942.89
              29.06.2020 12:14

              Возможно это, но не уверен - StepTolerance - TolX

              • Igorrr
                Igorrr+1.00
                29.06.2020 13:40

                Для aBoomest.

                Спасибо, 'TolX',1e-2 проверил на  fminbnd,  работает.