You are on page 1of 19

MTODOS NUMRICOS

JOHNY ANDRS LPEZ LONDOO 1.087.990.043


JUAN SEBASTIN HURTADO JARAMILLO 1.087.992.226

UNIVERSIDAD TECNOLGICA DE PEREIRA


FACULTAD DE CIENCIAS BSICAS

PEREIRA
2007

NEWTON PARA R2

printf("\n matriz[1][1] = %.12lf",ma11);

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

det=ma00*ma11-ma01*ma10;
in00=ma11/det;
printf("\n\n in[0][0] = %.12lf",in00);
in01=-ma01/det;
printf("\n in[0][1] = %.12lf",in01);
in10=-ma10/det;
printf("\n in[1][0] = %.12lf",in10);
in11=ma00/det;
printf("\n in[1][1] = %.12lf",in11);

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Newton para R2 \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

deltax=-(in00*f(x0,y0)+in01*g(x0,y0));
deltay=-(in10*f(x0,y0)+in11*g(x0,y0));
printf("\n\n delta x = %.12lf",deltax);
printf("\n delta y = %.12lf",deltay);

double f (double x, double y)


{
double ff=4-pow(x,2)-pow(y,2);
return (ff);
}

x0=x0+deltax;
y0=y0+deltay;
printf("\n\n x%d = %.12lf",it,x0);
printf("\n y%d = %.12lf",it,y0);

double g (double x, double y)


{
double gg=1-pow(2.71828182846,x)-y;
return (gg);
}

printf("\n\n error x = %.12lf",f(x0,y0));


printf("\n error y = %.12lf",g(x0,y0));
getch();
if (fabs(f(x0,y0))<tolerancia && fabs(g(x0,y0))<tolerancia)
{
printf("\n\n Las soluciones aproximadas son: %.12lf y %.12lf
\n",x0,y0);
it=N+1;
}

double fx (double x)
{
double ffx=-2*x;
return (ffx);
}
double fy (double y)
{
double ffy=-2*y;
return (ffy);
}

if (it==N)
{
printf("\n\n No convergencia en %d iteraciones",it);
it=N+1;
}

double gx (double x)
{
double ggx=-pow(2.71828182846,x);
return (ggx);
}

it++;
}
getch();
}

//double gy (double y)
//{
// double ggy=-1;
// return (ggy);
//}

NEWTON PARA R3
#include<stdio.h>
#include<conio.h>
#include<math.h>

