Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo Pascal / Методические указание / Графики и троектории.DOC
Скачиваний:
46
Добавлен:
15.06.2014
Размер:
225.79 Кб
Скачать

4 Практическое задание

4.1 Построить графики функций, заданных по одному из вариантов в таблице 1:

а) Y1( x) и Y2( x) в разных областях экрана;

б) Y1( x) и Y2( x) в одной области экрана.

4.2 Выполнить п. 4.1, предварительно доработав подпрограмму вывода набора графиков. Необходимо ввести в параметры подпрограммы названия видов отображаемых функций, а также показывать диапазоны

изменения значений аргумента и функции на осях координат.

Таблица 1

Функция Y1( x)

Диапазон x

Функция Y2( x)

1 Sin(x)

-5 ...5

Sin(x2)

2 Cos(x2-4x-1)

3 --/--

-1 ...10

-10 ...10

Sin(x2-4x-1)

--/--

4 (x2-1)/(x4+1)

-1.5 ...1.5

-x5 +2x3-1

5 x(x-3)(x+1)

-3 ...3

x(x-3)(x-1)

6 ex+e-x

-3 ...3

ex+e-2x

7 x2 Sin(1/x)

8 --/--

0.1 ...3

0.01 ...0.1

x3 Sin(1/x2)

--/--

9 x Sin2(1/x)

10 --/--

0.1 ...5

0.01 ...0.1

(x+1)Sin2(1/x)

--/--

11 Sqrt(x2+2)Sin(x)

12 --/--

-10 ...10

-1 ...1

(x+1)Sin(x)

--/--

4.3 Построить в одной области экрана графики функций Y(x) и YN(x) по одному из вариантов таблицы 2. График функции YN(x) строится для трех и четырех членов разложения функции Y(х) в ряд Тейлора.

Например, для первого пункта таблицы нужно построить графики

Y(x)=ex, Y3(x)=1+x+x2/2, Y4(x)=1+x+x2/2+x3/6.

Таблица 2

Y( x)

Разложение в ряд Тейлора YN( x)

Интервал x

1 ex

1 +x +x2/2! +x3/3! + ..

-2..2

2 Sin(x)

x -x3/3! + x5/5! -x7/7! + ..

-3..3

3 Cos(x)

1 -x2/2! + x4/4! -x6/6! + ..

-3..3

4 (1+x)m

m=0.5, 1, 2

1 +mx +m(m-1)x2/2! +

m(m-1)(m-2)x3/3!+..

-0,9..0,9

5 Ln(1+x)

x -x2/2 +x3/3 -x4/4 + ..

-0,95..3

6 sh(x)

x +x3/3! + x5/5! +x7/7! + ..

-2..2

7 ch(x)

1 +x2/2! + x4/4! +x6/6! + ..

-3..3

8 Arctan(x)

x -x3/3 +x5/5 -x7/7 + ..

-1..1

Лабораторная работа № 2

Построение графиков функций, заданных в НЕявном виде

1 Цель работы

Практическое освоение методологии построения графиков функций, заданных в параметрической форме Y=FY( t), X=FX( t) или в неявной форме F( X,Y)=0, которая часто определяется какими-либо реальными физическими процессами или явлениями.

2 Построение графика функции, заданной в параметрической форме

Параметрическая форма задания функций Y=FY( t), X=FX( t) в большинстве случаев является более удобной при моделировании каких-либо явлений, чем явная форма. Наиболее часто используется представление в полярных координатах в виде зависимости длины радиус-вектора R от его направления ( alfa – угол между вектором и осью X, – используется в качестве параметра): R=F( alfa), X=R*sin( alfa), Y=R*cos( alfa).

а) Определяем массивы значений параметра t[i] , а также функций X[i]=FX(t[i]), Y[i]=FY(t[i]), где i=1..N. При равномерном разбиении интервала[A..B]изменения параметра массивы можно

задать операторами:

Dt:= (B-A)/(N-1); { шаг разбиения по t }

for i:=1 to N do begin

t[i]:=A +Dt*(i-1); X[i]:=FX(t[i]);

Y[i]:=FY(t[i]) end;

б) Определяем наибольшее Y_max и наименьшее Y_min значения функции Y=FY( t) в заданном интервале изменения параметра t и аналогично X_max, X_min для функции X=FX( t).

Далее расчет проводится по пунктам алгоритма построения графика

функции Y=F(X) ( стр. 6 ).

Пример программы построения графиков трех функций ( рисунок 1 ) в полярной системе координат:

uses Crt,Graph;

{$I g_mn.pas} { подключение файла с подпрограммой вывода

набора графиков }

{ Функции, графики которых строим в полярной системе координат }

function F1(x: real): real; begin F1:=sin(x)-0.5 end;

function F2(x: real): real; begin F2:=sin(2*x) end;

function F3(x: real): real; begin F3:=x/5 end;

var x,y: arr; { тип-массив определен в файлеg_mn.pas}

n,i,k, Gd,Gm: integer; a,b, fi,ro: real;

begin

n:=200; { число точек каждого графика }

a:=0; b:=2*pi; { диапазон изменения аргумента ( полярного угла) }

{ расчет массивов координат для функций }

for i:=1 to n do begin

x[1,i]:=a+(i-1)*(b-a)/(n-1);

y[1,i]:=F1(x[1,i]);

x[2,i]:=x[1,i]; y[2,i]:=F2(x[2,i]);

x[3,i]:=x[1,i]; y[3,i]:=F3(x[3,i]) end;

for k:=1 to 3 do { перебор графиков }

for i:=1 to n do begin

{ расчет массивов точек для графиков

в полярной системе координат }

fi:=x[k,i]; ro:=y[k,i];

{ перевод в декартовую для построения } Рисунок 1

x[k,i]:=ro*cos(fi);

y[k,i]:=ro*sin(fi) end;

Gd:=0; Initgraph(Gd,Gm,'');

{ вызов подпрограммы построения графиков с автомасштабированием }

G_MN(x,y, 3,n, 0,0,GetMaxX,GetmaxY);

ReadKey; CloseGraph end.