|
Министерство образования, науки и спорта молодежи Украины
Севастопольский национальный технический университет
Кафедра технической кибернетики
Отчет
По лабораторной работе № 1
«Интерполирование функции полиномом (форма Ньютона)»
Выполнила: студентка гр. А-21д
Санникова Мария
Проверил:Захаров
Севастополь
1 ЦЕЛЬ РАБОТЫ
Целью данной работы является:
· Освоение методов алгоритмизации и программирования представления интерполяционного полинома Ньютона с равномерным расположением узлов.
· Изучение свойств интерполяционного полинома Ньютона.
· Исследование зависимости ошибки интерполирования функции от количества и расположения узлов для интерполяционного полинома Ньютона.
2 ПОСТАНОВКА ЗАДАЧИ
В лабораторной работе необходимо с помощью составленной программы выполнить следующие расчеты и исследования:
1. Исследовать зависимость поведения интерполяционного полинома Fm(x) и ошибки интерполирования при разных значениях m от:
a) кривизны функции f(x) на разных участках интервала [0,1];
b) расположения значения аргумента x относительно узлов интерполирования.
2. Исследовать зависимость поведения ошибки интерполирования и ошибки интерполирования на интервале от m.
Задание к работе:
Функция
где
№ варианта | С1 | С2 | С3 | С4 | С5 | Форма Fm(x) |
0,205 | -0,1 | -2,6 | 0,942 | -0,1375 | Ньютона |
3 КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Интерполирование - это приближённое определение значений функции f(x) в промежуточных точках заданного замкнутого интервала xB £ x £ xE изменения её аргумента x по известным значениям f(x1), f(x2),…, f(xm). Значения аргумента xiÎ[xB, xE], i=1,2…,m интерполируемой функции f(x) называются узлами интерполяции.
Интерполирование функции f(x) полиномом означает построение такого полинома минимальной степени Fm(x), который в m узлах интерполяции удовлетворяет условиям:
f(k)(xi) = Fm(k)(xi), i = 1,2,…,m, k = 0,1,…,mi-1 (1)
Здесь f(k)(xi) – известные значения функции f(x) и её производных k- ого порядка f(k)(x) в узлах интерполяции, а mi – кратность i- ого узла. Если mi=1, i-тый узел называется простым.
Интерполирование функций f(x) полиномом с простыми узлами (mi=1, i =1,2,…,m) означает построение такого полинома минимальной степени Fm(x), который в m узлах интерполяции удовлетворяет условиям:
f(xi) = Fm(xi), i = 1,2,…,m.
В работе предполагается, что узлы xi - простые и расположены равномерно на интервале [0,1]. При этом первый x1 и последний xm узлы находятся на концах интервала (x1=0, xm=1), так что шаг интерполирования h (расстояние между двумя соседними узлами) является величиной постоянной на интервале [0,1] и определяется формулой
h = 1/(m-1),
а узлы - формулой
xi = (i-1) h, i=1,2,…,m.
Интерполяционный полином Ньютона может быть представлен в виде
Fm (x) = , (8)
где
, wi (x,0) = 1. (9)
Коэффициенты аi интерполяционного полинома Ньютона определяются как решение системы линейных алгебраических уравнений с нижней треугольной матрицей коэффициентов, которая получается при подстановке (8) в (1). В случае равномерного расположения узлов коэффициенты аi определяются аналитически через конечные разности значений функции f(x) в узлах интерполирования формулой
.
Ошибка интерполирования функции f(x) на интервале обычно оценивается как максимальное значение на этом интервале абсолютной величины ошибки. Поскольку вычислить E(x) во всех точках интервала невозможно, то в работе предлагается вычислить её значение в точках
zi = (i-1)·0,01, i = 1,2,…,101
и определить оценку ошибки интерполирования функции на заданном интервале [0,1], как
e = |E(zi)|.
4 БЛОК-СХЕМА ПРОГРАММЫ
БЛОК 1 «Вычисление коэффициентов полинома»
5 ТЕКСТ ПРОГРАММЫ
program RTM;
uses CRT;
var i,j,k,m:integer;
wi,ti,x,tt,h,E,Emax,ex:real;
g,r,z:array [1..101] of real;
t:text;
name:string[20];
function toch(x:real):real;
begin
toch:=(0.205*x-0.1)/(x*x*x-2.6*sqr(x)+0.942*x-0.1375);
end;
procedure koeficient (m:integer; var t:array of real;
var g:array of real);
var i,j,k:integer;
wi,ti,z:real;
begin
t[1]:=0;
g[1]:=toch(t[1]);
for i:=2 to m do
begin
t[i]:=t[i-1]+h;
g[i]:=toch(t[i]);
end;
for j:=2 to m do
for i:=m downto j do
g[i]:=g[i]-g[i-1];
z:=1;
for k:=2 to m do
begin
z:=z*h*(k-1); g[k]:=g[k]/z;
end;
end;
procedure polinom(m:integer; var g,t:array of real; var x:real;
var tt:real);
var i,j:integer;
wi:real;
begin
x:=g[m];
for i:=m-1 downto 1 do
begin
x:=g[i]+(tt-t[i])*x;
end;
end;
begin
clrscr;
write('Enter the quantity of units of the interpolation:');
readln(m);
write('Enter the name of output file: ');
readln(name);
assign(t, name);
rewrite(t);
writeln(t,' The output data:');
writeln(t,'Quantity of units of the interpolation=',m);
writeln('Zna4eniya funkcii i polinom: ');
h:=1/(m-1);
for i:=1 to m do r[i]:=(i-1)*h;
koeficient (m,r,g);
writeln(t,'tt=0.00 ', 'f(tt)=',toch(tt):3:5,' Fm(tt)=',toch(tt):3:5,' E(x)=',(toch(tt)-toch(tt)):1:5);
writeln(' tt=0.00 ', 'f(tt)=',toch(tt):3:5,' Fm(tt)=',toch(tt):3:5,' E(x)=',(toch(tt)-toch(tt)):1:5);
for k:=1 to 101 do
begin
tt:=(k-1)*0.01;
polinom (m,g,r,x,tt);
E:=toch(tt)-x;
if eMax<abs(toch(tt)-x) then eMax:=abs(toch(tt)-x);
ex:=eMax;
if k mod 5=0 then
begin
writeln(t,' tt=',tt:1:2,' f(tt)=',toch(tt):3:5,' Fm(tt)=',x:3:5,' E(x)=',E:1:5);
writeln(' tt=',tt:1:2,' f(tt)=',toch(tt):3:5,' Fm(tt)=',x:3:5,' E(x)=',E:1:5);
end; end;
tt:=1.00;
begin
writeln(t,' tt=',tt:1:2,' f(tt)=',toch(tt):3:5,' Fm(tt)=',x:3:5,' E(x)=',E:1:5);
writeln(' tt=',tt:1:2,' f(tt)=',toch(tt):3:5,' Fm(tt)=',x:3:5,' E(x)=',E:1:5);
end;
if ex<1e-3 then writeln('Dostighut predel oshibki interpolirovaniya');
writeln ('eMax= ', eMax);
writeln (t,'eMax= ', eMax:3:10);
close(t);
writeln('The result is kept in a file ', name);
writeln('Press any key to exit...');
readln;
end.
6 РЕЗУЛЬТАТЫ МАШИННЫХ ВЫЧИСЛЕНИЙ
Программа выводит результаты на экран и в файл, показанные на рисунках 6.1, 6.2:
а) б)
в)
Рисунок 6.1 – Результаты работы программы, выведенные на экран:
а) m=3; б) m=8; в) m=20.
а) б) в)
Рисунок 6.2 – Результаты работы программы, выведенные в файл:
а) m=3; б) m=8; в) m=20.
Далее, соответственно, при m=30 e=0.991094609; при m=40 e=1.7449213742, при m=50 e= 182.9352106500; при m=70 e=103919480.5100000000
|
7 ГРАФИКИ
Далее представлены графики функции f(x), полиномов Fm(x), ошибок интерполи-рования при введенных значениях m и зависимости оценки ошибки интерполирования от количества узлов m.
График 7.1 – Функция f(x), полином Fm(x) и ошибка интерполирования при m=3.
График 7.2 – Функция f(x), полином Fm(x) и ошибка интерполирования при m=8.
График 7.3 –Функция f(x), полином Fm(x) и ошибка интерполирования при m=20.
График 7.4 – Зависимость оценки ошибки интерполирования от m.
ВЫВОДЫ
В результате выполнения лабораторной работы были изучены методы алгоритмизации и программирования одной из форм представления интерполяционного полинома, полинома Ньютона, с равномерным расположением узлов интерполирования, и исследована зависимость ошибки интерполирования. Составлена программа на языке Pascal, вычисляющая полином Ньютона.
Из приведённых графиков видно, что:
1) наименьшая погрешность достигается в точках интервала, находящихся наиболее близко к узлам интерполирования; погрешность возрастает приближаясь к середине интервала между узлами;
2) наибольшая погрешность наблюдаются на интервалах между узлами, лежащими на “краях” интервала интерполирования [0,1].
3) также заметно, что в узлах интерполирования значение вычисляется точно, что и следует из формулы метода Ньютона.
Для достижения заданной точности вычислений на интервале [0,1] необходимо 20 узлов интерполирования. При количестве узлов до 39 уровень заданной точности сохраняется, далее (m >39) оценка погрешности возрастает. Это связано с ростом вычислительной ошибки, обусловленной достижением пределов точности компьютера.
Дата добавления: 2015-08-27; просмотров: 42 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Ньютон обратился к исследованиям цветов, наблюдаемых при попытках усовершенствования телескопов. Стремясь получить линзы возможно более хорошего качества, Ньютон убедился, что главным недостатком | | | Ньютон МайклПутешествия души (Жизнь между жизнями) 1 страница |