void main()
{
clrscr();
cabecera();
double tolerancia,det;
double x0,y0,deltax,deltay;
double ma00,ma01,ma10,ma11,in00,in01,in10,in11;
int it=1,N;

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Newton para R3 \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

printf("Ingrese el valor de la tolerancia: ");


scanf("%lf",&tolerancia);
printf("Ingrese el nmero de iteraciones: ");
scanf("%d",&N);
printf("Escriba la aproximacin inicial x: ");
scanf("%lf",&x0);
printf("Escriba la aproximacin inicial y: ");
scanf("%lf",&y0);

double f (double x, double y,double z)


{
double ff=pow(x,2)+pow(y,2)+pow(z,2)-9;
return (ff);
}

while (it<=N)
{

double g (double x, double y,double z)


{
double gg=x*y*z-1;
return (gg);
}

ma00=fx(x0);
printf("\n\n matriz[0][0] = %.12lf",ma00);
ma01=fy(y0);
printf("\n matriz[0][1] = %.12lf",ma01);
ma10=gx(x0);
printf("\n matriz[1][0] = %.12lf",ma10);
ma11=-1;

double h (double x, double y,double z)


{

double hh=x+y-pow(z,2);
return (hh);
}

printf("\n\n matriz[0][0] = %.12lf",ma00);


ma01=fy(y0);
printf("\n matriz[0][1] = %.12lf",ma01);
ma02=fz(z0);
printf("\n matriz[0][2] = %.12lf",ma02);
ma10=gx(y0,z0);
printf("\n matriz[1][0] = %.12lf",ma10);
ma11=gy(x0,z0);
printf("\n matriz[1][1] = %.12lf",ma11);
ma12=gz(x0,y0);
printf("\n matriz[1][2] = %.12lf",ma12);
ma20=1;
printf("\n matriz[2][0] = %.12lf",ma20);
ma21=1;
printf("\n matriz[2][1] = %.12lf",ma21);
ma22=hz(z0);
printf("\n matriz[2][2] = %.12lf",ma22);

double fx (double x)
{
double ffx=2*x;
return (ffx);
}
double fy (double y)
{
double ffy=2*y;
return (ffy);
}
double fz (double z)
{
double ffz=2*z;
return (ffz);
}

det=(ma22*ma11-ma21*ma12)*ma00-(ma22*ma10ma20*ma12)*ma01+(ma21*ma10-ma20*ma11)*ma02;

double gx (double y, double z)


{
double ggx=y*z;
return (ggx);
}

in00=(ma22*ma11-ma21*ma12)/det;
printf("\n\n in[0][0] = %.12lf",in00);
in10=-(ma22*ma10-ma20*ma12)/det;
printf("\n in[1][0] = %.12lf",in10);
in20=(ma21*ma10-ma20*ma11)/det;
printf("\n in[2][0] = %.12lf",in20);
in01=-(ma22*ma01-ma21*ma02)/det;
printf("\n in[0][1] = %.12lf",in01);
in11=(ma22*ma00-ma20*ma02)/det;
printf("\n in[1][1] = %.12lf",in11);
in21=-(ma21*ma00-ma20*ma01)/det;
printf("\n in[2][1] = %.12lf",in21);
in02=(ma12*ma01-ma11*ma02)/det;
printf("\n in[0][2] = %.12lf",in02);
in12=-(ma12*ma00-ma10*ma02)/det;
printf("\n in[1][2] = %.12lf",in12);
in22=(ma11*ma00-ma10*ma01)/det;
printf("\n in[2][2] = %.12lf",in22);

double gy (double x, double z)


{
double ggy=x*z;
return (ggy);
}
double gz (double x, double y)
{
double ggz=x*y;
return (ggz);
}
//double hx (double x)
//{
// double hhx=1;
// return (hhx);
//}

deltax=-(in00*f(x0,y0,z0)+in01*g(x0,y0,z0)+in02*h(x0,y0,z0));
deltay=-(in10*f(x0,y0,z0)+in11*g(x0,y0,z0)+in12*h(x0,y0,z0));
deltaz=-(in20*f(x0,y0,z0)+in21*g(x0,y0,z0)+in22*h(x0,y0,z0));
printf("\n\n delta x = %.12lf",deltax);
printf("\n delta y = %.12lf",deltay);
printf("\n delta z = %.12lf",deltaz);

//double hy (double y)
//{
// double hhy=1;
// return (hhy);
//}

x0=x0+deltax;
y0=y0+deltay;
z0=z0+deltaz;
printf("\n\n x%d = %.12lf",it,x0);
printf("\n y%d = %.12lf",it,y0);
printf("\n z%d = %.12lf",it,z0);

double hz (double z)
{
double hhz=-2*z;
return (hhz);
}

printf("\n\n error x = %.12lf",f(x0,y0,z0));


printf("\n error y = %.12lf",g(x0,y0,z0));
printf("\n error z = %.12lf",h(x0,y0,z0));

void main()
{
clrscr();
cabecera();
double tolerancia,det;
double x0,y0,z0,deltax,deltay,deltaz;
double
ma00,ma01,ma02,ma10,ma11,ma12,ma20,ma21,ma22;
double in00,in01,in02,in10,in11,in12,in20,in21,in22;
int it=1,N;

getch();
if (fabs(f(x0,y0,z0))<tolerancia && fabs(g(x0,y0,z0))<tolerancia
&& fabs(h(x0,y0,z0))<tolerancia)
{
printf("\n\n Las soluciones aproximadas son: %.12lf, %.12lf
y %.12lf \n",x0,y0,z0);
it=N+1;
}

printf("Ingrese el valor de la tolerancia: ");


scanf("%lf",&tolerancia);
printf("Ingrese el nmero de iteraciones: ");
scanf("%d",&N);
printf("Escriba la aproximacin inicial x: ");
scanf("%lf",&x0);
printf("Escriba la aproximacin inicial y: ");
scanf("%lf",&y0);
printf("Escriba la aproximacin inicial z: ");
scanf("%lf",&z0);

if (it==N)
{
printf("\n\n No convergencia en %d iteraciones",it);
it=N+1;
}
it++;
}

while (it<=N)

getch();
}

{
DIFERENCIAS DIVIDIDAS DE NEWTON
ma00=fx(x0);

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

TRAZADORES CBICOS NATURALES


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

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Diferencias divididas de Newton \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Trazadores cbicos naturales \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

void main()
{
clrscr();
cabecera();
double x0,x1,x2,x3,f0,f1,f2,f3;
double fx0,fx1,fx2,fx3;
double fx1x0,fx2x1,fx3x2;
double fx2x1x0,fx3x2x1;
double fx3x2x1x0;
double x,P3;

void main()
{
clrscr();
cabecera();
double xj[7],aj[7],bj[6],cj[6],dj[6],hj[6];
double ma[7][8];
double div0,div1,div2,div3,div4,div5,div6;
double re1,re2,re3,re4,re5,re6;
double x,S0,S1,S2,S3,S4,S5;
double aux1,aux2;
int i,n;

printf("\n Escriba el dato x0: ");


scanf("%lf",&x0);
printf(" Escriba el dato x1: ");
scanf("%lf",&x1);
printf(" Escriba el dato x2: ");
scanf("%lf",&x2);
printf(" Escriba el dato x3: ");
scanf("%lf",&x3);

printf("Ingrese el nmero de datos: ");


scanf("%d",&n);
printf("\n");
for (i=0;i<n;i++)
{
printf(" Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
xj[i]=aux1;
}

printf("\n\n Escriba el dato f(x0): ");


scanf("%lf",&f0);
printf(" Escriba el dato f(x1): ");
scanf("%lf",&f1);
printf(" Escriba el dato f(x2): ");
scanf("%lf",&f2);
printf(" Escriba el dato f(x3): ");
scanf("%lf",&f3);

printf("\n");
for (i=0;i<n;i++)
{
printf(" Escriba el valor de f(x%d): ",i);
scanf("%lf",&aux2);
aj[i]=aux2;
}

fx1x0=(f1-f0)/(x1-x0);
printf("\n\n fx1x0 = %.12lf",fx1x0);
fx2x1=(f2-f1)/(x2-x1);
printf("\n fx2x1 = %.12lf",fx2x1);
fx3x2=(f3-f2)/(x3-x2);
printf("\n fx3x2 = %.12lf",fx3x2);

printf("\n");
for (i=0;i<n-1;i++)
{
hj[i]=xj[i+1]-xj[i];
printf("\n hj[%d] = %.12lf",i,hj[i]);
}

fx2x1x0=(fx2x1-fx1x0)/(x2-x0);
printf("\n\n fx2x1x0 = %.12lf",fx2x1x0);
fx3x2x1=(fx3x2-fx2x1)/(x3-x1);
printf("\n fx3x2x1 = %.12lf",fx3x2x1);

ma[0][0]=1;
ma[0][1]=0;
ma[0][2]=0;
ma[0][3]=0;
ma[0][4]=0;
ma[0][5]=0;
ma[0][6]=0;
ma[0][7]=0;

fx3x2x1x0=(fx3x2x1-fx2x1x0)/(x3-x0);
printf("\n\n fx3x2x1x0 = %.12lf",fx3x2x1x0);
printf("\n\n El polinomio interpolante caracterstico es:");
printf("\n P3(x) = %.12lf + %.12lf(x-%.12lf) + %.12lf(x-%.12lf)
(x-%.12lf) + %.12lf(x-%.12lf)(x-%.12lf)(x%.12lf)",f0,fx1x0,x0,fx2x1x0,x0,x1,fx3x2x1x0,x0,x1,x2);

ma[1][0]=hj[0];
ma[1][1]=2*(hj[0]+hj[1]);
ma[1][2]=hj[1];
ma[1][3]=0;
ma[1][4]=0;
ma[1][5]=0;
ma[1][6]=0;
ma[1][7]=(3/hj[1])*(aj[2]-aj[1])-(3/hj[0])*(aj[1]-aj[0]);

printf("\n\n Escriba el valor a evaluar: ");


scanf("%lf",&x);
if (x<x0 || x>x3)
{
printf("\n Error: valor fuera del intervalo");
}
else
{
P3=f0+fx1x0*(x-x0)+fx2x1x0*(x-x0)*(x-x1)+fx3x2x1x0*(xx0)*(x-x1)*(x-x2);
printf("\n f(%.12lf) es aproximadamente P3(%.12lf) =
%.12lf",x,x,P3);
}

ma[2][0]=0;
ma[2][1]=hj[1];
ma[2][2]=2*(hj[1]+hj[2]);
ma[2][3]=hj[2];
ma[2][4]=0;
ma[2][5]=0;
ma[2][6]=0;
ma[2][7]=(3/hj[2])*(aj[3]-aj[2])-(3/hj[1])*(aj[2]-aj[1]);

getch();
}

ma[3][0]=0;

ma[3][1]=0;
ma[3][2]=hj[2];
ma[3][3]=2*(hj[2]+hj[3]);
ma[3][4]=hj[3];
ma[3][5]=0;
ma[3][6]=0;
ma[3][7]=(3/hj[3])*(aj[4]-aj[3])-(3/hj[2])*(aj[3]-aj[2]);

re4=ma[4][3];
for (i=0;i<=n;i++)
{
ma[4][i]=-re4*ma[3][i]+ma[4][i];
}
div4=ma[4][4];
for (i=0;i<=n;i++)
{
ma[4][i]=ma[4][i]/div4;
printf("\n ma[4][%d] = %.12lf",i,ma[4][i]);
}
getch();

ma[4][0]=0;
ma[4][1]=0;
ma[4][2]=0;
ma[4][3]=hj[3];
ma[4][4]=2*(hj[3]+hj[4]);
ma[4][5]=hj[4];
ma[4][6]=0;
ma[4][7]=(3/hj[4])*(aj[5]-aj[4])-(3/hj[3])*(aj[4]-aj[3]);

re5=ma[5][4];
for (i=0;i<=n;i++)
{
ma[5][i]=-re5*ma[4][i]+ma[5][i];
}

ma[5][0]=0;
ma[5][1]=0;
ma[5][2]=0;
ma[5][3]=0;
ma[5][4]=hj[4];
ma[5][5]=2*(hj[4]+hj[5]);
ma[5][6]=hj[5];
ma[5][7]=(3/hj[5])*(aj[6]-aj[5])-(3/hj[4])*(aj[5]-aj[4]);

div5=ma[5][5];
for (i=0;i<=n;i++)
{
ma[5][i]=ma[5][i]/div5;
printf("\n ma[5][%d] = %.12lf",i,ma[5][i]);
}
getch();

ma[6][0]=0;
ma[6][1]=0;
ma[6][2]=0;
ma[6][3]=0;
ma[6][4]=0;
ma[6][5]=0;
ma[6][6]=1;
ma[6][7]=0;

re6=ma[6][5];
for (i=0;i<=n;i++)
{
ma[6][i]=-re6*ma[5][i]+ma[6][i];
}

printf("\n");

div6=ma[6][6];
for (i=0;i<=n;i++)
{
ma[6][i]=ma[6][i]/div6;
printf("\n ma[6][%d] = %.12lf",i,ma[6][i]);
}

div0=ma[0][0];
for (i=0;i<=n;i++)
{
ma[0][i]=ma[0][i]/div0;
printf("\n ma[0][%d] = %.12lf",i,ma[0][i]);
}
getch();

cj[6]=ma[6][7];
printf("\n cj[6] = %.12lf",cj[6]);
cj[5]=ma[5][7]-ma[5][6]*cj[6];
printf("\n cj[5] = %.12lf",cj[5]);
cj[4]=ma[4][7]-ma[4][5]*cj[5]-ma[4][6]*cj[6];
printf("\n cj[4] = %.12lf",cj[4]);
cj[3]=ma[3][7]-ma[3][4]*cj[4]-ma[3][5]*cj[5]-ma[3][6]*cj[6];
printf("\n cj[3] = %.12lf",cj[3]);
cj[2]=ma[2][7]-ma[2][3]*cj[3]-ma[2][4]*cj[4]-ma[2][5]*cj[5]-ma[2]
[6]*cj[6];
printf("\n cj[2] = %.12lf",cj[2]);
cj[1]=ma[1][7]-ma[1][2]*cj[2]-ma[1][3]*cj[3]-ma[1][4]*cj[4]-ma[1]
[5]*cj[5]-ma[1][6]*cj[6];
printf("\n cj[1] = %.12lf",cj[1]);
cj[0]=ma[0][7]-ma[0][1]*cj[1]-ma[0][2]*cj[2]-ma[0][3]*cj[3]-ma[0]
[4]*cj[4]-ma[0][5]*cj[5]-ma[0][6]*cj[6];
printf("\n cj[0] = %.12lf",cj[0]);

re1=ma[1][0];
for (i=0;i<=n;i++)
{
ma[1][i]=-re1*ma[0][i]+ma[1][i];
}
div1=ma[1][1];
for (i=0;i<=n;i++)
{
ma[1][i]=(ma[1][i])/div1;
printf("\n ma[1][%d] = %.12lf",i,ma[1][i]);
}
getch();
re2=ma[2][1];
for (i=0;i<=n;i++)
{
ma[2][i]=-re2*ma[1][i]+ma[2][i];
}

getch();
printf("\n");
for (i=0;i<n-1;i++)
{
bj[i]=(1/hj[i])*(aj[i+1]-aj[i])-(hj[i]/3)*(2*cj[i]+cj[i+1]);
printf("\n bj[%d] = %.12lf",i,bj[i]);
}

div2=ma[2][2];
for (i=0;i<=n;i++)
{
ma[2][i]=ma[2][i]/div2;
printf("\n ma[2][%d] = %.12lf",i,ma[2][i]);
}
getch();

printf("\n");
for (i=0;i<n-1;i++)
{
dj[i]=(1/(3*hj[i]))*(cj[i+1]-cj[i]);
printf("\n dj[%d] = %.12lf",i,dj[i]);
}

re3=ma[3][2];
for (i=0;i<=n;i++)
{
ma[3][i]=-re3*ma[2][i]+ma[3][i];
}

printf("\n\n Escriba el valor a calcular: ");


scanf("%lf",&x);

div3=ma[3][3];
for (i=0;i<=n;i++)
{
ma[3][i]=ma[3][i]/div3;
printf("\n ma[3][%d] = %.12lf",i,ma[3][i]);
}
getch();

if (x>xj[0] && x<xj[1])


{
printf("\n\n Polinomio interpolante cbico trazador: ");

printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[0],bj[0],xj[0],cj[0],xj[0],dj[0],xj[0]);


S0=aj[0]+bj[0]*(x-xj[0])+cj[0]*pow((x-xj[0]),2)+dj[0]*pow((xxj[0]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S0);
}

printf("Mtodos Numricos \n");


printf("Trazadores cbicos sujetos \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}
void main()
{
clrscr();
cabecera();
double xj[7],aj[7],bj[6],cj[6],dj[6],hj[6],f0,fn;
double ma[7][8];
double div0,div1,div2,div3,div4,div5,div6;
double re1,re2,re3,re4,re5,re6;
double x,S0,S1,S2,S3,S4,S5;
double aux1,aux2;
int i,n;

if (x>xj[1] && x<xj[2])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[1],bj[1],xj[1],cj[1],xj[1],dj[1],xj[1]);
S1=aj[1]+bj[1]*(x-xj[1])+cj[1]*pow((x-xj[1]),2)+dj[1]*pow((xxj[1]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S1);
}

printf("Ingrese el nmero de datos: ");


scanf("%d",&n);

if (x>xj[2] && x<xj[3])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[2],bj[2],xj[2],cj[2],xj[2],dj[2],xj[2]);
S2=aj[2]+bj[2]*(x-xj[2])+cj[2]*pow((x-xj[2]),2)+dj[2]*pow((xxj[2]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S2);
}

printf("\n");
for (i=0;i<n;i++)
{
printf(" Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
xj[i]=aux1;
}
printf("\n");
for (i=0;i<n;i++)
{
printf(" Escriba el valor de f(x%d): ",i);
scanf("%lf",&aux2);
aj[i]=aux2;
}

if (x>xj[3] && x<xj[4])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[3],bj[3],xj[3],cj[3],xj[3],dj[3],xj[3]);
S3=aj[3]+bj[3]*(x-xj[3])+cj[3]*pow((x-xj[3]),2)+dj[3]*pow((xxj[3]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S3);
}

printf("\n Escriba el valor de f'(x0): ");


scanf("%lf",&f0);
printf("\n Escriba el valor de f'(x%d): ",n-1);
scanf("%lf",&fn);

if (x>xj[4] && x<xj[5])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[4],bj[4],xj[4],cj[4],xj[4],dj[4],xj[4]);
S4=aj[4]+bj[4]*(x-xj[4])+cj[4]*pow((x-xj[4]),2)+dj[4]*pow((xxj[4]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S4);
}

printf("\n");
for (i=0;i<n-1;i++)
{
hj[i]=xj[i+1]-xj[i];
printf("\n hj[%d] = %.12lf",i,hj[i]);
}
ma[0][0]=2*hj[0];
ma[0][1]=hj[0];
ma[0][2]=0;
ma[0][3]=0;
ma[0][4]=0;
ma[0][5]=0;
ma[0][6]=0;
ma[0][7]=(3/hj[0])*(aj[1]-aj[0])-3*f0;

if (x>xj[5] && x<xj[6])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[5],bj[5],xj[5],cj[5],xj[5],dj[5],xj[5]);
S5=aj[5]+bj[5]*(x-xj[5])+cj[5]*pow((x-xj[5]),2)+dj[5]*pow((xxj[5]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S5);
}

ma[1][0]=hj[0];
ma[1][1]=2*(hj[0]+hj[1]);
ma[1][2]=hj[1];
ma[1][3]=0;
ma[1][4]=0;
ma[1][5]=0;
ma[1][6]=0;
ma[1][7]=(3/hj[1])*(aj[2]-aj[1])-(3/hj[0])*(aj[1]-aj[0]);

if (x<xj[0] || x>xj[6])
{
printf("\n\n Valor fuera del intervalo de datos");
}

ma[2][0]=0;
ma[2][1]=hj[1];
ma[2][2]=2*(hj[1]+hj[2]);
ma[2][3]=hj[2];
ma[2][4]=0;
ma[2][5]=0;
ma[2][6]=0;
ma[2][7]=(3/hj[2])*(aj[3]-aj[2])-(3/hj[1])*(aj[2]-aj[1]);

getch();
}
TRAZADORES CBICOS SUJETOS
#include<stdio.h>
#include<conio.h>
#include<math.h>

ma[3][0]=0;
ma[3][1]=0;
ma[3][2]=hj[2];
ma[3][3]=2*(hj[2]+hj[3]);
ma[3][4]=hj[3];
ma[3][5]=0;
ma[3][6]=0;
ma[3][7]=(3/hj[3])*(aj[4]-aj[3])-(3/hj[2])*(aj[3]-aj[2]);

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");

ma[4][0]=0;
ma[4][1]=0;

ma[4][2]=0;
ma[4][3]=hj[3];
ma[4][4]=2*(hj[3]+hj[4]);
ma[4][5]=hj[4];
ma[4][6]=0;
ma[4][7]=(3/hj[4])*(aj[5]-aj[4])-(3/hj[3])*(aj[4]-aj[3]);

ma[4][i]=ma[4][i]/div4;
printf("\n ma[4][%d] = %.12lf",i,ma[4][i]);
}
getch();
re5=ma[5][4];
for (i=0;i<=n;i++)
{
ma[5][i]=-re5*ma[4][i]+ma[5][i];
}

ma[5][0]=0;
ma[5][1]=0;
ma[5][2]=0;
ma[5][3]=0;
ma[5][4]=hj[4];
ma[5][5]=2*(hj[4]+hj[5]);
ma[5][6]=hj[5];
ma[5][7]=(3/hj[5])*(aj[6]-aj[5])-(3/hj[4])*(aj[5]-aj[4]);

div5=ma[5][5];
for (i=0;i<=n;i++)
{
ma[5][i]=ma[5][i]/div5;
printf("\n ma[5][%d] = %.12lf",i,ma[5][i]);
}
getch();

ma[6][0]=0;
ma[6][1]=0;
ma[6][2]=0;
ma[6][3]=0;
ma[6][4]=0;
ma[6][5]=hj[5];
ma[6][6]=2*hj[5];
ma[6][7]=3*fn-(3/hj[5])*(aj[6]-aj[5]);

re6=ma[6][5];
for (i=0;i<=n;i++)
{
ma[6][i]=-re6*ma[5][i]+ma[6][i];
}

printf("\n");

div6=ma[6][6];
for (i=0;i<=n;i++)
{
ma[6][i]=ma[6][i]/div6;
printf("\n ma[6][%d] = %.12lf",i,ma[6][i]);
}

div0=ma[0][0];
for (i=0;i<=n;i++)
{
ma[0][i]=ma[0][i]/div0;
printf("\n ma[0][%d] = %.12lf",i,ma[0][i]);
}
getch();

cj[6]=ma[6][7];
printf("\n cj[6] = %.12lf",cj[6]);
cj[5]=ma[5][7]-ma[5][6]*cj[6];
printf("\n cj[5] = %.12lf",cj[5]);
cj[4]=ma[4][7]-ma[4][5]*cj[5]-ma[4][6]*cj[6];
printf("\n cj[4] = %.12lf",cj[4]);
cj[3]=ma[3][7]-ma[3][4]*cj[4]-ma[3][5]*cj[5]-ma[3][6]*cj[6];
printf("\n cj[3] = %.12lf",cj[3]);
cj[2]=ma[2][7]-ma[2][3]*cj[3]-ma[2][4]*cj[4]-ma[2][5]*cj[5]-ma[2]
[6]*cj[6];
printf("\n cj[2] = %.12lf",cj[2]);
cj[1]=ma[1][7]-ma[1][2]*cj[2]-ma[1][3]*cj[3]-ma[1][4]*cj[4]-ma[1]
[5]*cj[5]-ma[1][6]*cj[6];
printf("\n cj[1] = %.12lf",cj[1]);
cj[0]=ma[0][7]-ma[0][1]*cj[1]-ma[0][2]*cj[2]-ma[0][3]*cj[3]-ma[0]
[4]*cj[4]-ma[0][5]*cj[5]-ma[0][6]*cj[6];
printf("\n cj[0] = %.12lf",cj[0]);

re1=ma[1][0];
for (i=0;i<=n;i++)
{
ma[1][i]=-re1*ma[0][i]+ma[1][i];
}
div1=ma[1][1];
for (i=0;i<=n;i++)
{
ma[1][i]=(ma[1][i])/div1;
printf("\n ma[1][%d] = %.12lf",i,ma[1][i]);
}
getch();
re2=ma[2][1];
for (i=0;i<=n;i++)
{
ma[2][i]=-re2*ma[1][i]+ma[2][i];
}

getch();
printf("\n");
for (i=0;i<n-1;i++)
{
bj[i]=(1/hj[i])*(aj[i+1]-aj[i])-(hj[i]/3)*(2*cj[i]+cj[i+1]);
printf("\n bj[%d] = %.12lf",i,bj[i]);
}

div2=ma[2][2];
for (i=0;i<=n;i++)
{
ma[2][i]=ma[2][i]/div2;
printf("\n ma[2][%d] = %.12lf",i,ma[2][i]);
}
getch();

printf("\n");
for (i=0;i<n-1;i++)
{
dj[i]=(1/(3*hj[i]))*(cj[i+1]-cj[i]);
printf("\n dj[%d] = %.12lf",i,dj[i]);
}

re3=ma[3][2];
for (i=0;i<=n;i++)
{
ma[3][i]=-re3*ma[2][i]+ma[3][i];
}

printf("\n\n Escriba el valor a calcular: ");


scanf("%lf",&x);

div3=ma[3][3];
for (i=0;i<=n;i++)
{
ma[3][i]=ma[3][i]/div3;
printf("\n ma[3][%d] = %.12lf",i,ma[3][i]);
}
getch();

if (x>xj[0] && x<xj[1])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[0],bj[0],xj[0],cj[0],xj[0],dj[0],xj[0]);
S0=aj[0]+bj[0]*(x-xj[0])+cj[0]*pow((x-xj[0]),2)+dj[0]*pow((xxj[0]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S0);
}

re4=ma[4][3];
for (i=0;i<=n;i++)
{
ma[4][i]=-re4*ma[3][i]+ma[4][i];
}

if (x>xj[1] && x<xj[2])


{
printf("\n\n Polinomio interpolante cbico trazador: ");

div4=ma[4][4];
for (i=0;i<=n;i++)
{

printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[1],bj[1],xj[1],cj[1],xj[1],dj[1],xj[1]);


S1=aj[1]+bj[1]*(x-xj[1])+cj[1]*pow((x-xj[1]),2)+dj[1]*pow((xxj[1]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S1);
}

double Ex=0,Ey=0,Ex2=0,Exy=0;
double St=0,Sr=0;
double a0,a1,r;
double aux1,aux2;
int i,n;
printf("Ingrese el nmero de datos: ");
scanf("%d",&n);
nd=n;

if (x>xj[2] && x<xj[3])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[2],bj[2],xj[2],cj[2],xj[2],dj[2],xj[2]);
S2=aj[2]+bj[2]*(x-xj[2])+cj[2]*pow((x-xj[2]),2)+dj[2]*pow((xxj[2]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S2);
}

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
x[i]=aux1;
}
for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de y%d: ",i);
scanf("%lf",&aux2);
y[i]=aux2;
}

