Está en la página 1de 14

TECNOLÓGICO NACIONAL

DE MÉXICO, CAMPUS TEPEACA

Ingeniería en Sistemas Computacionales.

Materia: Métodos numéricos.

Competencia: 4, práctica 1: C4-P1 Diferenciación e Integración


numérica
Tema seleccionado:
Integración numérica con el método de cuadratura de gauss

Presenta:
Huerta García Lus Guadalupe
Hernández Hernández Mauricio Isaac
Moreno Franco Diego
Hernández Jiménez Joshua
Rosales Ramírez Javier

Semestre y Grupo: 4° “A”

Docente: Ing. Josué Mancilla Cerezo

Fecha: 30/03/22
OBJETIVO

Implementar un programa que resuelva integrales de cuadraturas de gauss, utilizando el lenguaje de


programación de java para su resolución. De la misma manera se espera la utilización de diversas
herramientas que ofrece el entorno de desarrollo para así poder dar solución a las ecuaciones que
deseemos.

INTRODUCCIÓN

El presente reporte de práctica sobre la resolución de Integrales Definidas con el método de cuadratura de
Gauss, esta forma parte de la materia de métodos numéricos, cuyo enfoque se interesa por el uso de
softwares para la resolución de problemas complejos en el área de cálculo. El método de cuadratura de
Gauss es una clase de técnicas que aplica tal estrategia para obtener una aproximación más precisa de la
integral.
MARCO TEÓRICO

El método de la cuadratura de Gauss consiste en hacer el cálculo de una integral definida dentro de los
límites a y b donde b es el límite superior y a el límite inferior.

La cuadratura de Gauss aproxima el integral de una función en un intervalo [a,b] centrado en cero
mediante un cálculo numérico con menos operaciones y evaluaciones de la función.

𝒃
∫𝒂 𝒇(𝒙)𝒅𝒙 = ∑𝒏𝒊=𝟏 𝑾𝒊 𝒇(𝒙𝒊 ) (1)
𝒃−𝒂 𝒃+𝒂
𝒙𝒊 = ( ) 𝒛𝒊 + ( ) (2)
𝟐 𝟐

Donde:
n=Número de puntos de método cuadratura de gauss
a= Límite Inferior de la integral
b= Límite superior de la integral
𝒙𝒊 = Ɛ[𝒂, 𝒃]
𝑊𝑖 =Coeficiente para cuadratura de gauss de acuerdo con el número de puntos.
𝑍𝑖 = Abscisa para cuadratura de gauss de acuerdo con el número de punto (ecuación 2)

Los esquemas de integración basados en polinomios interpolantes están fundamentados en funciones


tabulares con espaciamiento constante cuyo error depende justo del tamaño de h, cuando el espacio es lo más
pequeño posible el error se minimiza. La cuadratura gaussiana permite integrar una función analítica sin utilizar
ningún paso y se parte del esquema de la ecuación (1).

Este esquema implica que se deben elegir 2n parámetros para resolver la integral representan un
polinomio de grado máximo 2n-1. Para el caso más sencillo con n=2, se hará una simplificación que se corregirá
más adelante y que consiste en formar como intervalo de integración [-1,1].
𝟏
∫−𝟏 𝒇(𝒙)𝒅𝒙 = ∑𝟐𝒊=𝟏 𝑾𝒊 𝒇(𝒙𝒊 )=𝑾𝟏 𝒇(𝒙𝟏 )+𝑾𝟐 𝒇(𝒙𝟐 ) (3)

La ecuación (3) corresponde a la integración de un polinomio de grado máximo 2n-1=3. Los posibles polinomios
de grado tres son;

Figura 1.

Sustituyendo en 3 para cada uno de los casos


1
Para f(x)=x^3 ∫−1 𝑥 3 dx=𝑊1 𝑥13 + 𝑊2 𝑥23 =0
1
Para f(x)=x^2 ∫−1 𝑥 2 dx=𝑊1 𝑥12 + 𝑊2 𝑥22 =2/3
1
Para f(x)=x ∫−1 𝑥 dx=𝑊1 𝑥1 + 𝑊2 𝑥2 =0
1
Para f(x)=1 ∫−1 𝑐 dx=𝑊1 + 𝑊2 =2
Los resultados conforman un sistema de 4 ecuaciones

𝑊1 𝑥13 + 𝑊2 𝑥23 =0 (4)


𝑊1 𝑥12 + 𝑊2 𝑥22 =⅔ (5)
𝑊1 𝑥1 + 𝑊2 𝑥2 =0 (6)
𝑊1 + 𝑊2 =2 (7)
Interpolación lineal
Figura 2.
Despejando x queda

Figura 3.
Para la diferencial dx/dt :
Figura 4,
El esquema general para la Cuadratura Gaussiana

Cuadratura gaussiana
¿Para qué sirve el método?
Para resolver integrales definidas.

¿Por qué solo resuelve integrales definidas?


Porque necesita estar en un intervalo b y a definidos para poder realizar las operaciones y obtener el resultado

DESARROLLO
Se creo una clase llamada función
Esta clase ayuda a pasar a funciones
matemáticas un string que halla sido in gresado
por el usuario para eso nos ayudamos de una
librería llamada Exp4j dicha librería fue
descargada externamente.
Esta clase cuenta con distintos métodos para las
distintas funciones matemáticas que pudieron
existir.
Usamos una variable expresión de tipo
ExpressionBuilerder para evaluar las funciones
dentro del proceso de ejecución

NOTA:
Como desventaja la librería solo reconoce
funciones de F(x).

Imagen 1.

