martes, 30 de septiembre de 2014

Interpolacion por el Método de Newton

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<process.h>
#include<string.h>

void main(){
 int n;
 int i,j;
 float ax[10];
 float ay[10];
 float y=0;
 float x;
 float h;
 float p;
 float diff[20][20];
 float y1,y2,y3,y4;

 printf("\n Numero de Terminos: ");
 scanf("%d",&n);
 printf("\n\n Valor de X: ");
 for(i=0;i<n;i++){
  printf("\n\n Valor de x%d: ",i+1);
  scanf("%f",ax[i]);
  
 }
 
  printf("\n\n Valor de Y: ");
 for(j=0;j<n;j++){
  printf("\n\n Valor de y%d: ",i+1);
  scanf("%f",ay[i]);
  
 }
printf("\n Valor para x: ");
printf("\n Valor para y: ");
scanf("%f",&x);
 h = ax[1]-ax[0];
  for(i=0;i<n-1;i++){
   diff[i][1]=ay[i+1]-ay[i];
  }
   for(j=2;j<=4;j++){
    for(i=0;i<n-j;i++){
     diff[i][j]=diff[i+1][j-1]-diff[i][j-1];
    }
   }
   i=0;
    do{
     i++;
    }while(ax[i]<x);
    i--;
    p=(x-ax[i])/h;
    y1= p*diff[i-1][1];
    y2=p*(p+1)*diff[i-1][2]/2;
    y3=(p+1)*p*(p-1)*diff[i-2][3]/6;
    y4 = (p+2)*(p+1)*p*(p-1)*diff[i-3][4]/24;
    y =ay[i]+y1+y2+y3+y4;
      
      printf(" x= %6.4f, y= 6.4%f ",x,y);
      printf("\n\n\n Enter para Salir");
      getch();
}

No hay comentarios:

Publicar un comentario