Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Широкова.doc
Скачиваний:
17
Добавлен:
24.03.2016
Размер:
11.21 Mб
Скачать

Вычисление максимума функции

Рассмотрим метод нахождения максимума функции на заданном отрезке.

Для нахождения максимума монотонной функции на интервале разработан ряд алгоритмов. Простейшим, из них являются «метод последовательного перебора». Данный метод позволяет найти глобальный максимум функции на заданном отрезке. В рамках курсовой работы все варианты функций имеют один максимум на отрезке.

x min

x max

Frame3Frame4Frame5Frame6

Рис.6

Рассмотрим метод последовательного перебора для поиска максимума функции F(x) на отрезке [a,b].

Примечание: для отыскания минимума функции на отрезке необходимо при вычислениях в алгоритме метода изменить знак функции на противоположный и далее действовать по приведенным далее алгоритмам.

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

Схема алгоритма представлена на рисунке.

  1. Начальное значение аргумента maxXвыбирается произвольно изнутри исследуемого отрезка [a,b] и присваивается переменнойmaxX.maxFx=F(X). ВыбиратьmaxXвне отрезка [a,b] нельзя, так как значение функции при данном Х может оказаться больше любого значения функции внутри отрезка значений аргумента [a,b].

  2. Вычисляется значение аргумента Xиз отрезка и значение функцииY=F(x)

  3. Сравнивается значение maxFx<Y. ЕслиmaxFx<Yверно, тоmaxFx=Y,maxX= X, в противном случае П.4

  4. Вычисляем новое Х=Х+ step

  5. Если X<bто П.2

Рис.7

Минимум функции ищется аналогично. При вычислении максимума и минимума на отрезке монотонной функции важно проверить наличие максимума/минимума на концах отрезка. Если шаг приращения аргумента не укладывается целое число раз на отрезке [a,b] то точка b останется не проверенной (шаг задавать кратным).

' начальное значение выбираем произвольное

maxfx = s(p, i, 0) ' максимальное значение функции _

‘(до их вычисления)

For st = 0 To n Step step_t ' вычислим максимальное значение

‘ функции

If maxfx < s(p, i, st) Then ' вычислим максимальное

‘значение функции

maxfx = s(p, i, st) '

maxx=st

End If '

Next st

Цикл For используется для пошагового расчета значений аргумента исследуемой функции. Каждая получившаяся точка (X,Y) , где X=st, Y=f(St) сравнивается со значением максимума функции найденным на предыдущем шаге.

Найденные значения максимума функции будут использованы для вычисления системы координат области построения графика.

Установка системы координат

После вычисления значений максимального значения функции на отрезке (переменные maxFx) с помощью метода Scale можно задать систему координат для рисования графика. Значения координат не должны превышать диапазон значений числа типа Single языка программирования VB. Для этого достаточно лишь ограничится проверкой допустимости значений параметров Scale и в случае нарушения условий вывести сообщение об ошибке, прекратив построение графика функции.

Допустимый диапазон значений для типа Single.

-3.402823E38 to -1.401298E-45 и 1.401298E-45 to 3.402823E38

В данном случае это условие относится к значению переменной maxfx.

'проверяем на принадлежность диапазону значений

'0 и 1.401298E-45 to 3.402823E38

If (maxfx >= 1.401298E-45 And maxfx <= 3.402823E+38) or _

maxfx = 0 Then

' все в порядке

maxfx = CSng(maxfx)

Else

MsgBox "Значение максимума функции не принадлежит” & _

“ допустимому диапазону!" & maxfx, vbCritical, ""

Exit Sub

End If

После проверки на допустимость значений создаем систему координат.

Picture1.Scale (CSng(0), CSng(maxfx))-(CSng(n), CSng(0))