Паскаль. Основы программирования


Применение ряда Фибоначчи - часть 6


       writeln(aa:1:0,',',bb:2:0,')');

       writeln('Значение функции равно ', func(x):6:12);

       writeln('При значении аргумента ', x:6:12)

   end.

Очень часто, при поиске минимума функции для деления отрезка используют так называемое "Золотое сечение".

"Золотое сечение" или "золотое сечение" - деление отрезка на две части так, что большая из них есть средняя пропорциональная между меньшей частью и всем отрезком. Если a - весь отрезок, x - большая из двух частей, тогда:

a : x = x : (a - x)

Решая это уравнение, получаем:

 получим:

                                              

 (с точностью до 0.001).

Зная это, можно составить программу поиска минимума функции, используя "золотое сечение", тогда:

x1 := 0.618*a + 0.382*b, x2 := 0.382*a + 0.618*b.

Для вычисления этих значений можно составить две процедуры, которые затем использовать в программе.

Procedure gold1(a, b : real; var

x1, y1 : real);

     begin

        x1 := 0.618*a + 0.382*b;  y1 := fx(x1)

     end;

{------------------------------------------------------}

Procedure gold2(a, b : real; var

x2, y2 : real);

     begin

        x2 := 0.382*a + 0.618*b; y2 := fx(x2)

     end;




Начало  Назад  Вперед