Расчетно-графическая работа - Метод золотого сечения - файл n2.docx

Расчетно-графическая работа - Метод золотого сечения
скачать (161.6 kb.)
Доступные файлы (7):
n1.exe
n2.docx133kb.16.02.2010 12:14скачать
n3.vsd
n4.frm
n5.frx
n6.vbp
n7.vbw

n2.docx





Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального

образования

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Расчетно-графическая работа

по Теории принятия решения

Метод золотого сечения

Выполнил: студент гр.

Проверил:
Уфа 2010

Метод золотого сечения — метод поиска значений действительно-значной функции на заданном отрезке. В основе метода лежит принцип деления в пропорциях золотого сечения. Наиболее широко известен как метод поиска экстремума в решении задач оптимизации.

Определение:

Говорят, что точка x осуществляет золотое сечение отрезка , если



В качестве и выберем точку золотого сечения отрезка и симметричную ей.

Если, то при указанном выборе точек получаем, что – точка золотого сечения отрезка, а – точка золотого сечения отрезка. Таким образом, на каждом шаге, кроме первого, необходимо вычислять значение только в одной точке, вторая берется из предыдущего шага.

Описание метода:


Параметр на входе: – достаточно малая положительная константа, погрешность метода.

1.

2. Повторять:

3. Если, то ;

4. Если , то;

5. пока ;

6. .

Блок-схема алгоритма




Код программы на Visual Basic 6.0
Private a, b, e, F, x, fi As Single

Public Function Fn(x)

Fn = x ^ 5 - 5 * x ^ 3 + 10 * x ^ 2 - 5 * x' процедура вычисления значения функции

End Function

Private Sub Command1_Click()

a = CSng(Text1.Text) ' получение значения начало отрезка - точки a

b = CSng(Text2.Text) ' получение значения конца отрезка - точки b

e = CSng(Text3.Text) 'получение значения погрешности

fi = (1 + Sqr(5)) / 2 ' вычисление значения отношения золотого сечения

X1 = b - (b - a) / fi ' точка золотого сечения

X2 = a + (b - a) / fi 'точка симметричная точке золотого сечения

Do While (b - a) / 2 >= e

yx1 = Fn(X1) ' вычисление значений функции в точке x1

yx2 = Fn(X2) ' вычисление значений функции в точке x2

If yx1 > yx2 Then

a = X1

X1 = X2

X2 = b - (X1 - a)

Else

b = X2

X2 = X1

X1 = a + (b - X2)

End If

Loop

x = (a + b) / 2 ' координата точки минимума функции

F = Fn(x) ' значение функции в точки минимума

Text4.Text = F

Text5.Text = x

End Sub
Окно программы



Вывод:

По составленной блок-схеме алгоритма золотого сечения написал программу и нашел искомую точку минимума функции на отрезке с заданной точностью при



Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации