NoPicky
Bovino maduro
- Desde
- 3 Ene 2010
- Mensajes
- 101
- Tema Autor
- #1
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;
}
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;
}