Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методич_стат-исправлено.doc
Скачиваний:
29
Добавлен:
09.04.2015
Размер:
2.22 Mб
Скачать

Содержание отчета

  1. Содержательная постановка задачи.

  2. Исходные данные.

  3. Краткое описание методов.

  4. Блок схема подпрограмм и блок схема головного (или управляющего) модуля.

  5. Листинг подпрограмм и управляющего модуля.

  6. Распечатка полученных результатов.

  7. Распечатка результатов в Excel и Эврика.

Пример выполнения лабораторной работы

Дана функция y = -2x2 + 3x + 50.

Найти оптимальное значение функции y двумя способами: методом «золотого сечения» и методом «половинного деления». Заданный интервал измерения x (0;1), точность вычисления E = 0.001.

Блок-схема

Р

1

ис. 8. Блок схема алгоритма (общая и процедура решения по методу половинного деления):

где а, b - нижняя и верхняя границы изменения х;

е - точность вычислений;

dih - процедура вычисления методом половинного деления;

zolot - процедура вычисления методом золотого сечения.

Рис. 9. Блок схема процедуры решения по методу золотого сечения, функция.

Программа на алгоритмическом языке qbasic

DECLARE SUB zolot (a!, b!, E!, xmax!)

DECLARE SUB dih (a!, b!, E!, xmax!)

DECLARE FUNCTION f! (x!)

CLS

INPUT "введите значения отрезка a="; a

INPUT "введите значения отрезка b="; b

INPUT "введите погрешность вычисления Eps="; E

REM метод дихотомии или половинного деления

CALL dih(a, b, E, xmax)

PRINT "Значения max по методу дихотомии"

PRINT "при X="; xmax

PRINT "значение функции Y(xmax)="; f(xmax)

a = 0

b = 1

PRINT "Значение max по методу золотого сечения"

CALL zolot(a, b, E, xmax)

PRINT "при X="; xmax

PRINT "значение функции Y(xmax)="; f(xmax)

END

SUB dih (a, b, E, xmax)

DO UNTIL ABS(b - a) < 2 * E

x1 = (a + b - E) / 2

x2 = (a + b + E) / 2

IF f(x1) > f(x2) THEN

b = x2

ELSE

a = x1

END IF

LOOP

xmax = (a + b) / 2

END SUB

FUNCTION f (x)

f = -2 * x ^ 2 + 3 * x + 50

END FUNCTION

SUB zolot (a, b, E, xmax)

k = (SQR(5) - 1) / 2

x1 = a + (1 - k) * (b - a)

x2 = a + k * (b - a)

DO UNTIL ABS(x2 - x1) < E

IF f(x1) < f(x2) THEN

a = x1

x1 = x2

ELSE

b = x2

x2 = x1

END IF

x1 = a + (1 - k) * (b - a)

x2 = a + k * (b - a)

LOOP

xmax = (x1 + x2) / 2

END SUB

Результат в Qbasic

Значение max по методу дихотомии

при X= .7563525

значение функции Y(xmax)= 51.12492

Значение max по методу золотого сечения

при X= .748997

значение функции Y(xmax)= 51.125

Решение задачи с использованием ппп Eureka

$ max(F)

y(x)=-2*x^2+3*x+50

F=y(x)

Решение:

Переменные Значения

F = 51.125000

x = .75000000

Все ограничения удовлетв. = 98,6%

График функции имеет вид:

Y(x) = -2x^2 + 3*x + 50

Рисунок 10. График в Эврике.

Задания для выполнения лабораторной работы «Оптимизация технологического процесса»

В соответствии с содержательной постановкой задачи (описанной ранее) студенты определяют диапазон нахождения оптимального значения функции y = ax2 + bx + c. Коэффициенты квадратичной модели студенты выбирают самостоятельно.

По указанию преподавателя студенты составляют блок-схемы алгоритмов решения задачи, программы на алгоритмическом языке для решения задачи предлагаемыми методами.

Отладив программу на ЭВМ, получив решение задачи, студенты анализируют полученные решения и сравнивают их с решением, полученным с помощью ППП Eureka и Excel.

Контрольные вопросы

  1. Какой экстремум называется глобальным?

  2. Что такое унимодальная функция?

  3. В чем состоит задача оптимизации?

  4. Каким образом можно сузить интервал исследования?

  5. перечислите этапы алгоритма решения задачи нахождения максимума функции?

  6. Что происходит с уменьшением шага изменения аргумента?

  7. Перечислите методы оптимизации функции?

  8. На чем основан метод равномерного поиска?

  9. Каким алгоритмом реализуется метод дихотомии?

  10. Для каких функций пригоден метод половинного деления?

  11. Какого основное достоинство метода половинного деления?

  12. В чем заключается метод Фибоначчи?

  13. На чем основан метод «золотого сечения»?

  14. Приведите алгоритм метода «золотого сечения»?

  15. Какой из рассмотренных в лабораторной работе методов приводит к более «быстрому» решению?

  16. Какие подпрограммы Вы использовали в лабораторной работе?

  17. Каким оператором осуществляется вызов процедуры?

  18. Где используются формальные и фактические параметры?