|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.09.2010, 21:26 | #1 |
Пользователь
Регистрация: 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";} |
15.09.2010, 21:44 | #2 |
Пользователь
Регистрация: 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 как сделать ???? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод Ньютона | 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 |