ФЭА / АИТ / ОТЧEТ по лабораторной работе №2 по дисциплине: “Оптимизация и оптимальное управление” на тему: “Решение задачи оптимизации методом чисел Фибоначчи”
(автор - student, добавлено - 26-03-2014, 13:09)
СКАЧАТЬ: ЕЩЕ ПАРА ВАРИАНТОВ:
ОТЧEТ по лабораторной работе №2 по дисциплине: “Оптимизация и оптимальное управление” на тему: “Решение задачи оптимизации методом чисел Фибоначчи”
Цель работы: Изучение метода чисел Фибоначчи и оптимизация заданной функции всеми тремя методамиСведения из теорииМетод Фибоначчи является наиболее эффективным методом сокращения интервала неопределенности; однако для применения его необходимо задаваться общим числом вычислений, что не всегда удобно. Начиная поиск минимума неизвестной функции, проектировщик может не иметь четкого представления о желаемом числе анализов модели. Заметим, что метод дихотомии и золотого сечения свободны от этого недостатка. К тому же, метод золотого сечения лишь ненамного (17 %) уступает по точности методу Фибоначчи. Таким образом, если количество вычислений не задано, то используется метод «золотого» сечения, если задано, - то Фибоначчи.
В табл. 1 приведены некоторые из чисел Фибоначчи. Таблица 1.
Рассмотрим теперь алгоритм поиска, использующий числа Фибоначчи (рис. 1). Порядок его выполнения при поиске минимума складывается из следующих этапов: 1. По заданной точности Δ, с которой необходимо найти положение экстремума функции R(x) в интервале [a, b], рассчитывается вспомогательное число N: (1) 2. Для полученного значения N находится такое число Фибоначчи Fs , чтобы выполнялось неравенство: (2) 3. Определяется минимальный шаг поиска по формуле: (3) 4. Рассчитывается значение функции R(x) в начале интервала, т. е. R(a). 5. Следующая точка, в которой вычисляется значение R(x), находится по формуле: (4) 6. Если этот шаг оказался удачным, т. е. R(x(1) )< R(a), то следующая точка определяется как (5) При R(x(1) )> R(a) (шаг неудачный) (6) 7. Последующие шаги выполняются с уменьшающейся величиной шага, которая для i-го шага будет равна (7) в соответствии со следующим правилом. Если при выполнении шага Dx(i ) значение функции в точке x(i+1) = x(i ) + Dx(i ) оказывается меньше, т. е. R(x(i+1) )< R(x(i ) ) (шаг удачный), то следующий (i +1)-й шаг выполняется из точки (8) Если же i -й шаг оказался неудачным, т.е. R(x(i+1) )> R(x(i ) ), то следующий (i +1)-й шаг выполняется из точки x(i ) : (9) Указанный процесс продолжается до тех пор, пока не будут исчерпаны все числа Фибоначчи в убывающей последовательности: Fs-i-2 = Fs-i – Fs-i-1 (10)
Практическая частьЗадание: Найти экстремум функции: на интервале [3;3.3] с точностью 0,02. Решение: PROGRAM FIBONACHI2; USES crt; VAR i,j,s,k:integer; H:array[1..15] of real; F:array[1..15] of real; Q:array[1..15] of real; dx:array[1..15] of real; A:real; B:real; d:real; dl:real; optim:real; BEGIN clrscr; F[1]:=1; F[2]:=2; F[3]:=3; F[4]:=5; F[5]:=8; F[6]:=13; F[7]:=21; F[8]:=34; F[9]:=55; F[10]:=89; F[11]:=144; F[12]:=233; F[13]:=377; F[14]:=610; F[15]:=987; A:=350; B:=369; s:=22; dl:=(B-A)/F[s]; H[1]:=a; j:=0; n:=0; optim:=0; for i:=1 to 15 do begin n:=s-2-j; j:=j+1; dx[j]:=dl*F[n]; end; H[2]:=H[1]+dx[1]; for i:=1 to 14 do begin Q[i]:=-188.887+0.447*H[i]; Q[i+1]:=-188.887+0.447*H[i+1]; if Q[i+1]>Q[i] then H[i+2]:=H[i+1]+dx[i+1]; if Q[i+1]<Q[i] then H[i+2]:=H[i+1]-dx[i+1]; end ; for i:=1 to 14 do begin write ('H',i,'=',H[i]:5:3); write (' Q',i,'=',Q[i]:5:7); writeln; end; write ('H','[optim]','=',H[14]:5:3); END.
Выводы: В результате выполнения этой лабораторной работы мы научились вычислять находить экстремумы функции с помощью метода чисел Фибоначчи и показали, что этот метод позволяет с помощью небольшого количества итераций оптимизировать функции с высокой точностью. Похожие статьи:
|
|