66529

Интерполирование с помощью многочленов

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

Информатика, кибернетика и программирование

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

Русский

2014-08-22

369.88 KB

3 чел.

Министерство образования и науки РФ

ФГБОУ ВПО «Тульский Государственный Университет»

кафедра Автоматизированных станочных систем

Интерполирование с помощью многочленов

Отчет по практической работе №3

по курсу «Вычислительная математика»

Выполнил студент гр.220911

Проверил преподаватель

проф. каф. АСС Ямникова О.А.

Тула 2013 г.

Задание

1. Рассчитать значение функции, заданной таблично.

2. Построить график функции на участке интерполирования.

В соответствии с вариантом исходное уравнение имеет вид:

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

Согласно формуле (5) имеем

Разложив определитель по элементам 1-го столбца, получим

Учитывая, что

,

окончательно находим

Построить график функции на участке .

Теоретическая часть

Рассмотрим задачу интерполирования функции f с помощью алгебраических многочленов. В этом случае аппроксимирующая функция имеет вид

. (1)

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

В качестве критерия согласия принимается условие совпадения и f в узловых точках. Для однозначного определения n+1 коэффициентов многочлена необходимо потребовать совпадения f и необходимо потребовать совпадения f и в (n+1)-й узловой точке:

  (i = 0,1,…,n) (2)

Многочлен , удовлетворяющий условиям (2), называется интерполяционным многочленом.

Итак, рассмотрим следующую задачу интерполирования. На сетке в узлах заданы значения (i = 0,1,…,n) функции f. Требуется построить интерполяционный многочлен , совпадающий с f в узлах заданны значения (i=0,1,….,n) функции f  и оценить погрешность .

 Из условий для определения неизвестных коэффициентов многочлена получаем систему алгебраических уравнений

 (i=0,1,…,n) (3)

Определитель этой системы

(4)

есть определитель Вандермонда, который отличен от нуля при условии при .

Коэффициенты  интерполяционного многочлена (1) можно определить, положив в системе (3) и решив ее.

Подставив полученные значения коэффициентов в равенство (1), приходим к новой форме представления интерполяционного многочлена :

(5)

На практике обычно используются интерполяционные многочлены первой и второй степеней. При этом говорят о линейной и квадратичной интерполяции.

Описание входной и выходной информации

Входные данные:

А – начало интервала, переменная типа real

В – конец интервала, переменная типа real

n – степень многочлена, переменная типа integer

x* - произвольное значение из [a;b],переменная типа real

Выходные данные:

y – значение интерполяционного многочлена y* в точке x*, переменная типа real;

ix – вектор значений x на отрезке [a;b], одномерный массив типа real;

iy – вектор значений функции y(x), одномерный массив типа real

Схема алгоритма

Рисунок 1 – Схема основной программы

Рисунок 2 – Продолжение схемы основной программы

Рисунок 3 – Продолжение схемы основной программы

Рисунок 4 – Продолжение схемы основной программы

Рисунок 5 - Продолжение  схемы основной программы


Рисунок 6 – Схема полинома

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

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, TeeFunci;

type

 TForm1 = class(TForm)

   lbl1: TLabel;

   lbl2: TLabel;

   lbl3: TLabel;

   lbl4: TLabel;

   edt1: TEdit;

   edt2: TEdit;

   edt3: TEdit;

   lst1: TListBox;

   Button1: TButton;

   Button2: TButton;

   lst2: TListBox;

   cht1: TChart;

   lbl5: TLabel;

   lbl6: TLabel;

   lbl7: TLabel;

   edt4: TEdit;

   Series1: TLineSeries;

   Series2: TLineSeries;

   lnsrsSeries3: TLineSeries;

   adtfnctnTeeFunction1: TAddTeeFunction;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.dfm}

uses math;

procedure TForm1.Button1Click(Sender: TObject);

type mas=array [1..100,1..100] of Real;

var masA ,h :mas;

ix,iy ,Ar: array [1..100] of Real;

a,b,ih,d,hag,x1,s1,xz:Real;

