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