Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 7.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
295.94 Кб
Скачать

7.8.3. Поиск экстремумов нелинейных функций.

Чтобы график заданной функции входил в предоставленное для его изображения окно, необходимо точно рассчитать масштабы Мх и My. Точность масштаба по оси Y (My) зависит от того, насколько точно будет произведен расчет граничных значений (экстремумов) функции Уф,min и Уф,mах в заданном диапазоне (Хн;Хк).

Если экстремумы линейных функций рассчитываются достаточно просто (для этого необходимо вычислить заданную функцию в границах изменения аргумента (Хн = А, Хк = В), то экстремумы нелинейных функций зависят от самих функций и могут находиться в середине введенного диапазона изменения аргумента.

Для нахождения экстремумов нелинейных функций рекомендуется следующий алгоритм поиска:

1. После ввода границ изменения аргумента (Хн = А, Хк = В) и количества точек графика N вычислить шаг изменения аргумента h.

h=(B-A)/N.

2. Задать начальное значения аргумента Х = Хн; вычислить FX = f(х), после чего полученное значение FX присвоить Yф,min и Yф,mах.

3. Вычислить следующее значения аргумента Х = Х + h.

4. Если Х > Хк, то закончить поиск экстремумов.

5. Вычислить FX = f(x); если FХ<Yф,min, то присвоить Yф,min значение FX, а также если FХ>Уф,mах, то присвоить Yф,mах значение FX. Повторять операции пп. 3-5, пока не выполнится условие п.4. На основе рассмотренного алгоритма можно использовать следующий вариант реализации.

program prog_graph;

uses Graph, Crt,......;

var grDriv, grMod : integer;

код графического режима

код видеографического устройства

{ Процедуры и функции }

function F(var x: real) : real

begin

{ Вычисление заданной функции }

end;

procedure Extr (Xmin,Xmax:real;count:integer; var Ymin,Ymax:real;dx:real);

var Y: real;

begin dx:= (Xmax-Xmin)/count;

Ymin := F(Xmin);

Ymax := Ymin;

while (Xmin+dx)<=Xmax do

begin Xmin := Xmin+dx;

Y:=F(Xmin);

if Y<Ymin then Ymin := Y;

if Y>Ymax then Ymax := Y;

end;

end;

begin

write('Bведите XN, XK:'); { Ввод исходных данных}

readln(Xn, Xk); { в текстовом режиме } write('Bведите количество точек графика:');

readln(N);

{—— Запуск процедуры вычисления экстремумов -——-) Extr(Xn,Xk,N,Yn,Y,h);

end.

7.9 Варианты заданий

Таблица 25

№ вар.

Функция

Количество шрифтов (не менее)

Количество размеров шрифтов (не менее)

1.

ax+b/x

2

1

2.

ax2 + bx +c

1

2

3.

exp(-x2/2)

2

2

4.

2

1

5.

a*sin(x)+b

1

2

6.

a-X, есш Х < (Хн +Хк)/ 2

a-X, есш Х(Хн+Хк)/2

2

2

7.

а•x + cos(b•x)

2

1

8.

exp (-a x) sin(b•x)

1

2

9.

(exp(-x) + ехр(х)) / а

2

2

10.

a•tg(b•x)-c

2

1

11.

a•ctg(b•x)

1

2

12.

а•sec(b • x) + с

2

2

13.

а•cosec(b • x)

2

1

14.

а • sin(x) + b • sm(2x)

1

2