if (x>xj[3] && x<xj[4])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[3],bj[3],xj[3],cj[3],xj[3],dj[3],xj[3]);
S3=aj[3]+bj[3]*(x-xj[3])+cj[3]*pow((x-xj[3]),2)+dj[3]*pow((xxj[3]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S3);
}

for (i=1;i<=n;i++)
{
printf("\n x[%d] = %.12lf",i,x[i]);
printf("\n y[%d] = %.12lf",i,y[i]);
}

if (x>xj[4] && x<xj[5])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[4],bj[4],xj[4],cj[4],xj[4],dj[4],xj[4]);
S4=aj[4]+bj[4]*(x-xj[4])+cj[4]*pow((x-xj[4]),2)+dj[4]*pow((xxj[4]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S4);
}

for (i=1;i<=n;i++)
{
Ex=x[i]+Ex;
}
printf("\n\n Ex = %.12lf",Ex);
for (i=1;i<=n;i++)
{
Ey=y[i]+Ey;
}
printf("\n Ey = %.12lf",Ey);
printf("\n y(promedio) = %.12lf",Ey/nd);

if (x>xj[5] && x<xj[6])


{
printf("\n\n Polinomio interpolante cbico trazador: ");
printf("\n\n Sj(x) = %.12lf + %.12lf (x - %.12lf) + %.12lf (x %.12lf)^2 + %.12lf (x %.12lf)^3",aj[5],bj[5],xj[5],cj[5],xj[5],dj[5],xj[5]);
S5=aj[5]+bj[5]*(x-xj[5])+cj[5]*pow((x-xj[5]),2)+dj[5]*pow((xxj[5]),3);
printf("\n\n Sj(%.12lf) = %.12lf",x,S5);
}

