Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Programa en lenguaje C para verificar Interpolación Simple(Es muy similar a Lagrange y se puede
mejorar, inténtelo.):
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
float X[10],Y[10],x,N,D,y;
int n,i,j;
printf("***INTERPOLACION SIMPLE.***");
printf("\n\nIngresa el numero de puntos:");
scanf ("%d",&n);
printf("\nIngresa los puntos:\n");
for (i=0;i<n;i++)
{
printf("X[%d],Y[%d]:",i,i);
scanf ("%f,%f",&X[i],&Y[i]);
}
printf("\n\nIngresa el valor de x a calcular:");
scanf ("%f",&x);
y=0;
for(j=0;j<n;j++)
{
D=1;
N=1;
for(i=0;i<n;i++)
if (i!=j)
{
N=N*(x-X[i]);
D=D*(X[j]-X[i]);
}
printf ("\nEl valor de P[%d] es %.4f",j,N/D);
y=y+Y[j]*(N/D);
}
printf("\n\nEl resultado es (%.4f,%.4f).",x,y);
fflush(stdin);
printf("\nPresiona <ENTER> para terminar...");
getchar( );
}
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
float X[10],Y[10],x,N,D,y;
int n,i,j;
printf("***INTERPOLACION DE LAGRANGE.***");
printf("\n\nIngresa el numero de puntos:");
scanf ("%d",&n);
printf("\nIngresa los puntos:\n");
for (i=0;i<n;i++)
{
printf("X[%d],Y[%d]:",i,i);
scanf ("%f,%f",&X[i],&Y[i]);
}
printf("\n\nIngresa el valor de x a calcular:");
scanf ("%f",&x);
y=0;
for(j=0;j<n;j++)
{
D=1;
N=1;
for(i=0;i<n;i++)
if (i!=j)
{
N=N*(x-X[i]);
D=D*(X[j]-X[i]);
}
printf ("\nEl valor de L[%d] es %.4f",j,N/D);
y=y+Y[j]*(N/D);
}
printf("\n\nEl resultado es (%.4f,%.4f).",x,y);
fflush(stdin);
printf("\nPresiona <ENTER> para terminar...");
getchar( );
}
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
float X[100],Y[100][100],x,y,aux;
int n,i,j;
printf("***INTERPOLACION DE NEWTON MEDIANTE DIFERENCIAS DIVIDIDAS.***");
printf("\n\nIngresa el numero de puntos:");
scanf ("%d",&n);
printf("\nIngresa los puntos:\n");
for (i=0;i<n;i++)
{
printf("X[%d],Y[%d]:",i,i);
scanf ("%f,%f",&X[i],&Y[i][0]);
}
printf("\n\nIngresa el valor de x a calcular:");
scanf ("%f",&x);
#include <stdio.h>
int main(void)
{
int Datos,Orden,C;
float Valores[2][102],Sistema[102][102];
PideDatos(&Datos,&Orden,Valores);
PreparaSistema(Orden,Datos,Sistema,Valores);
EscribeDatos(Orden,Sistema);
ResuelveGauss(Orden,Sistema);
EscribeDatos(Orden,Sistema);
for(C=1;C<=Orden;C++)
printf(" + (%f)X^%d",Sistema[C][Orden+1],C-1);
printf("\n");
return(0);
int A,B;
scanf("%d",&*Dat);
for(A=1;A<=*Dat;A++)
*Ord=B+1;
int A;
float res;
res=1;
for(A=1;A<=n;A++) res=res*Num;
return res;
int A,B,C,Exp;
float suma,termino;
for(A=1;A<=Ord;A++) for(B=1;B<=Ord;B++)
suma=0;
Exp=A+B-2;
for(C=1;C<=Dat;C++)
termino=Val[0][C];
suma=suma+Potencia(Exp,termino);
Sist[A][B]=suma;
for(A=1;A<=Ord;A++)
suma=0;
Exp=A-1;
for(C=1;C<=Dat;C++)
termino=Val[0][C];
suma=suma+Val[1][C]*Potencia(Exp,termino);
Sist[A][Ord+1]=suma;
int NoCero,Col,C1,C2,A;
float Pivote,V1;
for(Col=1;Col<=Dim;Col++){
NoCero=0;A=Col;
while(NoCero==0){
if(Sist[A][Col]!=0){
NoCero=1;}
else A++;}
Pivote=Sist[A][Col];
for(C1=1;C1<=(Dim+1);C1++){
V1=Sist[A][C1];
Sist[A][C1]=Sist[Col][C1];
Sist[Col][C1]=V1/Pivote;}
for(C2=Col+1;C2<=Dim;C2++){
V1=Sist[C2][Col];
for(C1=Col;C1<=(Dim+1);C1++){
Sist[C2][C1]=Sist[C2][C1]-V1*Sist[Col][C1];}
}}
for(Col=Dim;Col>=1;Col--) for(C1=(Col-1);C1>=1;C1--){
Sist[C1][Dim+1]=Sist[C1][Dim+1]-Sist[C1][Col]*Sist[Col][Dim+1];
Sist[C1][Col]=0;
int A,B;
printf("\n\n");
for(A=1;A<=Dim;A++){
for(B=1;B<=(Dim+1);B++){
printf("%7.2f",Sist[A][B]);
printf("\n");
printf("\n\n");