Está en la página 1de 6

Universidad Nacional Autónoma de México

Colegio de Ciencias y Humanidades


Plantel Sur
Grupo ____ - Cibernética y Computación II

Nombres de los alumnos del equipo:


(en orden alfabético empezando por apellidos, sólo un representante del equipo entregará la tarea y la
marcará como entregada)
1. - Anguiano García Fernando
2. - Cañedo Rosete Francisco Aldahir
3. - Huerta Castillo Javier Tristán
4. * Motta Reyes Emmanuel
5. - Valles Arévalo Catherine Amanda

Actividad:
Desarrollar una clase en Java que permita calcular el valor aproximado de la integral de una Función
cualquiera por el método de Riemann. Utilizar la metodología de programación orientada a objetos respecto a
la abstracción y encapsulamiento.
Puede implementarse cualquiera de las estructuras cíclicas (for, while o do-while). Comenten cuál les
pareció más adecuada.
Realice las siguientes partes de la documentación (los diagramas pueden hacerse a mano e insertarse con una
fotografía tomada desde el celular).

Definición del problema:


[1] Definición
Desarrollar una clase en Java que permita calcular el valor aproximado de la integral de una función por el
método de Riemann.

[2] Objetivo general


Identificar la solución para resolver una integral de una función por el método de Riemann.

[3] Objetivos particulares


Utilizar la metodología de programación orientada a objetos respecto a la abstracción y encapsulamiento.

[4] Glosario
Función Math.sqrt
Función for while o do while
Implementar get y set
Implementar la solución al diseño de pruebas
[5] Alcance (ahora, futuro)
Calcular el valor aproximado en una Integral utilizando el método de Riemann realizando una clase de java
utilizando la codificación programación orientada a objetos respecto a la abstracción y encapsulamiento.

Análisis de la solución:
[6] Caso(s) de uso.

Calcular la función por


el método de Riemann
de una ecuación.

[7] Diagrama de estados.

Calcular la función por


el método de Riemann
de una ecuación.

[8] Prototipo en modo consola.

Cálculo de las ecuaciones de la integral definida:


Cuál es la forma de las ecuaciones por el método de Riemann.
Dame el valor de delta.
Dame el valor de delta de x.
Dame el valor de a, b y c.
El valor aproximado de la ecuación es: 0.6666666666666666
[9] Excepciones (qué problemas pudiera haber con los datos, valores negativos, igual a
cero, números escritos con letra, …).
Obtener un valor negativo o sin solución.

[10] Diagrama de estados.

Método de Riemann.
Valores de a, b y c:
Delta y Delta de x

Diseño de la solución:
[14] Arquitectura:
BlueJ. Para Windows descargar de http://www.bluej.org/download/files/BlueJ-windows-422.zip
Instalable para Mac, Windows y Ubuntu (Linux): https://bluej.org

Codificación:
[18] Codificar en Java la clase anterior.

public class EcuaciondeSegundoGrado {


private double a;
private double b;
private double c;

public EcuaciondeSegundoGrado (final double a, final double b, final double c) {


this.a = a;
this.b = b;
this.c = c;
}

public double[] calcularRaices() {


final double discriminante = b*b - 4*a*c;

if (discriminante < 0) {
return new double[] {};
} else if (discriminante == 0) {
final double x = -b / (2*a);
return new double[] { x };
} else {
final double x1 = (-b + Math.sqrt(discriminante)) / (2*a);
final double x2 = (-b - Math.sqrt(discriminante)) / (2*a);
return new double[] { x1, x2 };
}
}
public double getA() {
return a;
}

public void setA(final double a) {


if(a!=0)
this.a = a;
else
throw new IllegalArgumentException("El valor de a debe ser distinto a cero.");
}

public double getB() {


return b;
}

public void setB(final double b) {


this.b = b;
}

public double getC() {


return c;
}

public void setC(final double c) {


this.c = c;
}

public String toString() {


return "Ecuación: "
+ ( a==1 ? "" : a ) + "x²"
+ ( b==0 ? "" : (b<0?"":"+") + b + "x" )
+ ( c==0 ? "" : (c<0?"":"+") + c )
+ " = 0 \n"
+ "Raíces: x1 = " + this.calcularRaices()[0] + ", x2 = " + this.calcularRaices()[1];
}

MAiN

public static void mainIntegralDefinida(String[] args) {

// Definimos una función f(x) = x^2 - 1


Function<Double, Double> f = x -> x * x - 1;

// Creamos una instancia de la clase IntegralCalculator


RiemannIntegral calculator = new RiemannIntegral(0, 2, 1000000, f);

// Calculamos el valor aproximado de la integral utilizando el método de Riemann con n=100


double result = calculator.integrate();

// Imprimire el resultado
System.out.println("El valor aproximado de la integral es: " + result);
}

Ejecución de pruebas:
En Repliet se ejecuto y se calculo el valor, utilizando la misma codificación base de la ecuación por el método
de Riemann. Solo se utilizo un main diferente.
Bibliografía y referencias electrónicas:
Avila, J. y Bailón, J. (2022). Análisis y diseño en POO. Portal Académico del CCH, UNAM.
https://bit.ly/3JezMXY
Ávila, J. y Ruíz, C. E. (2022). Lenguaje de programación orientado a objetos con Java. Portal Académico
del CCH, UNAM. https://bit.ly/3j52T5g
Bailón, J. y Baltazar, J. M. (2021). Algoritmos y codificación. Portal Académico del CCH, UNAM.
https://bit.ly/3JftFm6
Ruíz, C. E. y Ávila, A. (2022). Metodología de resolución de problemas. Portal Académico del CCH,
UNAM. https://bit.ly/3JcXTWI

También podría gustarte