for (i=1;i<=n;i++)
{
Ex2=pow(x[i],2)+Ex2;
}
printf("\n Ex2 = %.12lf",Ex2);
for (i=1;i<=n;i++)
{
Exy=x[i]*y[i]+Exy;
}
printf("\n Exy = %.12lf",Exy);

if (x<xj[0] || x>xj[6])
{
printf("\n\n Valor fuera del intervalo de datos");
}
getch();
}

printf("\n\n El sistema viene dado por: ");


printf("\n %.12lfa0 + %.12lfa1 = %.12lf",nd,Ex,Ey);
printf("\n %.12lfa0 + %.12lfa1 = %.12lf",Ex,Ex2,Exy);
REGRESIN LINEAL
a0=(Ey*Ex2-Ex*Exy)/(nd*Ex2-Ex*Ex);
a1=(nd*Exy-Ey*Ex)/(nd*Ex2-Ex*Ex);

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

printf("\n\n donde: ");


printf("\n a0 = %.12lf",a0);
printf("\n a1 = %.12lf",a1);

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Aproximacin funcional: Regresin lineal \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

printf("\n\n Modelo: y = %.12lf + %.12lfx",a0,a1);


for (i=1;i<=n;i++)
{
St=pow((y[i]-(Ey/nd)),2)+St;
}
printf("\n\n St = %.12lf",St);
for (i=1;i<=n;i++)
{
Sr=pow((y[i]-a0-a1*x[i]),2)+Sr;
}
printf("\n Sr = %.12lf",Sr);

void main()
{
clrscr();
cabecera();
double x[20],y[20],nd;

r=(St-Sr)/St;

printf("\n\n r^2 = %.12lf",r);


printf("\n El %.12lf(%) de los datos tienen a la recta como una
buena\n aproximacin",r*100);

for (i=1;i<=n;i++)
{
ExY=x[i]*lny[i]+ExY;
}
printf("\n Exy = %.12lf",ExY);

getch();
}
REGRESIN EXPONENCIAL

printf("\n\n El sistema viene dado por: ");


printf("\n %.12lfa0 + %.12lfa1 = %.12lf",nd,Ex,EY);
printf("\n %.12lfa0 + %.12lfa1 = %.12lf",Ex,Ex2,ExY);

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

a0=(EY*Ex2-Ex*ExY)/(nd*Ex2-Ex*Ex);
a1=(nd*ExY-EY*Ex)/(nd*Ex2-Ex*Ex);

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Aproximacin funcional: Regresin exponencial \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

printf("\n\n donde: ");


printf("\n a0 = %.12lf",a0);
printf("\n a1 = %.12lf",a1);
a2=exp(a0);
a3=a1;
printf("\n a2 = %.12lf",a2);
printf("\n a3 = %.12lf",a3);
printf("\n\n Modelo: y = %.12lf * e^(%.12lf)x",a2,a3);

void main()
{
clrscr();
cabecera();

for (i=1;i<=n;i++)
{
St=pow((lny[i]-(EY/nd)),2)+St;
}
printf("\n\n St = %.12lf",St);

double x[20],y[20],lny[20],nd;
double Ex=0,EY=0,Ex2=0,ExY=0;
double St=0,Sr=0;
double a0,a1,a2,a3,r;
double aux1,aux2;
int i,n;

for (i=1;i<=n;i++)
{
Sr=pow((lny[i]-a0-a1*x[i]),2)+Sr;
}
printf("\n Sr = %.12lf",Sr);

printf("Ingrese el nmero de datos: ");


scanf("%d",&n);
nd=n;

r=(St-Sr)/St;
printf("\n\n r^2 = %.12lf",r);
printf("\n El %.12lf(%) de los datos tienen a la curva como una
buena aproximacin",r*100);

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
x[i]=aux1;
}

getch();
}
REGRESIN ECUACIN DE POTENCIAS

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de y%d: ",i);
scanf("%lf",&aux2);
y[i]=aux2;
lny[i]=log(aux2);
}

