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

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

5.1 Определить координаты четырех точек со случайным отклонением от экспоненциальной зависимости в интервале X=0,1 ... 4. Провести интерполяцию полиномом для четырех вариантов с различной вносимой для экспоненты погрешностью ( 1%, 2%, 5%, 10% ).

5.2 Выполнить аппроксимацию для 40 точек, полученных аналогично п.5.1 для вариантов с той же погрешностью. Использовать в качестве аппроксимирующей зависимости линейную комбинацию X2и X4.

5.3 Составить процедуру, проводящую сравнительную аппроксимацию МНК и интерполяцию кубическим полиномом. Провести расчеты по условиям п.5.1.

5.4 Составить процедуру, реализующую линейный вариант МНК, при котором коэффициенты аппроксимирующей зависимости P(x)=a+bx определяются без решения системы уравнений как

Провести линейную аппроксимацию для четырех вариантов случайного отклонения точек от горизонтальной прямой. Варьировать количество точек ( N = 10, 20, 50, 100 ) при отклонении не более 10%.

Список литературы

1. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. – М.: Наука, 1987.

2. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров. – М.: Машиностроение, 1991.

3. Бронштейн И.Н., Семендяев К.А. Справочник по математике. – М.: Наука, 1986.

4. Гилой В. Интерактивная машинная графика. – М.: Мир, 1981.

5. Де Бор К. Практическое руководство по сплайнам: Пер с англ. – М.: Радио и связь, 1985.

6. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0. – М.: Диалог – МИФИ, 1995.

7. Завъялов Ю.С., Леус В.А., Скороспелов В.А. Сплайны в инженерной геометрии. – М.: Машиностроение, 1985.

8. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. – Томск, 1991.

9. Райхмист А.Б. Графики функций: Справочное пособие для вузов. – М.: Высшая школа, 1991.

10. Сидоров М.Е., Трушин О.В. Школа работы на IBM PC. Часть 2: Программирование в среде Turbo Pascal. – Уфа, 1996.

11. Фаронов В.В. Турбо-Паскаль 7.0. Начальный курс. Учебное пособие. – М.: Нолидж, 1997.

12. Фаронов В.В. Турбо–Паскаль (в 3–х книгах). – М.: Учебно-инженерный центр МВТУ–ФЕСТО ДИДАКТИК, 1992,1993.

13. Цимринг Ш.Е. Специальные функции и определенные интегралы. Алгоритмы. Программы для микрокалькуляторов: Справочник. – М.: Радио и связь, 1988.

14. Шикин Е.В., Борисов А.В., Зайцев А.А. Начала компьютерной графики. – М.: Диалог– МИФИ, 1993.

15. Яворский Б.М., Детлаф А.А. Справочник по физике. – М.: Наука, 1977.

Приложение А

А.1 Процедура построения графика аппроксимирующей функции

type arr=array[1..640] of real; { массивы координат графика }

PROCEDURE GR_I( X,Y: arr; Xp,Yp: mas;

n,np, left,right,up,down: integer);

{ Построение графика функции по массиву X,Y декартовых координат.

Функция определена как аппроксимирующая массив точек Xp,Yp }

var

Xg,Yg: array[1..640] of integer;

X_,Y_: array[1.. 20] of integer;

Xg0,Yg0,k: integer;

kX,kY, Ymin,Ymax,Xmin,Xmax: real;

begin

{ Экстремумы: вначале присваиваем им значения из рассматриваемых }

Ymin:=Y[1]; Ymax:=Y[1]; Xmin:=X[1]; Xmax:=X[1];

{ перебор координат графика при нахождении экстремумов }

for k:=2 to n do begin

if Ymin>Y[k] then Ymin:=Y[k];

if Ymax<Y[k] then Ymax:=Y[k];

if Xmin>X[k] then Xmin:=X[k];

if Xmax<X[k] then Xmax:=X[k] end;

{ перебор аппроксимируемых точек при нахождении экстремумов }

for k:=1 to np do begin

if Ymin>Yp[k] then Ymin:=Yp[k];

if Ymax<Yp[k] then Ymax:=Yp[k];

if Xmin>Xp[k] then Xmin:=Xp[k];