Imagen 2.
Declaramos 2 variables globales una de tipo doublé
para mandar el resultado al formulario que
posteriormente se creara, Una de tipo String que
almacenará el mensaje que se estará enviando
dentro del for de las iteraciones que realiza.
Creamos un método evaluar que recibe una variable
de tipo función, dos variables de tipo doublé que son
los limites b(superior) y a(inferior ) y una variable
de tipo entero que será en numero de iteraciones que
desee el usuario.

NOTA:

Por el momento solo acepta al máximo de 5


iteraciones, Aun que la cuadratura de Gauss es muy
extensa.

En el método evaluar se usará un array List para ir


instando los valores de las variables w y x y también
una variable de tipo doublé inicializadas en 0 la cual
almacenara el resultado final. Desde la línea 31 Imagen 3.
hasta la 45 se agregaron los valores de x conforme
la cuadratura gaussiana. De la línea 46 hasta la línea 60 se agregaron los
valores respectivos de w de igual manera con la
cuadratura gaussiana .

Dentro del for se van calculando los valores con las


formulas vistas en el marco teórico (Fig 30).
En el mismo for se ira almacenando los mensajes de
los valores de w y x.

NOTA:
Afuera del for se ara la operación de (b-a/2).
Usaremos nuestra variable global R y le asignamos
el valor de la variable resultado.
Como nuestro método retorna un valor de tipo
double, retornaremos resultados.
Hasta aquí termina nuestra clase cuadratura.

Imagen 4.
Usamos un JtextAria para mostrar lo que
contenga la variable global mensaje de la
clase cuadratura, dicha variable tendrá los
valores de w, x y n que serán de acuerdo a
la interacción de que se haya ejecutado.

El formulario también cuenta con 16


botones 2 de tipo publico y 14 de tipo
privad.

Imagen 5.
Creamos una clase llamada formulario
para ir pidiendo los datos de la función
desde dicho formulario.
Nuestro formulario cuenta con 4 jtexfield para Imagen 6.
ingresar
1. La función
2. El límite inferior
3. Limite superior
4. El numero de iteraciones

También se crearon 2 JLabel, que serán para


dos notas:
1. Que solo acepta funciones f(x)
Y recomienda cambiar las variables de la
función f de dicha variable por f(x).
2. La nota 2 nos dice como ingresar
correctamente las funciones de seno,
coseno, tangente y el numero e y como
multiplica x por cualquier numero
Imagen 7.

En nuestro contructor lo usaremos para Imagen 8.


declarar los componentes asi como las
caracteristicas del formulario.
De la imagen 6 a la imagen 8 se asigna los
mensajes de los componentes declarados
anteriormente asi como sus dimensiones al
igual que si tendran un color o no.

Agregamos los componentes co la linea de


codigo add(“componente”); y si van a realizar
una accion con la linea
“componente”.addActionListener(this);
La cual es para que escuche una acción.

Solo utilizaremos 2 botones que aran algo:


1. Calcular.
2. Limpiar.
Imagen 9.

En la imagen 9 creamos nuestro metodo que


realizara la acción deseada:
1. Calcular: comparara que no falte ningun Dichp formulario no se puede modificar sus
espacio que completar si llega a faltar por dimensiones por el usuario y aparecera por
lo menos 1 mandara un mensaje que dira defecto en el centro de la panatalla además
“Faltan datos” esto se hace con la linea tendra un color rojo.
144 del metodo formulario.
Posterioemente obtendra la funcion, limites
a,b y el numero de iteraciones. Convertira el
String a función enviandolo a la clase funcion
y la asignara a una variable llamadsa
funcion2. Despues enviara los valores al
método evaluar dentro de la clase cuadratura.
Posteriormente mostrara los valores en sus
espacios correspomndientes asignados
anteriormente.

2. Limpiar: Asignara el mensaje de “” a cada


JTextField, JLabel y JTextArea.

En la imagen 9 tambien se muestran las


dimensiones y caracteristicas asignadas al
formulario(Ventana) se crea el formulario
apoyandones de un objeto de tipo formulario.
RESULTADOS

Ejecución del programa Figura 1R.

Nos muestra la pantalla principal la cual nos muestra la interfaz del programa agregaremos una función exp(-
(x^2)) con limites 1 y 1.5 y 5iteraciones (Figura 2R).
Figura 2R.
Figura 3R.
La figura anterior muestra los resultados al dar clic en el botón calcular nos muestra el resultado, valores de
a, b, n, la función ingresada y el mensaje de los valores de w y x respectos a el numero de iteraciones.
Figura 4R.
En la Figura 4R nos muestra el resultado después de pulsar el botón limpiar.

CONCLUSIONES
En conclusión esta práctica nos ayudó a resolver Integrales de una manera más fácil que la analítica solo nos
tardamos algo en programar pero de ahí ya se resuelven las integrales con el programa claro que no es
precisamente exacto ya que entre menos iteraciones tenga es menos preciso lo recomendable seria agregar la
cuadratura de gauss completa para tener resultados más precisos.
También aprendimos a convertir un String a función para evaluarla y poder hacer operaciones con dicha
función con la librería exp4j la cual es de java.

REFERENCIAS BIBLIOGRÁFICAS
1.Lorenzo, R., & Manuel, J. (2017). Un enfoque para la integración de funciones quasi-singulares basado en
modificaciones de la fórmula de cuadratura de Gauss-Chebyshev (Doctoral dissertation, Matemática aplicada
I).
2.Mena Gutierrez, D. J. (2016). Aplicación de la cuadratura de Gauss-Chebyshev en la solución de algunos
problemas de integración numérica (Doctoral dissertation, Universidad Nacional Autónoma de Nicaragua).
3. Sanz-Serna, J. M. (2018). La cuadratura gaussiana según Gauss.
4. Poveda Ramos, G. (1970). Algunos integrales definidos y las ecuaciones en diferencias finitas que
satisfacen. Revista Colombiana de Matemáticas.

También podría gustarte