integrales

rogert
04 de Octubre del 2002
hola necesito un programa en c++ que me resuelva integrales por favor alguna ayuda se agradece

GreenGo
04 de Octubre del 2002
// posiblemente el metodo del rectangulo.
// La evaluaci贸n de una integrales lo mismo que calcular el area de la
// inferior de la curva y se puede estimar esta cantidad sumando las
// areal de peque帽os rectangulo de altura y=f(x)y de ancho (x(n)-x(n-1))
// ac谩 te muestro un ejemplo:

#include <iostream.h>

#define N 0.00001

void main(){

double a,b,x,x1=0,y;
double base,altura,integral=0;
cout << "Limite inferior: ";
cin >> a;
cout << "Limite superior: ";
cin >> b;
for(x=a;x<=b;x+=N){

y=x*x; //funci贸n sobre la que se calcula la integral

altura=y;
base=x-x1;
integral+=(base*altura);
x1=x;
}
cout << "la integral vale: ";
cout << integral;
}
// Por supuesto que a medida que N es mas peque帽o la respuesta se hace
// mas exacta. por ejemplo: para la funcion de este programa (y=x*x)
// la integral entre 0 y 1 vale 1/3. para distintos valores de N el
// el error ser谩:
// N = 0.01 integral = 0.32835 error = 0.0049
// N = 0.001 integral = 0.332834 error = 0.00049
// N = 0.0001 integral = 0.333383 error = 0.000049
// podes hacer vos mismo las comprobaciones para ver que pasa si
// cambian alguno de los par谩metros del programa.

GreenGo
04 de Octubre del 2002
Hola soy yo denuevo.
Descibri que el programa anterior tiene un sutil error que te puede llevar a grandes diferencias en el calculo. Aca te mando el programa modificado:

void main(){

double a,b,x,x1,y;
double base,altura,integral=0;
cout << "Limite inferior: ";
cin >> a;
cout << "Limite superior: ";
cin >> b;
x1=a;
for(x=a;x<=b;x+=N){

y=x*x; //funci贸n sobre la que se calcula la integral

altura=y;
base=x-x1;
integral+=(base*altura);
x1=x;
}
cout << "la integral vale: ";
cout << integral;
}

De todas formas este progama puede seguir mejorandose mucho.
suerte