if Xmax<Xp[k] then Xmax:=Xp[k] end;

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

kX:=(right-left)/(Xmax-Xmin);

kY:=( down- up )/(Ymax-Ymin);

for k:=1 to n do begin

{ точки графика в системе координат экрана }

Xg[k]:=left +round( kX*(X[k] -Xmin));

Yg[k]:=down -round( kY*(Y[k] -Ymin)) end;

setcolor(11);

Rectangle( left,up,right,down); { выделение области графика }

setcolor(10);

{ выводим ось ординат, если она расположена в области графика }

if Xmin*Xmax<=0 then begin

Xg0:=left-round( Xmin*kX);

line( Xg0,up, Xg0,down);

OuttextXY( Xg0+3,up+5,'Y') end;

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

if Ymin*Ymax<=0 then begin

Yg0:=down+round( Ymin*kY);

line( left,Yg0, right,Yg0);

OuttextXY( right-10,Yg0+6,'X') end;

setcolor(14);

setLineStyle(0,0,3);

moveto( Xg[1],Yg[1]); { строим график }

for k:=2 to n do lineto( Xg[k],Yg[k]);

{ интерполируемые точки }

for k:=1 to np do begin

X_[k]:=left +round(kX*(Xp[k] -Xmin));

Y_[k]:=down -round(kY*(Yp[k] -Ymin)) end;

setcolor(12);

for k:=1 to np do FillEllipse(X_[k],Y_[k],4,4)

end;

А.2 Процедура решения системы уравнений методом Гаусса

Type mas =array[1..20] of double;

mas2=array[1..20,1..21] of double;

{------------------------------------------------------}

PROCEDURE GAUSS(A: mas2; B: mas; var X: mas; N: integer);

Var i,j, k,im: integer;

S,R: double;

begin

{ Формирование расширенной матрицы –

запись столбца свободных членов в общую матрицу А }

For i:=1 to N do A[i,N+1]:=B[i];

{Прямой ход метода Гаусса (последовательное исключение неизвестных)}

For k:=1 to N do begin { перебор уравнений }

S:=A[k,k]; { диагональный элемент }

im:=k; { индекс максимального диагонального элемента }

For i:=k+1 to N do { перебор элементов столбца вниз от диагонали }

If abs( A[i,k])>abs( A[k,k]) then begin

S:=A[i,k];

im:=i{ значение и индекс максимального по модулю элемента в столбце}

end;

If S=0.0 then begin

Writeln('Нет решения СУ – det=0 !');

Exit end;

{ перестановка уравнений – на диагональ попадет

наибольший в текущем столбце элемент }

If im<>k then for j:=k to N+1 do begin

R:=A[k,j]; A[k,j]:=A[im,j]; A[im,j]:=R end;

{ делим строку на диагональный элемент }

For j:=k+1 to N+1 do A[k,j]:=A[k,j]/A[k,k];

For i:=k+1 to N do{ перебор элементов столбца вниз от диагонали }

For j:=k+1 to N+1 do

{ перебор элементов строки вправо от диагонали }

A[i,j]:=A[i,j] - A[i,k]*A[k,j]

End{k};

X[N]:=A[N,N+1]; { для последнего уравнения }

{ Обратный ход метода – последовательное определение неизвестных }

For i:=N-1 downto 1 do begin

{ начальное значение – свободный член строки матрицы }

S:=A[i,N+1];

For j:=i+1 to N do

S:=S -A[i,j]*X[j];

X[i]:=S end

End;

Составитель: ТРУШИН Олег Владимирович

Графики и траектории

Методические указания

к лабораторным работам по учебной практике для подготовки инженеров по специальности 210100 ”Управление и информатика в технических системах”

Редактор Г.Р. Орлова

ЛБ № 0192 от 16.10.96

Подписано к печати Формат 60 Х84 1/16.

Бумага оберточная. Печать плоская. Усл. печ. л. 1.8

Усл. кр. – отт. 1,7 Уч.-изд. л. 1,7. Тираж 150 экз.

Заказ № . Бесплатно

Уфимский государственный авиационный технический университет

Уфимская типография № 2 Министерства печати и массовой

информации Республики Башкортостан

450000, Уфа – центр, ул. К. Маркса, 12