#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Aproximacin funcional: Regresin ecuacin de
potencias \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

for (i=1;i<=n;i++)
{
printf("\n x[%d] = %.12lf",i,x[i]);
printf("\n y[%d] = %.12lf",i,y[i]);
printf("\n Y[%d] = %.12lf",i,lny[i]);
}
for (i=1;i<=n;i++)
{
Ex=x[i]+Ex;
}
printf("\n\n Ex = %.12lf",Ex);

void main()
{
clrscr();
cabecera();

for (i=1;i<=n;i++)
{
EY=lny[i]+EY;
}
printf("\n EY = %.12lf",EY);
printf("\n Y(promedio) = %.12lf",EY/nd);

double x[20],y[20],lnx[20],lny[20],nd;
double EX=0,EY=0,EX2=0,EXY=0;
double St=0,Sr=0;
double a0,a1,a4,a5,r;
double aux1,aux2;
int i,n;

for (i=1;i<=n;i++)
{
Ex2=pow(x[i],2)+Ex2;
}
printf("\n Ex2 = %.12lf",Ex2);

printf("Ingrese el nmero de datos: ");


scanf("%d",&n);
nd=n;
for (i=1;i<=n;i++)

10

{
printf("\n Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
x[i]=aux1;
lnx[i]=log(aux1);
}

printf("\n El %.12lf(%) de los datos tienen a la curva como una


buena aproximacin",r*100);
getch();
}
MODELO CRECIMIENTO SATURADO

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de y%d: ",i);
scanf("%lf",&aux2);
y[i]=aux2;
lny[i]=log(aux2);
}

#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Aproximacin funcional: Modelo crecimiento
saturado \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

for (i=1;i<=n;i++)
{
printf("\n x[%d] = %.12lf",i,x[i]);
printf("\n y[%d] = %.12lf",i,y[i]);
printf("\n X[%d] = %.12lf",i,lnx[i]);
printf("\n Y[%d] = %.12lf",i,lny[i]);
}
for (i=1;i<=n;i++)
{
EX=lnx[i]+EX;
}
printf("\n\n EX = %.12lf",EX);

void main()
{
clrscr();
cabecera();

for (i=1;i<=n;i++)
{
EY=lny[i]+EY;
}
printf("\n EY = %.12lf",EY);
printf("\n Y(promedio) = %.12lf",EY/nd);

double x[20],y[20],x1[20],y1[20],nd;
double EX=0,EY=0,EX2=0,EXY=0;
double St=0,Sr=0;
double a0,a1,a6,a7,r;
double aux1,aux2;
int i,n;

for (i=1;i<=n;i++)
{
EX2=pow(lnx[i],2)+EX2;
}
printf("\n EX2 = %.12lf",EX2);

printf("Ingrese el nmero de datos: ");


scanf("%d",&n);
nd=n;

for (i=1;i<=n;i++)
{
EXY=lnx[i]*lny[i]+EXY;
}
printf("\n EXY = %.12lf",EXY);

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
x[i]=aux1;
x1[i]=1/aux1;
}

printf("\n\n El sistema viene dado por: ");


printf("\n %.12lfa0 + %.12lfa1 = %.12lf",nd,EX,EY);
printf("\n %.12lfa0 + %.12lfa1 = %.12lf",EX,EX2,EXY);

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de y%d: ",i);
scanf("%lf",&aux2);
y[i]=aux2;
y1[i]=1/aux2;
}

a0=(EY*EX2-EX*EXY)/(nd*EX2-EX*EX);
a1=(nd*EXY-EY*EX)/(nd*EX2-EX*EX);
printf("\n\n donde: ");
printf("\n a0 = %.12lf",a0);
printf("\n a1 = %.12lf",a1);

for (i=1;i<=n;i++)
{
printf("\n x[%d] = %.12lf",i,x[i]);
printf("\n y[%d] = %.12lf",i,y[i]);
printf("\n X[%d] = %.12lf",i,x1[i]);
printf("\n Y[%d] = %.12lf",i,y1[i]);
}

a4=exp(a0);
a5=a1;
printf("\n a4 = %.12lf",a4);
printf("\n a5 = %.12lf",a5);
printf("\n\n Modelo: y = %.12lf * x^(%.12lf)",a4,a5);

for (i=1;i<=n;i++)
{
EX=x1[i]+EX;
}
printf("\n\n EX = %.12lf",EX);

for (i=1;i<=n;i++)
{
St=pow((lny[i]-(EY/nd)),2)+St;
}
printf("\n\n St = %.12lf",St);

for (i=1;i<=n;i++)
{
EY=y1[i]+EY;
}
printf("\n EY = %.12lf",EY);
printf("\n Y(promedio) = %.12lf",EY/nd);

for (i=1;i<=n;i++)
{
Sr=pow((lny[i]-a0-a1*lnx[i]),2)+Sr;
}
printf("\n Sr = %.12lf",Sr);

for (i=1;i<=n;i++)
{
EX2=pow(x1[i],2)+EX2;
}

r=(St-Sr)/St;
printf("\n\n r^2 = %.12lf",r);

11

printf("\n EX2 = %.12lf",EX2);


for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
x[i]=aux1;
}

for (i=1;i<=n;i++)
{
EXY=x1[i]*y1[i]+EXY;
}
printf("\n EXY = %.12lf",EXY);

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de y%d: ",i);
scanf("%lf",&aux2);
y[i]=aux2;
}

printf("\n\n El sistema viene dado por: ");


printf("\n %.12lfa0 + %.12lfa1 = %.12lf",nd,EX,EY);
printf("\n %.12lfa0 + %.12lfa1 = %.12lf",EX,EX2,EXY);
a0=(EY*EX2-EX*EXY)/(nd*EX2-EX*EX);
a1=(nd*EXY-EY*EX)/(nd*EX2-EX*EX);

for (i=1;i<=n;i++)
{
printf("\n x[%d] = %.12lf",i,x[i]);
printf("\n y[%d] = %.12lf",i,y[i]);
}

printf("\n\n donde: ");


printf("\n a0 = %.12lf",a0);
printf("\n a1 = %.12lf",a1);
a6=1/a0;
a7=a1/a6;
printf("\n a6 = %.12lf",a6);
printf("\n a7 = %.12lf",a7);
printf("\n\n Modelo: y = (%.12lf * x)/(%.12lf + x)",a6,a7);

for (i=1;i<=n;i++)
{
Ex=x[i]+Ex;
}
printf("\n\n Ex = %.12lf",Ex);

for (i=1;i<=n;i++)
{
St=pow((y1[i]-(EY/nd)),2)+St;
}
printf("\n\n St = %.12lf",St);

for (i=1;i<=n;i++)
{
Ey=y[i]+Ey;
}
printf("\n Ey = %.12lf",Ey);
printf("\n y(promedio) = %.12lf",Ey/nd);

for (i=1;i<=n;i++)
{
Sr=pow((y1[i]-a0-a1*x1[i]),2)+Sr;
}
printf("\n Sr = %.12lf",Sr);

for (i=1;i<=n;i++)
{
Ex2=pow(x[i],2)+Ex2;
}
printf("\n Ex2 = %.12lf",Ex2);

r=(St-Sr)/St;
printf("\n\n r^2 = %.12lf",r);
printf("\n El %.12lf(%) de los datos tienen a la curva como una
buena aproximacin",r*100);

for (i=1;i<=n;i++)
{
Ex3=pow(x[i],3)+Ex3;
}
printf("\n Ex3 = %.12lf",Ex3);

getch();
}

for (i=1;i<=n;i++)
{
Ex4=pow(x[i],4)+Ex4;
}
printf("\n Ex4 = %.12lf",Ex4);

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

for (i=1;i<=n;i++)
{
Exy=x[i]*y[i]+Exy;
}
printf("\n Exy = %.12lf",Exy);

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Aproximacin funcional: Regresin polinomial \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

