
- •Содержание
- •1 Цель работы
- •3 Методика построения набора графиков
- •4 Практическое задание
- •1 Цель работы
- •2 Построение графика функции, заданной в параметрической форме
- •3 Практическое задание
- •1 Цель работы
- •2 Метод конечных разностей при расчете траекторий движения
- •3 Алгоритм расчета траектории движения точки
- •4 Программа построения траекторий полета снаряда
- •5 Практическое задание
- •6 Траектории движения в центральном поле
- •7 Практическое задание
- •1 Цель работы
- •2 Интерполяция дискретных данных полиномом
- •3 Аппроксимация методом наименьших квадратов
- •4 Алгоритм аппроксимации мнк
- •5 Практическое задание
7 Практическое задание
7.1 Построить траекторию вращения спутника вокруг Земли, приняв начальную скорость 8 км/с и высоту 2 км при alfa=00. Подобрать
для этой высоты такую скорость, чтобы получить круговую орбиту.
7.2 Рассчитать траекторию спутника с учетом торможения в атмосфере Земли при H<20 км. Ускорение сил сопротивления нелинейно
зависит от скорости и высоты, например: aсопр=10–6 V2 /(H2+1).
7.3 Рассчитать траекторию полета спутника в поле тяготения двойной звезды ( можно для упрощения взять два небесных тела типа Земли с расстоянием между ними 20 радиусов Земли ). Просчитать три варианта для различной начальной скорости V.
V
H
20 Rz
Лабораторная работа № 4
Изучение методов Аппроксимации
1 Цель работы
Изучение и сравнительный анализ классических приемов построения аппроксимирующих зависимостей для экспериментальной информации при построении математических моделей.
2 Интерполяция дискретных данных полиномом
При математическом моделировании самых различных процессов или явлений одна из главных задач – определение и описание функциональных зависимостей для них. Причем обычно известны лишь дискретные значения функций, входящих в математическое описание модели, причем точность этих значений может быть невысокой. Табличное представление функций в большинстве случаев математического моделирования неприемлемо, поэтому применяют их приближение ( аппроксимацию ) какой-либо простой функцией, обычно полиномом.
Интерполяция экспериментальных точек – это вид аппроксимации, при котором подбирается функция, точно проходящая через все эти точки. При интерполяции полиномом его степень должна быть равна количеству точек Nдля однозначного расчета коэффициентовk iполинома
(1)
из условия
,
(2)
где Fi- аппроксимируемые значения функции для выбранных значений аргумента ( значения функции в узлах ).
Прямое нахождение коэффициентов полинома (1) неэффективно, так как требует решения системы Nуравнений (2). Существует несколько методов представления интерполяционного полинома, не требующих громоздких вычислений 1,8. Наиболее удобна для программирования форма, предложенная Лагранжем
.
(3)
При этом в узлах x=xi выполняется условие (2).
Ниже приведен пример программы интерполяции набора точек, сгенерированных со случайным отклонением от линейной зависимости, с использованием функции Fрасчета полинома Лагранжа. При контроле получаемых результатов используется процедураGR_Iвывода графика, модифицированная с дополнительным отображением интерполируемых точек ( см. приложение А ).
uses Crt, Graph;
Type mas =array[1..20] of double;
{$I gr_i.pas} { подключение файла с процедурой вывода графика,
модифицированной с дополнительным отображением интерполируемых
точек
-------------------------------------------------------}
function F( x: real; m: integer; xp,yp: mas): real;
var i,j: integer; s,p: real;
{ Интерполяционный полином Лагранжа для набора точек xp,yp ,
количество точек – m }
begin
s:=0; For i:=1 to m do begin p:=1;
For j:=1 to m do
if i<>j then p:=p*(x-xp[j])/(xp[i]-xp[j]);
s:=s+yp[i]*p end;
F:=s end;
{------------------------------------------------------}
var x,y: arr; { массивы координат для интерполирующей функции }
xp,yp: mas; { массивы координат для интерполируемых точек }
Gd,Gm, n,i,m: integer; a,b: real;
begin n:=200; { число точек графика }
m:=6; { число интерполируемых точек }
a:=-0.5; b:=m-1-a; { края интервала аргумента
Задаем случайные аппроксимируемые точки }
for i:=1 to m do begin xp[i]:=i-1;
yp[i]:=3*xp[i]+random(5) end;
{ расчет массива точек для графика }
for i:=1 to n do begin x[i]:=a+(i-1)*(b-a)/(n-1);
y[i]:=F( x[i],m, xp,yp) end;
Gd:=0; Initgraph(Gd,Gm,'');
{ вызов подпрограммы построения графика }
GR_I( x,y, xp,yp, n,m, 30,400,80,300);
ReadKey; CloseGraph end.
недопустимо большие отклонения,
выражающиеся чаще всего Рисунок 1
в осцилляциях интерполирующего полинома ( рисунок 1 ).
В таких случаях используют интерполяцию сплайн-функциями
( набором функций одного вида, каждая из которых охватывает свой участок узлов и плавно "стыкуется" с соседними функциями ) или аппроксимацию без точного прохождения через узлы.