Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Министерство образования , науки и спорта молодежи Украины



 

Министерство образования, науки и спорта молодежи Украины

Севастопольский национальный технический университет

Кафедра технической кибернетики

 

Отчет

По лабораторной работе № 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 страница

mybiblioteka.su - 2015-2024 год. (0.021 сек.)