Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Método de interpolacion de Newton-Rhapson

Titulo:localMétodo de interpolacion de Newton-Rhapson
Autor:Oliver Mar Ramirez (scargotsc@hotmail.com)
Lenguaje:C/Visual C
Método de interpolacion de Newton-Rhapson

# include <stdio.h> # include <conio.h> # include <graphics.h> # include <malloc.h> # include <stdio.h> #define D double D b(D X[], D Y[], int n) { D bres=0, ba=0; if( n==0) return Y[n]; bres=(Y[n]-Y[n-1])/(X[n]-X[n-1]); if(n==1) return bres; ba=(Y[n-1]-Y[n-2])/(X[n-1]-X[n-2]); return ( (bres-ba)/( X[n]-X[0] ) ); } void main() { D * X, *Y, x, *B, res=0, mul=1; int grado, i, j; clrscr(); printf("\nDe que orden es la interpolacion deseada\n"); scanf("%d",&grado); X=(D*)malloc(sizeof(D)*grado+1); Y=(D*)malloc(sizeof(D)*grado+1); B=(D*)malloc(sizeof(D)*grado+1); printf("Ingresa la tabla los valores de \nx%8cy:\n", ' '); for(i=0; i<grado+1; i++){scanf("%lf", &X[i]); gotoxy(wherex()+8, wherey()-1 ); scanf("%lf", &Y[i]);} for(i=0; i<grado+1; i++){ B[i]=b(X,Y,i); printf("b(%d)=%lf\n",i,b(X,Y,i));} printf("Numero a interpolar\t\t\t"); scanf("%lf",&x); printf("f%d(x)=",grado); for(i=0;i<grado;i++){//para todas las multiplicaciones if(B[i]>=0 && i<grado && i>0) printf(" + "); printf(" %.3lf", B[i]); for(j=0;j<i;j++){//para cada una //printf("(%.2lf-%.2lf)",x,X[j]); //printf("(%lf)",x-X[j]); mul*=x-X[j]; } printf("(%lf)",mul); res+=B[i]*mul; mul=1; } printf("\nResultado %lf",res); getch(); free(X); free(Y); free(B); }