Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda aplet

NoPicky

Bovino maduro
Desde
3 Ene 2010
Mensajes
101
hola hermanos del corral
tengo un problema...
quiciera hacer un aplet de un metodo de integracion simpson 3/8 y simpson 1/3
tengo el programa en C y se los dejo en el post
quisiera que me ayudaran a hacer el aplet si alguien tiene tiempo no se nada sobre el tema
o si me podrian dar un manual o algo para poder crearlo
gracias...


#include <stdio.h>
#include <stdlib.h>

int main()
{
int valor;
int contador;
int intervalo1;
int intervalo2;
int intervalo;
float tablaX[50];
float tablaY[50];
float suma;
float suma1;
float suma2;
float suma3;
float sum;
float sum1;
float sum2;
float sum3;
float aux;
float aux1[2];
int i;
float h;
//float h1;
int simpson=1;
float integral;
float integral1;
float integral2;

printf("\nMétodos Numericos II");
printf("\nMétodo de Integracion");
//intrucciones
printf("\nEste programa Integra con las reglas de simpson 3/8 y 1/3");
printf("\nVerifica los intervalos en tu tabla de tener diferentes distancias\nen tus intervalos tendras errores en el resultado");

printf("\nCuantos valores de X tendremos?: ");
scanf("%d",&valor);

for(i=0;i<valor;i++)
{
printf("\nDame el valor de X%d ",i);
scanf("%f",&tablaX);
printf("\nDame el valor de Y%d ",i);
scanf("%f",&tablaY);
}
printf("\nProporciona el intevalo");
printf("\nEn que X inicia el intervalo: ");
scanf("%d",&intervalo1);
printf("\nEn que X termina el intervalo: ");
scanf("%d",&intervalo2);

intervalo=0;
for(i=intervalo1;i<=intervalo2;i++){
intervalo++;
}


h=tablaX[1]-tablaX[0];
printf("\nh: %f",h);
//intento de comparar los intervalos
/*for(i=1;i<valor;i++)
{

h1=tablaX-(tablaX[i-1]);
printf("\ncomparando la distancia de los intervalos %f-%f=%f",tablaX,tablaX[i-1],h1);
if(h1!=h)
{
printf("\n%f",h1);
printf("\nLa 'h' de los intervalos no concuerda vuelva a introducir la tabla");
return 0;
}



}*/

suma=0;
suma1=0;
suma2=0;
suma3=0;


//Regla de simpson 3/8
if(((intervalo-4)%3)==0||intervalo==4)
{
suma1=tablaY[intervalo1]+tablaY[intervalo2];
for(i=(intervalo1+1);i<intervalo2;i++)
{
contador++;
aux=0;
if(contador!=3){
aux=3*tablaY;
suma2+=aux;

}
else
{
aux=2*tablaY;
suma3+=aux;

contador=0;
}

}
suma=suma1+suma2+suma3;
//falta multiplicacion
integral=((3*h)/8)*suma;
printf("\nIntegral=%.6f",integral);


}

//regla de simpson 3/8 con simpson 1/3
else if(intervalo==8||(intervalo-5-4)%3==0)
{
//regla de simpson 3/8
suma1=tablaY[intervalo1]+tablaY[intervalo2-4];
for(i=(intervalo1+1);i<intervalo2-4;i++)
{
contador++;
aux=0;
if(contador!=3){
aux=3*tablaY;
suma2+=aux;

}
else
{
aux=2*tablaY;
suma3+=aux;

contador=0;
}

}
suma=suma1+suma2+suma3;
//Resultado simpson 3/8
sum=0;
sum1=0;
sum2=0;
sum3=0;
integral1=((3*h)/8)*suma;
printf("\nIntegral con simpson 3/8: %.6f",integral1);

//regla de simpson 1/3
aux=0;
sum=0;
sum1=0;
sum2=0;
sum3=0;
contador=0;
sum1=tablaY[intervalo2-4]+tablaY[intervalo2];
for(i=(intervalo2-3);i<intervalo2;i++)
{
if(simpson==1)
{
sum2=0;
aux=4*tablaY;
sum2+=aux;
simpson=0;
aux1[contador]=sum2;
contador++;

}
else
{
aux=2*tablaY;
sum3+=aux;
simpson=1;
}


}
sum=sum1+aux1[0]+aux1[1]+sum3;
//Resultado simpson 1/3
integral2=(h/3)*sum;
printf("\nIntegral con simpson 1/3: %.6f",integral2);
integral=integral1+integral2;
printf("\nIntegral: %.6f",integral);



}


else
{
printf("\nEl intervalo para integrar no es valido");
}

return 0;
}
 
Volver
Arriba