
- •Содержание
- •1 Цель работы
- •3 Методика построения набора графиков
- •4 Практическое задание
- •1 Цель работы
- •2 Построение графика функции, заданной в параметрической форме
- •3 Практическое задание
- •1 Цель работы
- •2 Метод конечных разностей при расчете траекторий движения
- •3 Алгоритм расчета траектории движения точки
- •4 Программа построения траекторий полета снаряда
- •5 Практическое задание
- •6 Траектории движения в центральном поле
- •7 Практическое задание
- •1 Цель работы
- •2 Интерполяция дискретных данных полиномом
- •3 Аппроксимация методом наименьших квадратов
- •4 Алгоритм аппроксимации мнк
- •5 Практическое задание
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.