for (i=1;i<=n;i++)
{
Ex2y=pow(x[i],2)*y[i]+Ex2y;
}
printf("\n Ex2y = %.12lf",Ex2y);
printf("\n\n El sistema viene dado por: ");
printf("\n %.12lf a0 + %.12lf a1 +%.12lf a2 =
%.12lf",nd,Ex,Ex2,Ey);
printf("\n %.12lf a0 + %.12lf a1 +%.12lf a2 =
%.12lf",Ex,Ex2,Ex3,Exy);
printf("\n %.12lf a0 + %.12lf a1 +%.12lf a2 =
%.12lf",Ex2,Ex3,Ex4,Ex2y);

void main()
{
clrscr();
cabecera();

det=nd*(Ex2*Ex4-Ex3*Ex3)+Ex*(Ex2*Ex3-Ex4*Ex)
+Ex2*(Ex*Ex3-Ex2*Ex2);
printf("\n det = %.12lf",det);
a0=(-((Ex2*Ex2-Ex*Ex3)*Ex2y-((Exy*Ex3+Ey*Ex4)*Ex2(Ey*Ex3*Ex3+Ex*Exy*Ex4))))/det;
a1=((Ex*Ex2-nd*Ex3)*Ex2y-(Exy*Ex2*Ex2-Ey*Ex3*Ex2(nd*Exy-Ey*Ex)*Ex4))/det;
a2=((nd*Ex2-Ex*Ex)*Ex2y-(Ey*Ex2*Ex2-Ex*Exy*Ex2+
(nd*Exy-Ey*Ex)*Ex3))/det;

double x[20],y[20],nd;
double Ex=0,Ey=0,Ex2=0,Ex3=0,Ex4=0,Exy=0,Ex2y=0;
double St=0,Sr=0;
double det;
double a0,a1,a2,r;
double aux1,aux2;
int i,n;
printf("Ingrese el nmero de datos: ");
scanf("%d",&n);
nd=n;

printf("\n\n donde: ");


printf("\n a0 = %.12lf",a0);

12

printf("\n a1 = %.12lf",a1);
printf("\n a2 = %.12lf",a2);

}
for (i=1;i<=n;i++)
{
printf("\n x[%d] = %.12lf",i,x[i]);
printf("\n y[%d] = %.12lf",i,y[i]);
printf("\n z[%d] = %.12lf",i,z[i]);
}

printf("\n\n Modelo: z = %.12lf(x) + %.12lf(y) +


%.12lf",a0,a1,a2);

for (i=1;i<=n;i++)
{
St=pow((y[i]-(Ey/nd)),2)+St;
}
printf("\n\n St = %.12lf",St);

for (i=1;i<=n;i++)
{
Ex=x[i]+Ex;
}
printf("\n\n Ex = %.12lf",Ex);

for (i=1;i<=n;i++)
{
Sr=pow((y[i]-a0-a1*x[i]-a2*pow(x[i],2)),2)+Sr;
}
printf("\n Sr = %.12lf",Sr);

for (i=1;i<=n;i++)
{
Ey=y[i]+Ey;
}
printf("\n Ey = %.12lf",Ey);

r=(St-Sr)/St;
printf("\n\n r^2 = %.12lf",r);
printf("\n El %.12lf(%) de los datos tienen a la recta como una
buena\n aproximacin",r*100);

for (i=1;i<=n;i++)
{
Ez=z[i]+Ez;
}
printf("\n Ez = %.12lf",Ez);
printf("\n z(promedio) = %.12lf",Ez/nd);

getch();
}
REGRESIN MULTILINEAL

for (i=1;i<=n;i++)
{
Ex2=pow(x[i],2)+Ex2;
}
printf("\n Ex2 = %.12lf",Ex2);

#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Aproximacin funcional: Regresin multilineal \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

for (i=1;i<=n;i++)
{
Ey2=pow(y[i],2)+Ey2;
}
printf("\n Ey2 = %.12lf",Ey2);
for (i=1;i<=n;i++)
{
Ez2=pow(z[i],2)+Ez2;
}
printf("\n Ez2 = %.12lf",Ez2);
for (i=1;i<=n;i++)
{
Exy=x[i]*y[i]+Exy;
}
printf("\n Exy = %.12lf",Exy);

void main()
{
clrscr();
cabecera();

for (i=1;i<=n;i++)
{
Exz=x[i]*z[i]+Exz;
}
printf("\n Exz = %.12lf",Exz);

double x[20],y[20],z[20],nd;
double
Ex=0,Ey=0,Ez=0,Ex2=0,Ey2=0,Ez2=0,Exy=0,Exz=0,Eyz=0;
double St=0,Sr=0;
double a,b,c,r;
double aux1,aux2,aux3,det;
int i,n;

for (i=1;i<=n;i++)
{
Eyz=y[i]*z[i]+Eyz;
}
printf("\n Eyz = %.12lf",Eyz);

printf("Ingrese el nmero de datos: ");


scanf("%d",&n);
nd=n;
for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de x%d: ",i);
scanf("%lf",&aux1);
x[i]=aux1;
}

printf("\n\n El sistema viene dado por: ");


printf("\n %.12lf a + %.12lf b +%.12lf c = %.12lf",Ex,Ey,nd,Ez);
printf("\n %.12lf a + %.12lf b +%.12lf c =
%.12lf",Ex2,Exy,Ex,Exz);
printf("\n %.12lf a + %.12lf b +%.12lf c =
%.12lf",Exy,Ey2,Ey,Eyz);

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de y%d: ",i);
scanf("%lf",&aux2);
y[i]=aux2;
}

det=Ex*(Ey*Exy-Ey2*Ex)-Ey*(Ey*Ex2-Exy*Ex)+nd*(Ey2*Ex2Exy*Exy);
a=(Ez*(Ey*Exy-Ey2*Ex)-Ey*(Ey*Exz-Eyz*Ex)+nd*(Ey2*ExzEyz*Exy))/det;
b=(Ex*(Ey*Exz-Eyz*Ex)-Ez*(Ey*Ex2-Exy*Ex)+nd*(Eyz*Ex2Exy*Exz))/det;
c=(Ex*(Eyz*Exy-Ey2*Exz)-Ey*(Eyz*Ex2-Exy*Exz)
+Ez*(Ey2*Ex2-Exy*Exy))/det;

for (i=1;i<=n;i++)
{
printf("\n Escriba el valor de z%d: ",i);
scanf("%lf",&aux3);
z[i]=aux3;

printf("\n\n donde: ");


printf("\n a = %.12lf",a);
printf("\n b = %.12lf",b);

13

printf("\n c = %.12lf",c);

yn=y0+h*(inde+y);
printf("\n yn = %.12lf",yn);
y0=yn;
y=y*y0;
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=exp(ind*t0);
getch();
}

printf("\n\n Modelo: z = %.12lf(x) + %.12lf(y) + %.12lf",a,b,c);


for (i=1;i<=n;i++)
{
St=pow((z[i]-(Ez/nd)),2)+St;
}
printf("\n\n St = %.12lf",St);

for (i=1;i<=n;i++)
{
Sr=pow((z[i]-a*x[i]-b*y[i]-c),2)+Sr;
}
printf("\n Sr = %.12lf",Sr);

if (f==2)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=sin(ind*t0);

r=(St-Sr)/St;
printf("\n\n r^2 = %.12lf",r);
printf("\n El %.12lf(%) de los datos tienen al modelo como una
buena aproximacin",r*100);

while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
yn=y0+h*(inde+y);
printf("\n yn = %.12lf",yn);
y0=yn;
y=y*y0;
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=sin(ind*t0);
getch();
}

getch();
}
MTODO DE EULER
#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Solucin numrica de problemas de valor inicial: Mtodo
de Euler \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

}
if (f==3)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=cos(ind*t0);
while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
yn=y0+h*(inde+y);
printf("\n yn = %.12lf",yn);
y0=yn;
y=y*y0;
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=cos(ind*t0);
getch();
}

void main()
{
clrscr();
cabecera();
double y,yi,inde,ind;
double yn,t,y0,t0,tn;
double h,eval;
int f;
}
printf("\n Tipo funcin: dy/dt = f(t,y)");
printf("\n\nEscriba el valor del y inicial: ");
scanf("%lf",&y0);
printf("Escriba el valor del t inicial: ");
scanf("%lf",&t0);
tn=t0;
printf("Escriba el valor de h: ");
scanf("%lf",&h);
printf("Escriba el valor del t a evaluar: ");
scanf("%lf",&t);
printf("Escriba el valor que acompaa a y: ");
scanf("%lf",&yi);
y=yi*y0;
printf("Si el trmino independiente es exponencial (1), seno
(2), coseno (3), tangente (4): ");
scanf("%d",&f);

if (f==4)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=tan(ind*t0);

while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
yn=y0+h*(inde+y);
printf("\n yn = %.12lf",yn);
y0=yn;
y=y*y0;
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=tan(ind*t0);
getch();
}

if (f==1)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=exp(ind*t0);
}
while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);

if (f!=1 && f!=2 && f!=3 && f!= 4)


{
printf("\n\n Funcin no aceptada");
tn=tn+h;

14

printf("\n x2 = %.12lf",x2);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
getch();
}

getch();
}
EULER PARA SISTEMAS
#include<stdio.h>
#include<conio.h>
#include<math.h>

getch();
}
MTODO DE EULER MEJORADO

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Solucin numrica de sistemas con valor inicial: Mtodo
de Euler \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Solucin numrica de problemas de valor inicial: Mtodo
de Euler-mejorado \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

void main()
{
clrscr();
cabecera();
double y1,cy1,y2,cy2;
double x1,cx1,x2,cx2;
double yn,t,y0,t0,tn;
double xn,x0;
double h,eval;

void main()
{
clrscr();
cabecera();
double yi,y,inde,ind;
double yn,t,y0,t0,tn;
double k1,k2,u1;
double h,eval;
int f;

printf("\n Tipo funcin: y' = f(t,x,y)");


printf("\n
x' = f(t,x,y)");
printf("\n Escriba el valor del y inicial: ");
scanf("%lf",&y0);
printf("Escriba el valor del x inicial: ");
scanf("%lf",&x0);
printf("Escriba el valor del t inicial: ");
scanf("%lf",&t0);
tn=t0;
printf("Escriba el valor de h: ");
scanf("%lf",&h);
printf("Escriba el valor del t a evaluar: ");
scanf("%lf",&t);
printf("Escriba el valor que acompaa a y en la primera ecuaci
n: ");
scanf("%lf",&cy1);
y1=cy1*y0;
printf("Escriba el valor que acompaa a x en la primera ecuaci
n: ");
scanf("%lf",&cx1);
x1=cx1*x0;
printf("Escriba el valor que acompaa a y en la segunda
ecuacin: ");
scanf("%lf",&cy2);
y2=cy2*y0;
printf("Escriba el valor que acompaa a x en la segunda
ecuacin: ");
scanf("%lf",&cx2);
x2=cx2*x0;

printf("\n Tipo funcin: dy/dt = f(t,y)");


printf("\n\nEscriba el valor del y inicial: ");
scanf("%lf",&y0);
printf("Escriba el valor del t inicial: ");
scanf("%lf",&t0);
tn=t0;
printf("Escriba el valor de h: ");
scanf("%lf",&h);
printf("Escriba el valor del t a evaluar: ");
scanf("%lf",&t);
printf("Escriba el valor que acompaa a y: ");
scanf("%lf",&yi);
y=yi*y0;
printf("Si el trmino independiente es exponencial (1), seno
(2), coseno (3), tangente (4): ");
scanf("%d",&f);
if (f==1)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=exp(ind*t0);
while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
k1=inde+y;
printf("\n k1 = %.12lf",k1);
u1=y0+h*k1;
printf("\n u1 = %.12lf",u1);
printf("\n y0 = %.12lf",y0);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=exp(ind*t0);
printf("\n inde = %.12lf",inde);
k2=inde+yi*u1;
printf("\n k2 = %.12lf",k2);
yn=y0+0.5*h*(k1+k2);
y0=yn;
y=yi*y0;
printf("\n yn = %.12lf",yn);

while (tn<t)
{
printf("\n\n y1 = %.12lf",y1);
printf("\n x1 = %.12lf",x1);
printf("\n y2 = %.12lf",y2);
printf("\n x2 = %.12lf",x2);
yn=y0+h*(y1+x1);
printf("\n yn = %.12lf",yn);
xn=x0+h*(y2+x2);
printf("\n xn = %.12lf",xn);
y0=yn;
x0=xn;
y1=cy1*y0;
x1=cx1*x0;
printf("\n y1 = %.12lf",y1);
printf("\n x1 = %.12lf",x1);
y2=cy2*y0;
x2=cx2*x0;
printf("\n y2 = %.12lf",y2);

15

getch();
}

inde=tan(ind*t0);
printf("\n inde = %.12lf",inde);
k2=inde+yi*u1;
printf("\n k2 = %.12lf",k2);
yn=y0+0.5*h*(k1+k2);
y0=yn;
y=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

}
if (f==2)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=sin(ind*t0);
}
while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
k1=inde+y;
printf("\n k1 = %.12lf",k1);
u1=y0+h*k1;
printf("\n u1 = %.12lf",u1);
printf("\n y0 = %.12lf",y0);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=sin(ind*t0);
printf("\n inde = %.12lf",inde);
k2=inde+yi*u1;
printf("\n k2 = %.12lf",k2);
yn=y0+0.5*h*(k1+k2);
y0=yn;
y=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

if (f!=1 && f!=2 && f!=3 && f!= 4)


{
printf("\n\n Funcin no aceptada");
tn=tn+h;
}
getch();
}
EULER MEJORADO PARA SISTEMAS
#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Solucin numrica de sistemas con valor inicial: Mtodo
de Euler mejorado \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

}
if (f==3)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=cos(ind*t0);
while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
k1=inde+y;
printf("\n k1 = %.12lf",k1);
u1=y0+h*k1;
printf("\n u1 = %.12lf",u1);
printf("\n y0 = %.12lf",y0);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
inde=cos(ind*t0);
printf("\n inde = %.12lf",inde);
k2=inde+yi*u1;
printf("\n k2 = %.12lf",k2);
yn=y0+0.5*h*(k1+k2);
y0=yn;
y=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

void main()
{
clrscr();
cabecera();
double y1,cy1,y2,cy2,F1,F2;
double x1,cx1,x2,cx2,G1,G2;
double yn,yn1,t,y0,t0,tn;
double xn,xn1,x0;
double h;
printf("\n Tipo funcin: y' = f(t,x,y)");
printf("\n
x' = f(t,x,y)");
printf("\n Escriba el valor del y inicial: ");
scanf("%lf",&y0);
printf("Escriba el valor del x inicial: ");
scanf("%lf",&x0);
printf("Escriba el valor del t inicial: ");
scanf("%lf",&t0);
tn=t0;
printf("Escriba el valor de h: ");
scanf("%lf",&h);
printf("Escriba el valor del t a evaluar: ");
scanf("%lf",&t);
printf("Escriba el valor que acompaa a y en la primera ecuaci
n: ");
scanf("%lf",&cy1);
y1=cy1*y0;
printf("Escriba el valor que acompaa a x en la primera ecuaci
n: ");
scanf("%lf",&cx1);
x1=cx1*x0;
printf("Escriba el valor que acompaa a y en la segunda
ecuacin: ");
scanf("%lf",&cy2);
y2=cy2*y0;
printf("Escriba el valor que acompaa a x en la segunda
ecuacin: ");
scanf("%lf",&cx2);
x2=cx2*x0;

}
if (f==4)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde=tan(ind*t0);

while (tn<t)
{
printf("\n\n inde = %.12lf",inde);
printf("\n y = %.12lf",y);
k1=inde+y;
printf("\n k1 = %.12lf",k1);
u1=y0+h*k1;
printf("\n u1 = %.12lf",u1);
printf("\n y0 = %.12lf",y0);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;

while (tn<t)
{
printf("\n\n y1 = %.12lf",y1);

16

printf("\n x1 = %.12lf",x1);
printf("\n y2 = %.12lf",y2);
printf("\n x2 = %.12lf",x2);

y1=yi*y0;
printf("Si el trmino independiente es exponencial (1), seno
(2), coseno (3), tangente (4): ");
scanf("%d",&f);

F1=x1+y1;
printf("\n F1 = %.12lf",F1);
G1=x2+y2;
printf("\n G1 = %.12lf",G1);

if (f==1)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde1=exp(ind*t0);
inde2=exp(ind*(t0+0.5*h));

yn1=y0+h*F1;
printf("\n yn1 = %.12lf",yn1);
xn1=x0+h*G1;
printf("\n xn1 = %.12lf",xn1);

while (tn<t)
{
printf("\n\n inde1 = %.12lf",inde1);
printf("\n y1 = %.12lf",y1);
k1=inde1+y1;
printf("\n k1 = %.12lf",k1);
y2=yi*(y0+0.5*h*k1);
k2=inde2+y2;
printf("\n k2 = %.12lf",k2);
y3=yi*(y0+0.5*h*k2);
k3=inde2+y3;
printf("\n k3 = %.12lf",k3);
tn=tn+h;
t0=tn;
inde1=exp(ind*t0);
inde2=exp(ind*(t0+0.5*h));
printf("\n inde1 = %.12lf",inde1);
printf("\n inde2 = %.12lf",inde2);
y4=yi*(y0+h*k3);
k4=inde1+y4;
printf("\n k4 = %.12lf",k4);
yn=y0+(0.166666666667)*h*(k1+2*k2+2*k3+k4);
y0=yn;
y1=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

F2=cx1*xn1+cy1*yn1;
printf("\n F2 = %.12lf",F2);
G2=cx2*xn1+cy2*yn1;
printf("\n G2 = %.12lf",G2);
yn=y0+0.5*h*(F1+F2);
printf("\n yn = %.12lf",yn);
xn=x0+0.5*h*(G1+G2);
printf("\n xn = %.12lf",xn);
y0=yn;
x0=xn;
y1=cy1*y0;
x1=cx1*x0;
printf("\n y1 = %.12lf",y1);
printf("\n x1 = %.12lf",x1);
y2=cy2*y0;
x2=cx2*x0;
printf("\n y2 = %.12lf",y2);
printf("\n x2 = %.12lf",x2);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
getch();
}
getch();
}

}
MTODO DE RUNGE-KUTTA

if (f==2)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde1=sin(ind*t0);

#include<stdio.h>
#include<conio.h>
#include<math.h>
void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");
printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Solucin numrica de problemas de valor inicial: Mtodo
de Runge-Kutta \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}

while (tn<t)
{
printf("\n\n inde1 = %.12lf",inde1);
printf("\n y1 = %.12lf",y1);
k1=inde1+y1;
printf("\n k1 = %.12lf",k1);
y2=yi*(y0+0.5*k1);
k2=inde2+y2;
printf("\n k2 = %.12lf",k2);
y3=yi*(y0+0.5*k2);
k3=inde2+y3;
printf("\n k3 = %.12lf",k3);
tn=tn+h;
t0=tn;
inde1=exp(ind*t0);
inde2=exp(ind*t0+1/2*t0);
printf("\n inde1 = %.12lf",inde1);
printf("\n inde2 = %.12lf",inde2);
y4=yi*(y0+h*k3);
k4=inde1+y4;
printf("\n k4 = %.12lf",k4);
yn=y0+(1/6)*h*(k1+k2+k3+k4);
y0=yn;
y1=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

void main()
{
clrscr();
cabecera();
double yi,y1,y2,y3,y4,inde1,inde2,ind;
double yn,t,y0,t0,tn;
double k1,k2,k3,k4;
double h,eval;
int f;
printf("\n Tipo funcin: dy/dt = f(t,y)");
printf("\n\nEscriba el valor del y inicial: ");
scanf("%lf",&y0);
printf("Escriba el valor del t inicial: ");
scanf("%lf",&t0);
tn=t0;
printf("Escriba el valor de h: ");
scanf("%lf",&h);
printf("Escriba el valor del t a evaluar: ");
scanf("%lf",&t);
printf("Escriba el valor que acompaa a y: ");
scanf("%lf",&yi);

}
if (f==3)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde1=cos(ind*t0);
while (tn<t)

17

{
printf("\n\n inde1 = %.12lf",inde1);
printf("\n y1 = %.12lf",y1);
k1=inde1+y1;
printf("\n k1 = %.12lf",k1);
y2=yi*(y0+0.5*k1);
k2=inde2+y2;
printf("\n k2 = %.12lf",k2);
y3=yi*(y0+0.5*k2);
k3=inde2+y3;
printf("\n k3 = %.12lf",k3);
tn=tn+h;
t0=tn;
inde1=exp(ind*t0);
inde2=exp(ind*t0+1/2*t0);
printf("\n inde1 = %.12lf",inde1);
printf("\n inde2 = %.12lf",inde2);
y4=yi*(y0+h*k3);
k4=inde1+y4;
printf("\n k4 = %.12lf",k4);
yn=y0+(1/6)*h*(k1+k2+k3+k4);
y0=yn;
y1=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

printf("1.087.990.043 \n");
printf("Ingeniera Elctrica \n");
printf("Cuarto semestre \n");
printf("Mtodos Numricos \n");
printf("Solucin numrica de sistemas con valor inicial: Mtodo
de Runge-Kutta \n");
printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \n \n");
}
void main()
{
clrscr();
cabecera();
double y1,cy1,y2,cy2,F1,F2,F3,F4;
double x1,cx1,x2,cx2,G1,G2,G3,G4;
double yn,t,y0,t0,tn;
double xn,x0;
double h;
printf("\n Tipo funcin: y' = f(t,x,y)");
printf("\n
x' = f(t,x,y)");
printf("\n Escriba el valor del y inicial: ");
scanf("%lf",&y0);
printf("Escriba el valor del x inicial: ");
scanf("%lf",&x0);
printf("Escriba el valor del t inicial: ");
scanf("%lf",&t0);
tn=t0;
printf("Escriba el valor de h: ");
scanf("%lf",&h);
printf("Escriba el valor del t a evaluar: ");
scanf("%lf",&t);
printf("Escriba el valor que acompaa a y en la primera ecuaci
n: ");
scanf("%lf",&cy1);
y1=cy1*y0;
printf("Escriba el valor que acompaa a x en la primera ecuaci
n: ");
scanf("%lf",&cx1);
x1=cx1*x0;
printf("Escriba el valor que acompaa a y en la segunda
ecuacin: ");
scanf("%lf",&cy2);
y2=cy2*y0;
printf("Escriba el valor que acompaa a x en la segunda
ecuacin: ");
scanf("%lf",&cx2);
x2=cx2*x0;

}
if (f==4)
{
printf("Escriba el valor que acompaa a t: ");
scanf("%lf",&ind);
inde1=tan(ind*t0);

while (tn<t)
{
printf("\n\n inde1 = %.12lf",inde1);
printf("\n y = %.12lf",y1);
k1=inde1+y1;
printf("\n k1 = %.12lf",k1);
y2=yi*(y0+0.5*k1);
k2=inde2+y2;
printf("\n k2 = %.12lf",k2);
y3=yi*(y0+0.5*k2);
k3=inde2+y3;
printf("\n k3 = %.12lf",k3);
tn=tn+h;
t0=tn;
inde1=exp(ind*t0);
inde2=exp(ind*t0+1/2*t0);
printf("\n inde1 = %.12lf",inde1);
printf("\n inde2 = %.12lf",inde2);
y4=yi*(y0+h*k3);
k4=inde1+y4;
printf("\n k4 = %.12lf",k4);
yn=y0+(1/6)*h*(k1+k2+k3+k4);
y0=yn;
y1=yi*y0;
printf("\n yn = %.12lf",yn);
getch();
}

while (tn<t)
{
printf("\n\n y1 = %.12lf",y1);
printf("\n x1 = %.12lf",x1);
printf("\n y2 = %.12lf",y2);
printf("\n x2 = %.12lf",x2);
F1=x1+y1;
printf("\n F1 = %.12lf",F1);
G1=x2+y2;
printf("\n G1 = %.12lf",G1);
F2=cx1*(x0+0.5*h*G1)+cy1*(y0+0.5*h*F1);
printf("\n F2 = %.12lf",F2);
G2=cx2*(x0+0.5*h*G1)+cy2*(y0+0.5*h*F1);
printf("\n G2 = %.12lf",G2);

}
if (f!=1 && f!=2 && f!=3 && f!= 4)
{
printf("\n\n Funcin no aceptada");
tn=tn+h;
}

F3=cx1*(x0+0.5*h*G2)+cy1*(y0+0.5*h*F2);
printf("\n F3 = %.12lf",F3);
G3=cx2*(x0+0.5*h*G2)+cy2*(y0+0.5*h*F2);
printf("\n G3 = %.12lf",G3);

getch();
}

F4=cx1*(x0+h*G3)+cy1*(y0+h*F3);
printf("\n F4 = %.12lf",F4);
G4=cx2*(x0+h*G3)+cy2*(y0+h*F3);
printf("\n G4 = %.12lf",G4);

RUNGE-KUTTA PARA SISTEMAS


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

yn=y0+0.166666666667*h*(F1+2*F2+2*F3+F4);
printf("\n yn = %.12lf",yn);
xn=x0+0.166666666667*h*(G1+2*G2+2*G3+G4);
printf("\n xn = %.12lf",xn);
y0=yn;
x0=xn;
y1=cy1*y0;
x1=cx1*x0;
printf("\n y1 = %.12lf",y1);

void cabecera(void)
{
printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< \n");
printf("Juan Sebasti n Hurtado Jaramillo \n");
printf("1.087.992.226 \n");
printf("Johny Andrs Lpez Londoo \n");

18

printf("\n x1 = %.12lf",x1);
y2=cy2*y0;
x2=cx2*x0;
printf("\n y2 = %.12lf",y2);
printf("\n x2 = %.12lf",x2);
printf("\n t0 = %.12lf",t0);
tn=tn+h;
t0=tn;
getch();
}
getch();
}

19

You might also like