50736

Інтерполяційні формули через розділені різниці

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

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

Мета. Навчитися знаходити значення функції при даному значенні аргумента, використовуючи інтерполяційні формули Нютона через розділені різниці. Обладнання. Лист формату А4, ручка, програмне забезпечення С++.

Украинкский

2014-01-29

66 KB

1 чел.

М Чуприна С.1ПМ-08

Лабороторна робота №5

Тема. Інтерполяційні формули через розділені різниці

Мета.Навчитися знаходити значення функції при даному значенні аргумента, використовуючи інтерполяційні формули Н’ютона через розділені різниці

Обладнання. Лист формату А4, ручка, програмне забезпечення С++.

     3. Індивідуальне завдання  

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

№ варіанта

х1

х2

18

0,109

0,115

x

y

0,095

1,09131

0,102

1,23490

0,104

1,27994

0,107

1,35142

0,110

1,42815

0,112

1,48256

0,116

1,60033

0,120

1,73205

#include<iostream.h>

#include<math.h>

double N(int n, double* x, double* y){

int i, k, L=n;

double*z=new double[n];

for(i=0; i<n; i++) z[i]=(y[i+1]-y[i])/(x[i+1]-x[i]);

if(n>1)

for(i=1; i<n; i++){

for(k=0;k<L;k++)z[k]=(z[k+1]-z[k])/(x[k+i]-x[k]);

L=L-1;}

return z[0];

delete []z;}

void main ()

{ int n,i,k;

double P, Y, X;

cout<<"Vveditekolichstvovhodnihdannih:";

cin>>n;

double *x=new double [n];

double *y=new double [n];

cout<<" Vveduteuxliinterpoliacii: \n";

for(i=0; i<n; i++)

{cout<<"x["<<i<<"]: "; cin>>x[i];}

cout<<"Vvediteznacheniafunkcii: \n";

 for(i=0; i<n; i++)

 {cout<<"y["<<i<<"]: "; cin>>y[i];}

cout<<" Tablichaiz forma \n";

cout<<"|\tx \t |\t y \t\t|\n";

cout<<"-----------------------------------------\n";

for(i=0; i<n; i++)

{cout<<"|\t"<<x[i]<<" \t |\t "<<y[i]<<"    \t|\n"; }

cout<<"Vvediteznachenie x:\n";

cin>>X;

P=y[0];

for(i=1;i<n;i++){

Y=N(i,x,y);

for(k=0;k<i;k++)Y*=(X-x[k]);

P+=Y;}

cout<<"f("<<X<<") = "<<P;

delete []x;

delete []y;}

Висновок: у цій роботі я навчилася знаходити значення функції при даному значенні аргумента, використовуючи інтерполяційні формули Н’ютона через розділені різниці

#include<iostream.h>

#include<math.h>

double N(int n, double* x, double* y){

int i, k, L=n;

double*z=new double[n];

for(i=0; i<n; i++) z[i]=y[i+1]-y[i];

if(n>1)

for(i=1; i<n; i++){

for(k=0;k<L;k++)z[k]=z[k+1]-z[k];

L=L-1;}

return z[0];

delete []z;}

 unsigned long factorial(unsigned long n)

{

if (n == 0)

 return 1;

else

 return n * factorial (n - 1);

}

void main ()

{ int n,i,k;

double P, Y, X;

cout<<"Vveditekolichstvovhodnihdannih:";

cin>>n;

double *x=new double [n];

double *y=new double [n];

cout<<" Vveduteuxliinterpoliacii: \n";

for(i=0; i<n; i++)

{cout<<"x["<<i<<"]: "; cin>>x[i];}

cout<<"Vvediteznacheniafunkcii: \n";

 for(i=0; i<n; i++)

 {cout<<"y["<<i<<"]: "; cin>>y[i];}

cout<<" Tablichaiz forma \n";

cout<<"|\tx \t |\t y \t\t|\n";

cout<<"-----------------------------------------\n";

for(i=0; i<n; i++)

{cout<<"|\t"<<x[i]<<" \t |\t "<<y[i]<<"    \t|\n"; }

cout<<"Vvediteznachenie x:\n";

cin>>X;

int h=x[1]-x[0];

P=y[0];

for( int p=0;p<n;p++){

if (x[p]<x[n/2]) {

for(i=1;i<n;i++){

Y=N(i,x,y);

for(k=0;k<i;k++)Y*=(X-x[k])/(pow(h,k)*factorial(k));

P+=Y;} }

else   {

for(i=n;i>0;i--){

Y=N(i,x,y);

for(k=n;k>i;k--)Y*=(X-x[k])/(pow(h,k)*factorial(k));

P+=Y;}   }

cout<<"f("<<X<<") = "<<P;

delete []x;

delete []y;} }


 

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

78539. Проект модернізації координатно-розточувального-свердлильно-фрезерного верстата 2А459АФ4 2.47 MB
  У пояснювальній записці зроблений аналіз та огляд верстатів аналогічного призначення. Вироблено обгрунтування технічних характеристик проектованого верстата. Виконано кінематичні розрахунки приводу головного руху, розрахунки на міцність.
78540. Место договора социального найма в системе гарантий жилищных прав граждан 98.14 KB
  Объектом исследования выступают общественные отношения вытекающие из договора социального найма жилого помещения рассмотренные в теоретическом и практическом аспектах. Предметом исследования является правовое регулирование договора социального найма жилого помещения в соответствии...
78541. Использование добавки из пивной дробины в производстве мучных кондитерских изделиях изделий 1.12 MB
  Между распространением многих болезней цивилизации и нарушениями питания четко установилась взаимосвязь. Это, как свидетельствуют многочисленные исследования, обусловлено отрицательным изменением структуры и качества питания, выражающимся в резком увеличении потребления продуктов с высокой...
78543. Проект котельной участка №3 Орехово-Зуевской теплосети 478.28 KB
  Но экономический кризис последних лет существенным образом затронул и этот комплекс. Производство первичных энергоресурсов в 1993 г. составило 82% от уровня 1990 и продолжало падать. Уменьшение потребления топлива и энергии, обусловленное общим экономическим спадом...
78546. Учимся жить дружно 45.5 KB
  Цель классного часа - формирование добрых отношений между детьми в классе, развитие стремления быть терпимым в обществе людей, воспитания уважения к одноклассникам.
78547. Знай, люби, бережи природу рідного краю 4.85 MB
  Змістові питання Розкрити цінності природи для людини Показати різноманітність кімнатних рослин Скласти правила догляду за кімнатними рослинами Визначити рослини в народній творчості Визначити групи птахів за способом живлення та місцем проживання...