n,i,kt,j,k,l:Integer;

function pol(x:real):Real;

var

 z,s:Real;

 i:integer;

begin

 s:=ar[kt];

 z:=x;

 for i:=n downto 1 do

 begin

 s:=s+ar[i]*z;

 z:=z*x;

 end;

 pol:=s;

end;

 // расчет определителя

function det(a1:mas; n:integer):real;

var y:real;

m:mas;

i,j,k,z:integer;

begin

y:=0; z:=1;

if n>2 then

for j:=1 to n do

begin

for i:=2 to n do

for k:=1 to n do

begin

if k<j then

m[i-1,k]:=a1[i,k];

if k>j then

m[i-1,k-1]:=a1[i,k];

end;

y:=y+z*a1[1,j]*det(m,n-1);

z:=-z;

end

else y:=a1[1,1]*a1[2,2]-a1[2,1]*a1[1,2];

det:=y;

end;

begin

Lst1.Items.Clear;

Lst2.Items.Clear;

lbl7.Caption:=('');

Form1.Series1.Clear;

Form1.Series2.Clear;

Form1.lnsrsSeries3.Clear;

a:=StrToFloat(edt1.Text);

b:=StrToFloat(edt2.Text);

n:=StrToInt(edt3.Text);

xz:=StrToFloat(edt4.Text);

    // определяем интервал

if ((a<-4) or (b>0)) then  MessageDlg('Ошибка! Введите другие значения', mtInformation, [mbOK], 0)

else

 begin

 if b>a then

 begin

 kt:=n+1;   //кол-во узлов в сетки

 ih:=(b-a)/n;//шаг сетки,где n кол-во интервалов

 ix[1]:=a;

 ix[kt]:=b;  // значение b равно кол-ву узлов сетки

 iy[1]:=(a*a+4*sin(a)); // просчитываем значения сетки(у)

 iy[kt]:=(b*b+4*sin(b));

 for i:=2 to n do

 begin

 ix[i]:=ix[i-1]+ih; //просчитываем х[i] с учетом шага

 iy[i]:=(ix[i]*ix[i]+4*Sin(ix[i]));

 end;

 end

 else MessageDlg('ошибка', mtInformation, [mbOK], 0);

  //вывод значения точек в листинг 1

for i:=1 to kt do

Lst1.Items.Add ('x'+FloatToStr(i-1)+' = ' + floatToStrF(ix[i],ffFixed,8,4) + '    y = ' + FloatToStrF(iy[i],ffFixed,8,4));

for i:=1 to kt do

begin

masA[i,kt]:=1;

for j:=n downto 1 do

begin

masA[i,j]:=masA[i,j+1]*ix[i];

end;

end;

for i:=1 to kt do

for j:=1 to kt do

h[i,j]:=masA[i,j];

  //считаем определитель,если =0 выходим,если нет a[i]=Ar[j]

d:=det(masA,kt);

if d=0 then Exit else

begin

 for j:=1 to kt do

 begin

   for i:=1 to kt do

   h[i,j]:=iy[i];

   Ar[j]:=det(h,kt)/d;

   for l:=1 to kt do

   for k:=1 to kt do

   h[k,l]:=masA[k,l];

 end;

 for j:=1 to kt do

 lst2.Items.Add('A'+floattostr(j)+' = '+floattostrF(Ar[j],ffFixed,8,4));

end;

hag:=(b-a)/99;

x1:=a;

for i:=1 to 100 do

begin

Series1.AddXY(x1,x1*x1+4*Sin(x1),'');

Series2.AddXY(x1,pol(x1),'');

x1:=x1+hag;

end;

for i:=1 to kt do

begin

lnsrsSeries3.AddXY(ix[i],iy[i],'');

end;

s1:=Pol(xz);

lbl7.Caption:=FloatToStrF(s1,ffGeneral,8,4);

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.close;

end;

end.

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


 

А также другие работы, которые могут Вас заинтересовать

