necesito calcular integrales en c++

natalia
28 de Noviembre del 2005
nesesito un programa pequeño que me calcule integrales no tienen que ser muy grande

kalev
28 de Noviembre del 2005
como sabras la integral no es mas q área, entonces ahi seria bueno hacer una suma sucesiva de areas..
osea aplicarimos un bucle..con un incremento muy pequeño..
por ejem..

#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
float i,a,n,dx,s;
cout<<"ingresar primer extremo.: ";cin>>a;
cout<<"ingresar 2ª extremo.: ";cin>>n;
dx=0.0005;
s=0;
for(i=a;i<=n;i=i+dx)
{ s=s+sin(i+dx)*dx;}
cout<<" la integral es: "<<s;
getch();
}

si te das cuenta el incremento es "dx" q es muy pequeño..ESPERO TE SIRVA AUNQ SEA DE ALGUITOL ;)

solis
28 de Noviembre del 2005
espero que te sirva ok. cuidate
#include <stdio.h>
#include <conio.h>

#define n_f 5
#define n_c 5


void captura (int n, char iden);
void mostrar (int n,char iden);
void sumar (int op1, int op2, int res);
void restar (int op1, int op2, int res);
void multiplicar (int op1, int op2, int res);
void ordenar_f (int n, int res);
void ordenar_c (int n, int res);
void menor (int n);
void mayor (int n);
void promedio (int n);

int matriz[n_f][n_c][10],nf,nc,i,j,m,z;

void main ()
{
char opc,opco,opcm;
do
{
clrscr();
printf ("nnn");
printf ("ttOperaciones con matricesnnn");
printf ("t*** M e n u ***nn");
printf ("t1. Capturarn");
printf ("t2. Mostrarn");
printf ("t3. Suma de Matricesn");
printf ("t4. Resta de Matricesn");
printf ("t5. Multiplicacion de Matricesn");
printf ("t6. Ordenar por filas y columnas a la matriz => n");
printf ("t7. Valor Menor, Mayor y Promedio => nn");
printf ("t8. Salirnn");
printf ("ttOpcion ");
opc=getch();
switch(opc)
{
case '1':clrscr();
printf ("nntCapturando las matrices A y Bnn");
printf ("t No. de Filas: ");
scanf("%d",&nf);
printf ("tNo. de Columnas: ");
scanf("%d",&nc);
printf("n");
captura (0,'A');
captura (1,'B');
break;
case '2':clrscr();
printf ("nntLas matrices capturadas son:nn");
mostrar(0,'A');
mostrar(1,'B');
getch();
break;
case '3':clrscr();
printf ("nntLa Suma de las matrices A y B es:nn");
sumar (0,1,2);
getch();
break;
case '4':clrscr();
printf ("nntLa Resta de las matrices A y B es:nn");
restar (0,1,3);
getch();
break;
case '5':clrscr();
printf ("nntLa Multiplicacion de las matrices A y B es:nn");
multiplicar (0,1,4);
getch();
break;
case '6':do
{
clrscr();
printf ("nntt* * Menu ordenar * *nnn");
printf ("t1. Matriz An");
printf ("t2. Matriz Bn");
printf ("t3. Volvernn");
printf ("tOpcion ");
opco=getch();
switch(opco)
{
case '1':clrscr();
printf ("ntLa matriz original capturado es:nn");
mostrar(0,'A');
printf ("nnn");
ordenar_f(0,7);
printf ("nnn");
ordenar_c(0,6);
getch();
break;
case '2':clrscr();
printf ("ntLa matriz original capturado es:nn");
mostrar(1,'B');
printf ("nnn");
ordenar_f(1,7);
printf ("nnn");
ordenar_c(1,6);
getch();
break;
}
}
while(opco!='3');
break;
case '7':do
{
clrscr();
printf ("nnt* * Menu Menor, Mayor, Promedio * *nnn");
printf ("t1. Matriz An");
printf ("t2. Matriz Bn");
printf ("t3. Volvernn");
printf ("tOpcion ");
opcm=getch();
switch(opcm)
{
case '1':clrscr();
menor(0);
mayor(0);
promedio(0);
getch();
break;
case '2':clrscr();
menor(1);
mayor(1);
promedio(1);
getch();
break;
}
}
while(opcm!='3');
break;
}
}
while(opc!='8');
}

