Sunteți pe pagina 1din 7

APRENDIENDO LOS MÉTODOS NUMÉRICOS PROGRAMANDO APPLETS

Gladys Mansilla Gómez


Instituto de Informática
Universidad Austral de Chile
gmansilla@inf.uach.cl

RESUMEN

El presente trabajo pretende mostrar como los alumnos de Ingeniería Civil en Informática
enfrentan una asignatura de segundo ciclo como es el Software numérico y cuales son los
resultados obtenidos al incorporar el uso de Matlab y la programación de tareas en Java applets.

Los alumnos integran conceptos de Métodos Numéricos con los conocimientos adquiridos en el
primer ciclo, es así como utilizan para los trabajos prácticos conocimientos de Programación,
Álgebra de Matrices, Cálculo y ecuaciones diferenciales. En general deben programar los
diversos algoritmos tomando en cuenta el manejo eficiente de memoria , buenas practicas de
programación y despliegue gráfico

Palabras claves: Lenguajes, Java, Applets, Métodos numéricos

Áreas temáticas: Ciencias Básicas en Ingeniería, Innovaciones Metodológicas


INTRODUCCIÓN

El año 2000 se llevó a cabo un cambio curricular en la carrera de Ingeniería Civil en Informática,
pasando de régimen anual a semestral y modificando sustancialmente la malla curricular. Además
se comenzó a enseñar Java como primer lenguaje, esto unido a que la asignatura Software
numérico fue reducida en un semestre nos obligó a cambiar notoriamente la forma de dictar la
asignatura a partir de año 2003, es así como normalmente las tareas grupales que eran
desarrolladas en lenguajes como C, C++, Delphi o Visual Basic, comenzaron a ser programadas
en Java, se parcializaron las tareas grupales y se reforzaron con Matlab en laboratorio los
diversos métodos .

Como una forma de motivar a los alumnos se les instó a programar en Applets de Java con la
posibilidad de publicar las mejores tareas en el portal Siveduc, que es el portal educativo de la
Universidad Austral de Chile.

Es de todos sabido que los alumnos de informática enfrentan de manera especial el estudio y
aplicación del Métodos numéricos, ellos mas que usuarios de software empaquetado programan
los diversos algoritmos tomando en cuenta el manejo eficiente de memoria , buenas practicas de
programación y despliegue gráfico esto lleva a organizar la asignatura de modo de dar
importancia a como se enfrenta computacionalmente un método o algoritmo numérico es por ello
que la asignatura lleva por nombre “Software” Numérico.

La figura de la siguiente página muestra el área de materiales de la asignatura en el portal


Siveduc que incluye una de las mejores tareas desarrollada por los alumnos. Esta tarea es
ejecutable en el mismo entorno.

Figura 1: Asignatura en portal Siveduc con tarea incluida


DESARROLLO

La realización de sus propios programas permite a los alumnos comprender que los problemas
algebraicos se pueden resolver gráfica o numéricamente tan bien como con la manipulación
algebraica y además tener la satisfacción de verificar resultados anteriores.

Métodos

Los métodos programados en Java applets por los alumnos son:


Para sistemas lineales
Gauss, Gauss Jordan, Crout, Doolittle, Cholesky, Gauss-Seidel, Jacobi, Relajación.
Polinomio característico
Krylov, Soriau, Danilevsky (Bairstow para raices)
Para Valores y vectores propios:
Potencia y deflación, Jacobi clásico y cíclico, QR y Householder [1], [4]

Los demás métodos (integración, aproximación, interpolacion, ecs y sist no lineales , diferencias
finitas,) tienen libertad para resolverlos con Matlab, Excel, Maple, o lo que prefieran siempre que
entreguen la solución gráfica. [5]

Conceptos

Un Java applet es un applet escrito en el lenguaje de programación Java. Los applets de Java
pueden correr en un navegador web utilizando la Maquina virtual de Java (en inglés Java Virtual
Machine, JVM), o en el AppletViewer de Sun. [URL3]

Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el
navegador ejecuta en el espacio de la página.

Java es compatible con todos los sistemas (multiplataforma) porque basa su funcionamiento en
los Byte Codes, que no es más que una precompilación del código fuente de Java.

Estos Byte Codes no son el programa en Java propiamente dicho, sino un archivo que contiene
un código intermedio que puede manejar la Máquina Virtual de Java. Cada sistema operativo
dispone de una Maquina Virtual de Java que puede interpretar los Byte Codes y transformarlos a
sentencias ejecutables en el sistema [URL2]

Aplicaciones

Cuando los alumnos programan deben utilizar de la mejor manera:


• los contenedores, Panels y Windows
• los gestores de diseño
• los elementos de control (botones, menús, selectores, áreas de texto, líneas, rótulos, barras de
desplazamiento y listas) [6] y aplicarlos a diversas soluciones, a pesar de conocer el lenguaje
Java [2],[3] aquí deben dedicar mucho tiempo al ingreso y presentación de la información y eso
es algo nuevo para ellos.

Por ejemplo, con el concepto de norma y distancia pueden programar la representación gráfica
de elementos geométricos utilizando geometrías distintas de la Euclidiana .

La figura siguiente muestra la representación grafica de un círculo utilizando distintas métricas,


la Euclidiana (con norma 2 ), la del supremo (con norma infinito) la uno (con norma 1) y p (con
norma p, p>2), Dada la definición de circunsferencia centrada en el. origen y la definición de
norma , grafican círculos en las diversas geometrías.

