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

Использование ППП Excel для поиска экстремумов функций одной переменной.

Для поиска максимумов функций одной переменной необходимо:

Вызвать Подбор параметра, с помощью команды в менюСервис. Окно Подбор параметра состоит из трех полей:

-Установить целевую ячейку, в котором ставится ссылка на ячейку с формулой (Y);

-Равной – выбираем максимальному значению;

-Изменяя ячейки, в которой ставится ссылка на ячейку с изменяемым параметром (первая граница, а интервала (а,в)).

После нажатия кнопки OK, появляется окно, Результаты поиска решения,

сохраняем найденное решение. Полученное решение:

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

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

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

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

105

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

модуля.

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

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

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

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

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

Найти оптимальное значение функции y двумя способами: методом

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

БЛОК-СХЕМА

Начало a, b, e

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

dih

"при X=";

f(xmax)

a = 0

b = 1

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

zolot

"при X=";

f(xmax)

Конец

Вызов подпрограммы метода дихотомии

вход

Подпрограмма

 

метода дихотомии

|(b-a)| <

xmax=(a + b) / 2

x1=(a + b - E)/2

выход

x2=(a + b +

f(x1) >

a = x1

b = x2

106

Начало

a, b, e

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

 

dih

 

Вызов подпрограммы

 

 

метода дихотомии

 

 

 

"при X="; xmax

f(xmax)

 

 

a = 0

вход

Подпрограмма

 

b = 1

 

метода дихотомии

 

 

"Значения max

|(b-a)| <

 

 

 

по методу

x1=(a + b -

xmax=(a + b) / 2

золотого

 

zolot

x2=(a + b +

выход

 

"при X=";

 

 

xmax

f(x1) >

 

f(xmax)

b = x2

a = x1

 

 

Конец

 

 

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

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

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

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

107

вход

k = 5 - 1 2

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

x2 = a + k * (b - a)

Подпрограмма метода золотого сечения

|(x2 -x1)| < E

xmax = (x1 + x2) / 2

f(x1) < f(x2)

 

 

 

 

 

 

 

 

выход

 

 

 

 

 

 

 

b = x2

 

 

 

a = x1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 = x1

 

 

 

x1 = x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 = a + k * (b - a)

 

 

 

 

 

 

 

 

 

 

 

 

 

вход

 

Подпрограмма ФУНКЦИИ

 

 

 

 

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

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

ПРОГРАММА НА АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ QBASIC

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

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

DECLARE FUNCTION f! (x!)

108

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

109