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;} }


 

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

2033. Кейтеринг та його основні характеристики 22.73 KB
  Кейтеринг — дії підприємства ресторанного господарства, що доставляє готові страви, напої, посуд і все необхідне для організації прийому, бенкету і спеціальних заходів.
2034. Бенкет за столом з частковим обслуговуванням офіціантами: особливості меню, сервірування, обслуговування. 22.72 KB
  Бенкет за столом із частковим обслуговуванням офіціантами носить товариський або сімейний характер і є найбільш поширеним.
2035. Организация участка по ремонту топливной аппаратуры легковых автомобилей на городском СТО 25.95 MB
  Общая характеристика проектируемого предприятия, особенности устройства топливной аппаратуры дизельного двигателя. Расчет производственной программы предприятия, характеристика типовых неисправностей узла,
2036. Інвестиційний потенціал банківської системи України 10.2 MB
  Роль інвестицій у суспільному відтворенні еволюція теоретичних поглядів, Моделі врахування коливань у розмірах інвестицій. Роль банків у суспільному відтворенні. Декомпозиційний аналіз розвитку категоріально-понятійного апарату дослідження інвестиційного потенціалу банківської системи.
2037. Виховий захід. Ми всі – українські діти 33.5 KB
  Мета: виховати у дітях любов до Батьківщини, розвивати інтерес до національних надбань українського народу, розважити учнів, навчити їх добру і справедливості за допомогою гри.
2038. Аборт і його наслідки для репродуктивної функції 38.5 KB
  Проінформувати студентів про види, причини і наслідки абортів. Збагатити знання студентів, попередити про шкідливість абортів і їх наслідки. Виховувати серйозне ставлення студентів до репродуктивної функції.
2039. Вплив наркотиків і токсинів на самопочуття людини 38.5 KB
  Мета: сформувати уявлення про наркоманію як найбільш небезпечне соціальне явище, причини наркоманії та її профілактику.
2040. Нумо, хлопці! Виховний захід 40.5 KB
  Мета заходу: привітати хлопців із днем захисника Вітчизни, навчити бачити позитивні якості у кожній людині, розвивати художній смак, удосконалювати навички декламування.
2041. Урок-захід. У дружбі жити – не тужити 23.58 KB
  Мета: формувати уявлення дітей про дружбу і товаришування, вчити оцінювати свої вчинки і вчинки оточуючих людей, розвивати вміння аналізувати, робити висновки, виховувати дружелюбність, бажання бути другом.