SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: PpLopez en Martes 20 de Julio de 2004, 17:38
-
Hola, quiero resolver una integral en un programa de C++, pero pues la vdd ni siquiera sé como se resuelve normalmente, si alguien tiene alguna nocion o en algo me puede ayudar, de vdd q lo agradeceré....
(http://mx.geocities.com/pplopezoto/Imagen1.gif)
Gracias...
-
Hola.
Lo que tienes que hacer entonces es aprender a resolver integrales. Aqui tienes un link dedicado a matemáticas, donde figuran las integrales, entre otras cosas:
Las matemáticas de Mario (http://www.terra.es/personal/jftjft/Home.htm)
Un saludo.
Ruben3d
-
Uno de los metodos para el calculo numerico de la integral de una funcion f(x) en el intervalo a < b, es el llamado metodo de los rectangulos :
[a] : se contruye una funcion de retorna los valores de f(x).
: se divide el intervalo a-b en partes iguales, por ejemplo dx = (b-a)/10.
[c] : nuestra intencion es calcular la suma de las areas de los rectangulos
f(x)*dx, para obtener el valor del area total bajo la curva de f(x) entre a y b.
[d] : hacemos float sum = 0 y calculamos :
for(float x = a;x < b;x += dx)
sum += f(x);
sum *= dx; nos da el valor parcial del area buscada;
[c] : hacemos dx \= 10 y repetimos el proceso hasta que
[1] : llegamos a un valor predefinido de dx;
[2] : o la diferencia entre dos valores sucesivos de sum es menor que la aproximacion pedida.
Espero haber sido claro, es mas complicado escribir la explicacion que mandar el programa, pero en este foro no permiten hacerlo.
Por cualquier duda, estoy a tu disposicion.
-
Muchas gracias... he resuelto mi problema... :D
-
...
sum +=(f( b )-f( a ))/2; //Línea adicional
...
//justo antes de:
sum *= dx
Esto debería hacerlo un poco más preciso en la gran mayoría de los casos con sólo agregar una línea de código. :)
-
Estimado Amilius : tu hablas de un metodo distinto, el metodo de los trapecios, el cual se efectua mas eficientemente sumando todos los valores una vez, saldo el primero y el ultimo, que se suman divididos por 2.