Distancia d[ (x,y) , (0,0) ] ≤ R , || (x, y) || ≤ R


{
Norma inf = max x , y }≤ R Norma 2 = x 2 + y 2 ≤R
Norma 1 = x + y ≤ R (
Norma p = x + y
p
)
p 1/ p
≤R

Figura 2 Círculos en diversas geometrías

A medida que p aumenta pueden observar como un círculo se ve como un cuadrado.

Los alumnos además de programar los diversos métodos, programan la validación de las
condiciones de aplicación , convergencia y estabilidad de los métodos, por ejemplo condiciones
de simetría, definición positiva, dominancia diagonal, etc. Las figuras siguiente muestran la
validación de una condición de convergencia, además de la solución de un problema con valores
propios en el campo de los complejos.
Figura3: Valida condición de convergencia Figura4: Método de Danilevsky y Bairstow ,
valores complejos

Gran parte de los algoritmos que deben programar consideran el manejo de matrices, con ello el
alumno práctica el uso de arreglos y la reutilización de matrices como ahorro de memoria, a
continuación se presenta un extracto de código que verifica que la matriz ingresada es triangular
inferior

public boolean verSiEsTrianInferior(int n, double A[][])


{
for(int i = 0; i < n-2; i++)
{
for(int j = n-1; j > 0; j--)
{
if(i < j)
{
if(A[i][j] != 0) return false;
}
}
}
return true;
}
Figura5: condición de triangular inferior

Rendimiento

Se ha visto que el promedio de la nota de presentación ha aumentado en los últimos años, según
se muestra en la figura de la siguiente página.
Rendimiento

6 5,7 60
5,3 5,3
4,51 4,67 4,7 50
5

alumnos
40
4 nota
nota

30
3 al
20
2 10
1 0
2000(a) 2001(a) 2002(a) 2003(s) 2004(s) 2005(s)
Año

Figura 6: Rendimiento

En la gráfica anterior se ve que el promedio ha aumentando mas de medio punto, esto se debe al
uso de matlab en el laboratorio guiados por ayudantes quienes refuerzan los contenidos y al
hecho que las tareas se entregan gradualmente lo que permite que los alumnos hayan
programado completamente los métodos antes de las evoluciones teóricas.

Los alumnos inicialmente entregan la interfaz web con la parte uno de la tarea y paulatinamente
van entregando las partes faltantes a medida que se completa la materia, lo que consiste
básicamente en entregar un archivo html o el archivo class si así está definido.

También influye el hecho que los alumnos se ven mas motivados a entregar una buena tarea pues
las mejores son puestas en el portal educativo Siveduc, no solo el año que cursan si no también el
siguiente como ejemplo para sus compañeros.

Los contenidos de los cursos anuales y semestrales son aproximadamente los mismos, pero los
alumnos semestrales dedican mas tiempo de trabajo personal, ya sea en el desarrollo pequeñas
tareas como en la lectura de materiales digitalizados.

El promedio de las tareas grupales se mantiene relativamente constante en 5.7 mas o menos , por
lo que el aumento se debe a las evaluaciones teóricas las que son individuales, lo que indicaría
que los alumnos comprenden mejor la materia.

El apoyo de Ayudantes de cursos superiores que aprobaron la asignatura y ejercitan los


algoritmos en el laboratorio es fundamental para el proceso, estos semanalmente en sesiones de
de hora y media, entregan un material previamente acordado con el profesor, ejercitan en Matlab
los conceptos y solicitan al final de la sesión el envío inmediato al área de trabajos del portal de
una pequeña aplicación de lo allí tratado. Con esto se garantiza la asistencia y atención en
ayudantías.
CONCLUSIONES

El uso de software como Matlab y programación en Java Applets ayuda a establecer un puente
entre el desarrollo teórico de la asignatura y sus aplicaciones prácticas y además ayuda a reforzar
el proceso de aprendizaje de los conceptos involucrados.

Los Applets permiten realizar un desarrollo incremental de la tarea, lo que permite la asignación
de pequeñas porciones de materia, y la incorporación posterior de los nuevos métodos,
facilitando así su comprensión previo a las evaluaciones teóricas y contribuyendo al aumento del
promedio.

En resumen, esta experiencia fue satisfactoria, tanto para los estudiantes, ayudantes como para el
profesor a cargo.

BIBLIOGRAFÍA

[1] Castillo, Enrique.” Java TM : - un lenguaje de programación multiplataforma para Internet”.


2a. ed. Madrid : Paraninfo, 2000
[2] Cevallos Sierra Fco. Javier “Java 2 Curso de Programación”. 2000 Alfaomega
[3] Jamsa, Kris “Aprenda y practique Java. México” : Oxford University, 2000
[4] Lau Hang “A Numerical Library in Java for Scientists and Engineers”. ENGnetBASE
'Engineering Database Online
[5] Mathews, John H. Fink , Kurtis D. “Métodos numéricos con MATLAB” Madrid : Prentice-
Hall, . 3ª Ed. 1999
[6] Ramirez V Ibar. Tutorial “Programación en Java”. INFONOR’97

[URL1] Franco G.,Angel “Procedimientos Numéricos en Lenguaje Java”: Diciembre 2001


http://www.sc.ehu.es/sbweb/fisica/cursoJava/numerico/ejemplos.htm
[URL2] Desarrollo Web http://www.desarrolloweb.com/
[URL3] Wikipedia : http://es.wikipedia.org/wiki/Portada

S-ar putea să vă placă și