void captura(int n, char iden)
{
int i,j;
printf ("ntMatriz %c:n ",iden);
printf ("n");
for (i=0;i<nf;i++)
for (j=0;j<nc;j++)
{
printf ("tElemento [%d][%d]: ",i+1,j+1);
scanf ("%d",&matriz[i][j][n]);
}
printf("nn");
}

void mostrar (int n, char iden)
{
int i,j;
printf ("tMatriz %c:n",iden);
printf ("n");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf (" %4dt", matriz[i][j][n]);
printf ("n");
}
}

void sumar (int op1, int op2, int res)
{
int i,j;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
matriz[i][j][res] += matriz[i][j][op1] + matriz[i][j][op2];
}
}
printf("ntResultado:nn");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf ("%4d",matriz[i][j][op1]);
if (i!=1)
printf (" ");
else
printf (" + ");
for (j=0;j<nc;j++)
printf("%4d",matriz[i][j][op2]);
if(i!=1)
printf (" ");
else
printf (" = ");
for (j=0;j<nc;j++)
printf ("%4d",matriz[i][j][res]);
printf ("n");
}
}

void restar (int op1, int op2, int res)
{
int i,j;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
matriz[i][j][res] += matriz[i][j][op1] - matriz[i][j][op2];
}
}
printf("nResultado:nn");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf ("%4d",matriz[i][j][op1]);
if (i!=1)
printf (" ");
else
printf (" - ");
for (j=0;j<nc;j++)
printf("%4d",matriz[i][j][op2]);
if(i!=1)
printf (" ");
else
printf (" = ");
for (j=0;j<nc;j++)
printf ("%4d",matriz[i][j][res]);
printf ("n");
}
}

void multiplicar (int op1, int op2, int res)
{
int i,j,k;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
for (k=0;k<nc;k++)
matriz[i][j][res] += matriz[i][k][op1] * matriz[k][j][op2];
}
}
printf("nResultado:nn");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf ("%4d",matriz[i][j][op1]);
if (i!=1)
printf (" ");
else
printf (" X ");
for (j=0;j<nc;j++)
printf("%4d",matriz[i][j][op2]);
if(i!=1)
printf (" ");
else
printf (" = ");
for (j=0;j<nc;j++)
printf ("%4d",matriz[i][j][res]);
printf ("n");
}
}

void ordenar_f(int n, int res)
{
int i,j,k,aux;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
matriz[i][j][res]=matriz[i][j][n];
}
for (j=0;j<nf;j++)
{
for (i=0;i<nc-1;i++)
{
for (k=i+1;k<nc;k++)
{
if (matriz[j][i][res] > matriz[j][k][res])
{
aux = matriz[j][i][res];
matriz[j][i][res] = matriz[j][k][res];
matriz[j][k][res] = aux;
}
}
}
}
printf ("ntOrdenado por filasnn");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf (" %4dt", matriz[i][j][res]);
printf ("n");
}
printf ("n");
}

void ordenar_c(int n, int res)
{
int i,j,k,aux;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
matriz[i][j][res]=matriz[i][j][n];
}
for (j=0;j<nc;j++)
{
for (i=0;i<nf-1;i++)
{
for (k=i+1;k<nf;k++)
{
if (matriz[i][j][res] > matriz[k][j][res])
{
aux = matriz[i][j][res];
matriz[i][j][res] = matriz[k][j][res];
matriz[k][j][res] = aux;
}
}
}
}
printf ("ntOrdenado por culumnasnn");
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
printf (" %4dt", matriz[i][j][res]);
printf ("n");
}
printf ("n");
}

void menor(int n)
{
int i,j,auxm=1,posf=0,posc=0;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
if (auxm > matriz[i][j][n])
{
auxm=matriz[i][j][n];
posf=i;
posc=j;
}
}
}
printf ("nntEl numero menor es: %d posicion [%d][%d] ",auxm,posf+1,posc+1);
}

void mayor(int n)
{
int i,j,auxM=0,posf=0,posc=0;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
if (auxM < matriz[i][j][n])
{
auxM=matriz[i][j][n];
posf=i;
posc=j;
}
}
}
printf ("nntEl numero mayor es: %d posicion [%d][%d] ",auxM,posf+1,posc+1);
}

void promedio(int n)
{
int i,j;
float acu=0,p;
for (i=0;i<nf;i++)
{
for (j=0;j<nc;j++)
{
acu+=matriz[i][j][n];
}
}
p = acu/(nf*nc);
printf ("nntEl promedio la matriz es: %4.2f",p);
}