Programa de Interpolación de Newton en Lenguaje C

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

CARLOS ALFREDO GOMEZ PEREZ

Programa de interpolación de Newton


en lenguaje C++
clear;clc
x=[0 1 2 3];y=[1 2 2.5 4
xa=x;ya=y;
d=zeros(length(y));
d(:,1)=y';
for k=2:length(x)
for j=1:length(x)+1-k
d(j,k)=(d(j+1,k-1)-d(j,k-1))/(x(j+k-1)-x(j));
end
end
for w=1:length(x)
ds=num2str(abs(d(1,w)));
if w>1
if x(w-1)<0
sg1='+';
else
sg1='-';
end
end
if d(1,w)<0
sg2='-';
else
sg2='+';
end
if w==1
acum=num2str(d(1,1));
elseif w==2
polact=['(x' sg1 num2str(abs(x(w-1))) ')' ];
actual=[ds '*' polact];
acum=[acum sg2 actual];
else
polact=[polact '.*' '(x' sg1 num2str(abs(x(w-1))) ')' ];
actual=[ds '*' polact];
acum=[acum sg2 actual];
end
end

fprintf('n Valores de X y Y n ');


disp(xa);
disp(ya);
fprintf('n Polinomio interpolación Newton : %s n',acum);
x=input(' X interp = ');
if x>max(xa)|x<min(xa)
fprintf(
end
xinterp=x;
yinterp=eval(acum);
fprintf(' Y(%g) = %g n',x,yinterp);
fprintf
pause
xg=linspace(min(xa),max(xa));
x=xg;yg=eval(acum);
plot(xg,yg,xa,ya,'.r',xinterp,yinterp,'or');

METODOS NUMERICOS 10:00 – 11:00


CARLOS ALFREDO GOMEZ PEREZ

grid

METODOS NUMERICOS 10:00 – 11:00


CARLOS ALFREDO GOMEZ PEREZ

Programa de interpolación de Newton


en lenguaje C++

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

void main (void)


{
int i,j;
int N;
double X[20];
double FX[20];

double FILA1[20];
double VX;
double S;
double H;
double AS;

double Resultado= 0;
unsigned long Factorial= 1;

clrscr();

printf("Introduzca el numero de puntos en la tabla: ");


scanf("%d",&N);

for (i=0;i<N;i++)
{
printf("Introduzca X%d:",i);
scanf("%lf",&(X[i]));

printf("Introduzca FX%d:",i);
scanf("%lf",&(FX[i]));
}

FILA1[0]= FX[0];
for (i=1;i<N;i++)
{
for (j=0;j<N-i;j++)
{
FX[j]= FX[j+1]-FX[j];
}

FILA1[i]= FX[0];
}

printf("Ingrese el valor de X:");


scanf("%lf",&VX),

H= X[1]-X[0];

METODOS NUMERICOS 10:00 – 11:00


CARLOS ALFREDO GOMEZ PEREZ

S= (VX-X[0])/H;

Resultado= FILA1[0];
AS= S;

for (i=1;i<N;i++)
{
Resultado= Resultado + AS*FILA1[i]/Factorial;
AS= AS*(S-i);
Factorial= Factorial*(i+1);
}

printf("P(%f)= %f",VX,Resultado);
getch();
END

METODOS NUMERICOS 10:00 – 11:00

También podría gustarte