Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 21:26   #1
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
Вопрос Метод ньютона

короче надо посчитать разность вот есть код но мне надо сделать до n а я тока сделал до 3 порядка как сделать до N порядка незняю помогите плз.
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{int n;
double X,X0,h,q;
cout<<"Enter points: \n";
cin>>n;
double *p_x=new double[n];
double *p_y=new double[n];
for(int k=0;k<n;k++)
{
cout<<"\n\nEnter X("<<k<<")"<<" : ";
cin>>p_x[k];
cout<<"\n\nEnter Y("<<p_x[k]<<")"<<" : ";
cin>>p_y[k];
}
//cout<<"\n\n";
//cout<<"Enter X: \n";
//cin>>X;
//cout<<"\n";
//cout<<"Enter X0: \n";
//cin>>X0;
//cout<<"\n";
//double h=p_x[1]-p_x[0];
//cout<<"H="<<h<<"\n";
//cout<<"\n";
//q=(X-X0)/h;
//cout<<"Q="<<q<<"\n";
double *delta0=new double[n];
for(k=0;k<n;k++)
{ delta0[k]=p_y[k]-p_y[k-1]; }
double *delta1=new double[n];
for(k=0;k<n;k++)
{ delta1[k]=delta0[k]-delta0[k-1]; }
double *delta2=new double[n];
for(k=0;k<n;k++)
{ delta2[k]=delta1[k]-delta1[k-1]; }
cout<<"DELTA (Y0)"<<"\n";
for(k=1;k<n;k++)
{cout<<delta0[k]<<"\n";}
cout<<"\t"<<"\n";
cout<<"DELTA (Y1)"<<"\n";
for(k=2;k<n;k++)
{cout<<delta1[k]<<"\n";}
cout<<"\t"<<"\n";
cout<<"DELTA (Y2)"<<"\n";
for(k=3;k<n;k++)
{cout<<delta2[k]<<"\n";}
cout<<"p_y[0]="<<p_y[0]<<"\n";
cout<<"delta0[1]="<<delta0[1]<<"\n";
cout<<"delta1[2]="<<delta1[2]<<"\n";
cout<<"delta2[3]="<<delta2[3]<<"\n";
//double P3=p_y[0]+q*delta0[1]+(q*(q-1))/2*delta1[2]+(q*(q-1)*(q-2))/6*delta2[3];
//cout<<"P3="<<P3;













double *delta0=new double[n];
for(k=0;k<n;k++)
{ delta0[k]=p_y[k]-p_y[k-1]; }
double *delta1=new double[n];
for(k=0;k<n;k++)
{ delta1[k]=delta0[k]-delta0[k-1]; }
double *delta2=new double[n];
for(k=0;k<n;k++)
{ delta2[k]=delta1[k]-delta1[k-1]; }
cout<<"DELTA (Y0)"<<"\n";
for(k=1;k<n;k++)
{cout<<delta0[k]<<"\n";}
cout<<"\t"<<"\n";
cout<<"DELTA (Y1)"<<"\n";
for(k=2;k<n;k++)
{cout<<delta1[k]<<"\n";}
cout<<"\t"<<"\n";
cout<<"DELTA (Y2)"<<"\n";
for(k=3;k<n;k++)
{cout<<delta2[k]<<"\n";}
Darknes вне форума Ответить с цитированием
Старый 15.09.2010, 21:44   #2
Darknes
Пользователь
 
Аватар для Darknes
 
Регистрация: 28.06.2010
Сообщений: 40
По умолчанию

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{int n;
cout<<"Enter points: ";
cin>>n;
double *p_x=new double[n];
double *p_y=new double[n];
for(int k=0;k<n;k++)
{
cout<<"\n\nEnter X("<<k<<")"<<" : ";
cin>>p_x[k];
cout<<"\n\nEnter Y("<<p_x[k]<<")"<<" : ";
cin>>p_y[k];
}
double *delta0=new double[n];
for(k=0;k<n;k++)
{ delta0[k]=p_y[k]-p_y[k-1]; }
double *delta1=new double[n];
for(k=0;k<n;k++)
{ delta1[k]=delta0[k]-delta0[k-1]; }
double *delta2=new double[n];
for(k=0;k<n;k++)
{ delta2[k]=delta1[k]-delta1[k-1]; }
cout<<"DELTA (Y0)"<<"\n";
for(k=1;k<n;k++)
{cout<<delta0[k]<<"\n";}
cout<<"\t"<<"\n";
cout<<"DELTA (Y1)"<<"\n";
for(k=2;k<n;k++)
{cout<<delta1[k]<<"\n";}
cout<<"\t"<<"\n";
cout<<"DELTA (Y2)"<<"\n";
for(k=3;k<n;k++)
{cout<<delta2[k]<<"\n";}
cout<<"p_y[0]="<<p_y[0]<<"\n";
cout<<"delta0[1]="<<delta0[1]<<"\n";
cout<<"delta1[2]="<<delta1[2]<<"\n";
cout<<"delta2[3]="<<delta2[3]<<"\n";

}



это интерполяция ньютона вперед часть проги сдесь считается разделенная пазность с посчитал до 3 порядка а надо до N как сделать ????
Darknes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Ньютона lordsyrius Помощь студентам 5 23.11.2009 23:52
Метод Ньютона NoHeart Паскаль, Turbo Pascal, PascalABC.NET 20 04.06.2009 16:29
Метод Ньютона Durak Помощь студентам 1 30.04.2008 21:55
Метод Ньютона Cubar Помощь студентам 12 09.02.2008 21:28