54578. Значення нітрогену та його сполук в природі та господарській діяльності людини 57.5 KB
  Сьогодні ми проведемо узагальнюючий урок з теми Підгрупа нітрогену. Щоб виконати завдання редакції необхідно заповнити таблицю Позитивна та негативна роль нітрогену та його сполук. Роль нітрогену та його сполук Позитивна Негативна ІІІ.
54579. НАВЧАЛЬНО-МЕТОДИЧНА КАРТКА (ПЛАН) ЗАНЯТТЯ 174 KB
  Мета завдання: Навчальна: зясувати соціальноекономічну сутність заробітної плати; визначити сфери державного регулювання оплати праці в умовах ринкових відносин; проаналізувати особливості організацій оплати праці на підприємстві; зясувати що лежить в основі побудови системи оплати праці на підприємстві в сучасних умовах; виявити переваги та недоліки різних систем...
54580. З Новим роком! 103.5 KB
  Принц Рік новий вже так близенько Кілька днів всього пройде. Принц Рік новий не за горами Крок за кроком і прийде. Але поки разом з нами Рік старий.
54581. Уроки вдохновения 3.3 MB
  Если вспомнить сколько существует всякой путаницы недоумений всевозможных толкований вокруг метода Константина Сергеевича получившего название метода физических действий сколько было опубликовано неясных изложений этого метода его ближайшими учениками и помощниками последних лет жизни то невольно радуешься тому что почти стенографическое изложение репетиций Станиславского по этому методу становится нашим общим достоянием. Эти ленинские слова из беседы с Кларой Цеткин можно поставить эпиграфом к бессмертному учению Константина...
54582. Предложение. Закон предложения. Факторы, влияющие на предложение 25.07 KB
  Величина предложения – это максимальное количество товаров и услуг, которое производители (продавцы) способны и готовы продать по определенной цене, в определенном месте и в определенное время.
54583. Новогоднее «Кривое зеркало» 62 KB
  Будут Снегурочка и Дед Мороз Он вам подарков немало привез. Огого Народуто сколько И что это они собрались Всех Дед Мороз пригласил Может я не сюда попала Во ктото идет. Дед Мороз вбегает кидается к сидящим в зале хватает их ошибается заглядывает под стулья лезет по рядам сам в очках снимает их заглядывает близко в глаза Снегурочка Внученька Где ты Ты нет опять не она. Где же ты Снегурочка Вечно она куда нибудь теряется убегает Снегурочка Ушел Вот достал дедуля Пора появится А я может быть занята...
54584. Новорічні пригоди 55 KB
  Учитель. Сьогодні наша школа перетворюється в казковий край: всюди прикраси, зустрічі з казковими та літературними героями і неодмінно - з Дідом Морозом та Снігуронькою. Обов язкова прикмета свята - красуня ялинка,запах мандарин, новорічні подарунки, пісні та танці. І все це– на нашому уроці!
54585. Новорічні сценарії 109.5 KB
  Неповторний колорит новорічної атмосфери: красуняялинка різнокольорові вогні феєрверки численні подарунки відчуття свята загадковості і передчуття чуда А малеча ще й з нетерпінням чекає появи Діда Мороза і Снігуроньки бо саме з їхньою появою приходить відчуття свята і таємниці. Але проходить час і Дід Мороз у дитячій уяві перестає бути реальною особою йому більше не пишуть листів із заповітними бажаннями від нього вже не чекають подарунків він стає просто атрибутом свята хоч і обовязковим. І хоча в кожному...
54586. Новый год настает! Новый год у порога нашей планеты! 48 KB
  Новый год настает Новый год у порога нашей планеты Ученик 1: Скоро Новый год З.Орлова Скоро скоро Новый год Он торопится идет Постучится в двери к нам: Дети здравствуйте я к вам Праздник мы встречаем Елку наряжаем Вешаем игрушки Шарики хлопушки. Дед Мороз ну где ты Учитель: Новый Год самый загадочный праздник открывающий нам мир добрых сказок и волшебства. Одни встречают Новый Год дома в семейном кругу другие выезжают на природу в зимний лес а я предлагаю вам отправиться сегодня в незабываемое новогоднее путешествие в...