Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Интерполирование алгебраическими многочленами. Многочлен Лагранжа, многочлен Ньютона. Уплотнение таблицы значений заданной функции - файл Отчет№3.docx


Интерполирование алгебраическими многочленами. Многочлен Лагранжа, многочлен Ньютона. Уплотнение таблицы значений заданной функции
скачать (684.8 kb.)

Доступные файлы (18):

Lab10_3.pdf103kb.02.03.2009 14:25скачать
Lab3.cfg
Lab3.dof
Lab3.dpr
Lab3.~dpr
Lab3.exe
Lab3.res
Unit1.dcu
Unit1.ddp
Unit1.~ddp
Unit1.dfm
Unit1.~dfm
Unit1.pas
Unit1.~pas
Unit2.dcu
Unit2.pas
Unit2.~pas
Отчет№3.docx374kb.17.06.2010 16:29скачать

содержание
Загрузка...

Отчет№3.docx

Реклама MarketGid:
Загрузка...
Министерство образования Республики Беларусь

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

Прикладная математика

Лабораторная работа №3

«Интерполирование алгебраическими многочленами»




Выполнили

студентки группы


Проверила



Минск 2010г



Цель:

  1. написать программу вычисления приближенных вычислений функции с помощью интерполяционной формулы Лагранжа;

  2. написать программу вычисления приближенных вычислений функции с помощью интерполяционной формулы Ньютона;

  3. уплотнить таблицу.

Контрольные вопросы

1. Как можно оценить погрешность интерполирования?
^

Оценка погрешности интерполяционной формулы Лагранжа


Оценку для rnx=fx-Ln(x) на классе функций f∙ϵCn+1[a,b] в точке x=x*ϵa,bможно получить в виде

rnx*=fn+1(ε)n+1!*ωn+1x* , ε ϵ [a,b]

где ωn+1x*=x- x0x- x1…(x- xn)

Это равенство называется формулой Лагранжа для остатка интерполирования или методической погрешностью интерполирования.

Также можно оценить по следующей формуле
Здесь

Это применяется в случае, когда Mn+1:fn+1(x)≤Mn+1(xϵ[a,b])

^

Оценки погрешностей интерполяционных формул Ньютона


Если узлы интерполирования — равноотстоящие, причем

, ,

то, полагая , на основании оценки остаточного члена интерполяционной формулы Лагранжа, получим остаточный член первой интерполяцион

ной формулы Ньютона:

,

где — некоторое промежуточное значение между узлами интерполирования и рассматриваемой точкой .

Аналогично, полагая , получим остаточный член второй интерполяционной формулы Ньютона:

,

где — некоторое промежуточное значение между узлами интерполирования и рассматриваемой точкой .

Обычно при практических вычислениях интерполяционная формула Ньютона обрывается на членах, содержащих такие разности, которые в пределах заданной точности можно считать постоянными.

Предполагая, что почти постоянны для функции и — достаточно мало, и учитывая, что ,

приближенно можно положить .
В этом случае остаточный член первой интерполяционной формулы Ньютона приближенно равен

.

В этих же условиях для остаточного члена второй интерполяционной формулы Ньютона получаем выражение:

.

2.Написать алгоритм вычислений по первой (второй) формуле Ньютона

Пусть для функции заданы значения , ,
где — шаг интерполяции, ,. Требуется подобрать полином степени не выше n, принимающий в точках значения .

Следуя Ньютону, будем искать полином в виде:

(1)

Задача состоит в определении коэффициентов , полинома.

Полагая в выражении (1), получим .

Положим , тогда .

А отсюда следует, что .

Положим , тогда

.

Отсюда .

Последовательно продолжая этот процесс, получим , . Заметим, что 0!=1 и .

Подставляя найденные коэффициенты в выражение (1), получим
интерполяционный полином Ньютона:
. (2)

Легко видеть, что построенный полином полностью удовлетворяет поставленным требованиям. Его степень не выше n и

,

,
и так далее.

Нетрудно показать, что , .


Для практического использования интерполяционную формулу (2) обычно записывают в несколько преобразованном виде.

Введем новую переменную , тогда ,

,

,

…………………………

.

Подставляя эти выражения в формулу (2), получим первую интерполяционную формулу Ньютона.

(3)

Эту формулу выгодно использовать для интерполирования функции в окрестности начального значения , где q мало по абсолютной величине.
procedure Methods.Newton();

var

i,j:integer;

New, Ndop, d:real;

xn, xk, point:real;

begin

xn:= x[1];

xk:= StrToFloat(Form1.Edit5.Text);

point:= StrToFloat(Form1.Edit4.Text);

// d:= RealD(xk,xn);

Razn;

while (point<=xk) do

begin

New:=y[1];



for i:=1 to N-1 do

begin

d:= RealD(point,xn);

Ndop:=d*mas[1,i]/Factorial(i);

if (i>1) then

begin

for j:=1 to i-1 do

Ndop:=Ndop*(d-j);

end;

New:=New+Ndop;

end;

Form1.Series1.AddXY(point,New);

Form1.Memo1.Lines.Add('x= '+Format('%.3f',[point])+' y= '+Format('%.4f',[New]));

point:=point+Step;

end;

Form1.Memo2.Lines.Add(Polinom);

end;

Текст программы:

//формула Лагранжа

function Methods.Lagrange(q:real):real;

var

i,j:integer;

L,s:real;

begin

L:=0;

for i:=1 to n do

begin

s:=1;

for j:=1 to N do

if j<>i then

s:=s*(q-x[j])/(x[i]-x[j]);

L:=L+y[i]*s;

end;

Form1.Memo1.Lines.Add('x= '+FloatToStr(q)+' y= '+FloatToStr(L));

Form1.Series1.AddXY(q,l);

Lagrange:=l

end;

//формула Ньютона

procedure Methods.Newton();

var

i,j:integer;

New, Ndop, d:real;

xn, xk, point:real;

begin

xn:= x[1];

xk:= StrToFloat(Form1.Edit5.Text);

point:= StrToFloat(Form1.Edit4.Text);

// d:= RealD(xk,xn);

Razn;

while (point<=xk) do

begin

New:=y[1];

for i:=1 to N-1 do

begin

d:= RealD(point,xn);

Ndop:=d*mas[1,i]/Factorial(i);

if (i>1) then

begin

for j:=1 to i-1 do

Ndop:=Ndop*(d-j);

end;

New:=New+Ndop;



end;

Form1.Series1.AddXY(point,New);

Form1.Memo1.Lines.Add('x= '+Format('%.3f',[point])+' y= '+Format('%.4f',[New]));

point:=point+Step;

end;

Form1.Memo2.Lines.Add(Polinom);

end;

Результаты программы:


Рисунок 1. Результаты работы программы

Рисунок 2. Результаты работы программы

Вывод:

Построили многочлены Ньютона и Лагранжа и уплотнили таблицу.







Скачать файл (684.8 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru