Sei sulla pagina 1di 2

#include<stdio.

h>
#include<stdlib.h>
#include<math.h>
const int nmax=50;

int main()
{
system("cls");//inicialización de variables
float pas, fin, x[nmax], ys[nmax], yc[nmax], aux, vv, ets, etc;
int cont;
printf("Metodo de Euler\n\n");
printf("para ecuacion: (y^1/2)/(2x+1)\n");
do{
printf("Indique el tamano de paso: ");scanf("%f", &pas);//solicitamos los datos para
evaluarlos
printf("Indique el valor para Y para que X pertenece:\nx: ");scanf("%f", &x[0]);
printf("y: ");scanf("%f", &ys[0]);
printf("\nIndique X para evaluar Y: ");scanf("%f", &fin);
yc[0]=ys[0];
aux=(fin-x[0])/pas;
}while(aux>50);
system("pause");
system("cls");//inicio de cálculos
for(cont=0;cont<=aux;cont++){
x[cont+1]=x[cont]+pas;
ys[cont+1]=ys[cont]+(pas*((sqrt(ys[cont]))/((2*x[cont])+1)));

yc[cont+1]=yc[cont]+(pas*((((sqrt(yc[cont]))/((2*x[cont])+1))+((sqrt(ys[cont+1]))/((2*x[c
ont+1])+1)))/2));
}//inicia impresión de datos
printf(" iter xi ys yc\n");
for(cont=0;cont<=aux+1;cont++){
if(cont<=aux)printf("%5d %10g %10g %10g\n", cont, x[cont], ys[cont], yc[cont]);
else{
vv=(pow(log((2*fin)+1)+8,2))/16;
ets=vv-ys[cont-1];
etc=vv-yc[cont-1];
printf("\nValor verdadero: %g", vv);
printf("\nError verdadero simple: %g\n", ets);
printf("Error verdadero compuesto: %g\n\n", etc);
}}

system("pause");
return 0;
}

Potrebbero piacerti anche