Professional Documents
Culture Documents
LABORATORIO VIRTUAL EN EJS PARA EL APRENDIZAJE DE MTODOS NUMRICOS DE INTEGRACIN Y CLCULO DE RACES
URQUA MORALEDA
(Octubre 2012)
LABORATORIO VIRTUAL EN EJS PARA EL APRENDIZAJE DE MTODOS NUMRICOS DE INTEGRACIN Y CLCULO DE RACES
RESUMEN
La finalidad del presente proyecto es crear un entorno virtual online en el que los alumnos puedan adquirir los conocimientos necesarios para comprender paso a paso cada uno de los mtodos numricos expuestos. Se podrn estudiar varios mtodos de resolucin de races y varios mtodos de integracin. Entre los mtodos de resolucin de races tenemos el mtodo de la biseccin, el mtodo de Newton, el mtodo del punto fijo y el mtodo de Gauss. Por otro lado en cuanto a los mtodos de integracin tenemos el mtodo de Euler, el mtodo de Euler modificado y el mtodo de los trapecios. Para el desarrollo de las simulaciones de cada uno de los mtodos se ha empleado la herramienta EJS (Easy Java Simulations). Una vez creadas las simulaciones se fusionan en un entorno web intuitivo y atractivo. Se pretende que la compresin de los trminos y caractersticas de los mtodos sea lo ms sencilla posible de cara al alumno. LISTA DE PALABRAS CLAVE
EJS, mtodo de Newton, mtodo de Gauss, mtodo de Euler, mtodo de la biseccin, mtodo del punto fijo, mtodo de los trapecios, entorno virtual, mtodos numricos.
ABSTRACT
The purpose of this project is to create an online virtual laboratory in which students can acquire the knowledge necessary to understand each step of the exposed numerical methods. Several root-finding and integration algorithms are explained in the virtual laboratory. Among the root-finding methods is the bisection method, Newton's method, the fixed-point iteration method and the Gausss method. On the other hand in terms of integration methods have the Euler method, the modified Euler method and the trapezoids methos. Easy Java Simulations (Ejs) has been used for developing the virtual laboratories of the numerical methods. The laboratories have been structured into an attractive and intuitive web environment. In order to facilitate the student learning, the content of the laboratories has been kept as simple as possible. . KEY WORDS
EJS, Newton method, Gauss, Euler'smethod, the bisection method, fixed point method, method of trapezoids, virtual environment, numerical methods.
NDICE
NDICE ........................................................................................................................ 3 NDICE DE FIGURAS ..................................................................................................... 7 NDICE DE TABLAS ...................................................................................................... 9 1. INTRODUCCIN, OBJETIVOS Y ESTRUCTURA ........................................................ 11 1.1. INTRODUCCIN ...................................................................................... 11 1.2. OBJETIVOS ............................................................................................. 12 1.3. ESTRUCTURA ......................................................................................... 16 2. MTODO DE LA BISECCIN ................................................................................... 21 2.1. INTRODUCCIN ...................................................................................... 21 2.2. DESCRIPCIN ......................................................................................... 21 2.3. OBJETIVO DOCENTE............................................................................... 26 2.4. FUNCIONALIDAD DEL LABORATORIO VIRTUAL ....................................... 26 2.5. DESARROLLO DEL LABORATORIO VIRTUAL ............................................ 29 2.6. ACTIVIDADES PEDAGGICAS ................................................................. 35 2.7. CONCLUSIONES ...................................................................................... 35 3. MTODO DE NEWTON-RAPHSON .......................................................................... 37 3.1. INTRODUCCIN ...................................................................................... 37 3.2. DESCRIPCIN DEL MTODO .................................................................... 37 3.3. OBJETIVO DOCENTE............................................................................... 42 3.4. FUNCIONALIDAD DEL LABORATORIO VIRTUAL ....................................... 43
3.5. DESARROLLO DEL LABORATORIO VIRTUAL ........................................... 46 3.6. ACTIVIDADES PEDAGGICAS ................................................................. 51 3.7. CONCLUSIONES ...................................................................................... 52 4. MTODO DEL PUNTO FIJO..................................................................................... 53 4.1. INTRODUCCIN ...................................................................................... 53 4.2. DESCRIPCIN DEL MTODO .................................................................... 53 4.3. OBJETIVO DOCENTE............................................................................... 56 4.4. FUNCIONALIDAD DEL LABORATORIO VIRTUAL ....................................... 57 4.5. DESARROLLO DEL LABORATORIO VIRTUAL ............................................ 59 4.6. ACTIVIDADES PEDAGGICAS ................................................................. 62 4.7. CONCLUSIONES ...................................................................................... 63 5. MTODO DE GAUSS .............................................................................................. 65 5.1. INTRODUCCIN ...................................................................................... 65 5.2. DESCRIPCIN DEL MTODO .................................................................... 65 5.3. OBJETIVO DOCENTE............................................................................... 70 5.4. FUNCIONALIDAD DEL LABORATORIO VIRTUAL ....................................... 70 5.5. DESARROLLO DEL LABORATORIO VIRTUAL ............................................ 74 5.6. ACTIVIDADES PEDAGGICAS ................................................................. 79 5.7. CONCLUSIONES ...................................................................................... 81 6. MTODO DE EULER Y EULER MODIFICADO .......................................................... 83 6.1. INTRODUCCIN ...................................................................................... 83 6.2. DESCRIPCIN DEL MTODO .................................................................... 84 4
6.2.1. DESCRIPCIN DEL MTODO DE EULER ............................................ 84 6.2.1. DESCRIPCIN DEL MTODO DE EULER MODIFICADO ....................... 86 6.3. OBJETIVO DOCENTE............................................................................... 91 6.4. FUNCIONALIDAD DEL LABORATORIO VIRTUAL ....................................... 91 6.5. DESARROLLO DEL LABORATORIO VIRTUAL ............................................ 94 6.6. ACTIVIDADES PEDAGGICAS ................................................................. 96 6.7. CONCLUSIONES ...................................................................................... 98 7. MTODO DE LOS TRAPECIOS .............................................................................. 101 7.1. INTRODUCCIN .................................................................................... 101 7.2. DESCRIPCIN DEL MTODO .................................................................. 102 7.3. OBJETIVO DOCENTE............................................................................. 106 7.4. FUNCIONALIDAD DEL LABORATORIO VIRTUAL.................................... 106 7.5. DESARROLLO DEL LABORATORIO VIRTUAL ......................................... 109 7.6. ACTIVIDADES PEDAGGICAS ............................................................... 112 7.7. CONCLUSIONES .................................................................................... 113 8. ESTRUCTURA WEB ............................................................................................. 115 9. CONCLUSIONES Y TRABAJOS FUTUROS ............................................................... 121 9.1. CONCLUSIONES .................................................................................... 121 9.2. TRABAJOS FUTUROS ............................................................................ 122 BIBLIOGRAFA ........................................................................................................ 123
NDICE DE FIGURAS
Figura 1. Estructura CD-Rom ............................................................................. 18 Figura 2. Grfica ejemplo mtodo de la biseccin ............................................. 25 Figura 3. Laboratorio virtual mtodo de la biseccin ......................................... 27 Figura 4. Aviso error al acotar el intervalo mtodo de la biseccin ................... 28 Figura 5. Ejemplo paso a paso mtodo de la biseccin ...................................... 29 Figura 6. Modelo general del mtodo de Newton-Raphson ............................... 38 Figura 7. Grfica de la funcin f(x) = x2-4 en el intervalo [-3,3] ....................... 39 Figura 8. Aproximaciones races mtodo de Newton - Raphson ....................... 40 Figura 9. Grfica ejemplo 1 mtodo Newton Raphson ................................... 41 Figura 10. Grfica ejemplo 2 mtodo Newton Raphson ................................. 42 Figura 11.Laboratorio virtual mtodo Newton ................................................... 44 Figura 12. Mensaje paso a paso mtodo Newton ............................................... 45 Figura 13. Pasos de clculos del mtodo de Newton .......................................... 46 Figura 14. Ejemplo grfico alternativo mtodo del punto fijo ........................... 56 Figura 15. Laboratorio virtual mtodo del punto fijo ......................................... 57 Figura 16. Pasos de clculos mtodo del punto fijo ........................................... 58 Figura 17. Laboratorio virtual mtodo de Gauss ................................................ 71 Figura 18. Pasos de clculos mtodo de Gauss .................................................. 72 Figura 19. Clculos finales mtodo de Gauss ..................................................... 73 Figura 20. Obtencin resultado mtodo de Gauss .............................................. 74 Figura 21. Grfica mtodo de Euler ................................................................... 84 Figura 22. Grfica aproximacin del mtodo de Euler ....................................... 87 Figura 23. Laboratorio virtual mtodo de Euler y Euler mejorado .................... 92 Figura 24. Pasos mtodo de Euler ...................................................................... 93 7
Figura 25. Pasos mtodo de Euler mejorado ...................................................... 93 Figura 26. Grfica mtodo de los trapecios [wikipedia, 2012] ......................... 102 Figura 27. Laboratorio virtual mtodo de los trapecios .................................... 107 Figura 28. Clculos mtodo de los trapecios .................................................... 108 Figura 29. Clculos finales mtodo de los trapecios ........................................ 108 Figura 30. Flash estructura web ........................................................................ 115 Figura 31. Men estructura web ....................................................................... 116 Figura 32. EJS estructura web .......................................................................... 116 Figura 33. Que vas a aprender. Estructura web ................................................ 117 Figura 34. Noticias estructura web ................................................................... 118
NDICE DE TABLAS
Tabla 1. Valores ejemplo 1 mtodo Newton.41 Tabla 2. Valores ejemplo 2 mtodo de Newton42 Tabla 3. Valores ejemplo 1 mtodo del punto fijo54 Tabla 4. Valores ejemplo 1 mtodo de Euler89 Tabla 5. Valores ejemplo 2 mtodo de Euler90
10
1
INTRODUCCIN, OBJETIVOS Y ESTRUCTURA
1.1. INTRODUCCIN
La aparicin y el perfeccionamiento incesante de los ordenadores de alta velocidad han conducido a una transformacin autnticamente revolucionara de la Ciencia en general y de las Matemticas, en particular. Ha cambiado la tecnologa de las investigaciones cientficas, han aumentado inmensamente las posibilidades de los estudios tericos, del pronstico de proceso complejos y de la proyeccin de las construcciones de ingeniera. nicamente gracias a la aplicacin de la simulacin matemtica y de nuevos mtodos numricos destinados para los ordenadores se hizo posible resolver grandes problemas cientfico tcnicos. Hay muchos tipos de mtodos numricos, unos ms precisos que otros, otros ms complejos y ms difciles de comprender pero todos ellos comparten una finalidad comn y es que son herramientas poderosas para la resolucin de problemas. Bajo un estudio detallado se pretende dar a conocer algunos de ellos, aquellos que se han considerado bsicos para comprender por parte de un alumno que desee profundizar en el mundo de la simulacin matemtica. Los mtodos numricos pueden manejar sistemas complejos y comunes en la Ingeniera.
11
La idea del laboratorio virtual ha surgido como resultado de considerar muy til crear un entorno virtual para la enseanza docente, que permita al usuario interactuar, mediante una simulacin interactiva, con los mtodos numricos bsicos de Ingeniera. Supone un aporte extra al aprendizaje docente de los alumnos de primeros cursos de Ingeniera, permitiendo a los mismos realizar un seguimiento del desarrollo de ejercicios basados en los mtodos descritos. El punto fuerte de los laboratorios virtuales es que permiten al alumno experimentar por s mismo con un modelo especialmente diseado para ilustrar los conceptos que se pretende ensear al alumno. Esta posibilidad de experimentar por s mismo resulta motivador para el alumno, incentivndole por tanto en el estudio de la materia. Teniendo en cuenta lo que se pretende desarrollar el siguiente paso es buscar un entorno de desarrollo que pueda aportarnos las caractersticas necesarias para desarrollar la idea del laboratorio virtual. Easy Java Simulations (simulaciones sencillas en Java), tambin conocido como EJS, es una herramienta de autor creada en Java que ayuda a no programadores a crear simulaciones interactivas en Java, habitualmente con fines de enseanza o aprendizaje. EJS [Esquembre, 2011] es un programa que le ayuda a crear otros programas, en concreto simulaciones cientficas en general con fines pedaggicos.
1.2. OBJETIVOS
Los objetivos que se pretenden con el laboratorio virtual de mtodos numricos es que aquellos alumnos de primeros cursos de Ingeniera que deseen
12
profundizar en el desarrollo de problemas basados en mtodos numricos, dispongan de una herramienta de fcil manejo, intuitiva y a su alcance que les permita desarrollar simulaciones y clculos paso a paso de estos mtodos. Se ha decidido desarrollar los mtodos numricos que se consideran ms bsicos y se han estructurado en dos grupos. Por un lado los mtodos de resolucin de races y por otro lado los de integracin. Dentro del grupo de los mtodos de resolucin de races los escogidos han sido el mtodo de la biseccin, el mtodo de Newton, el mtodo del punto fijo y el mtodo de Gauss. El mtodo de la biseccin ha sido seleccionado porque es un mtodo muy sencillo de aprender, de poner en prctica y de poder simular sobre una grfica. Ayuda al alumno a comprender la idea base de cmo se debe obtener la raz de una ecuacin. Para aprender otros mtodos numricos ms complejos lo mejor es empezar con un mtodo bsico y sencillo de comprender, es por ello que se ha puesto como el primer mtodo del laboratorio y como el primer mtodo que debe aprender un alumno. Con este mtodo se espera que el alumno que lo estudie aprenda un algoritmo de bsqueda de races que trabaja dividiendo el intervalo de partida a la mitad y seleccionando el subintervalo que contiene la raz buscada. A continuacin se ha decidido introducir el mtodo de Newton. El mtodo de Newton es un buen ejemplo para compararlo con el mtodo de la biseccin, haciendo entender a un alumno que existen otros mtodos para resolver races, con sus pros y contras respecto al anterior. Este mtodo ejemplifica claramente que se pueden dar casos en los que no se converja en una raz, lo que se considera bsico a la hora de que un alumno se ponga a afrontar este tipo de problemas. Tambin se 13
espera de este mtodo que se aprenda a encontrar el mximo y mnimo de una funcin, encontrando los ceros de su primera derivada. Dentro de este grupo de mtodos tambin se encuentra el mtodo del punto fijo. Dicho mtodo se ha introducido por considerarse un mtodo sencillo y a la vez potente para resolver races. Es importante que un alumno que se vaya a enfrentar a la resolucin de un problema, que requiera la aplicacin de un mtodo numrico, disponga del conocimiento de varios de ellos y sepa cul es mejor emplear en cada caso. De este mtodo se espera que un alumno acabe sabiendo cmo obtener una raz, o solucin, de una ecuacin de la forma ( ) = 0, la misma que debe ser
transformada en una ecuacin equivalente de punto fijo ( ) = 0, de tal forma que al reordenar la ecuacin ( ) = 0, se ubique de tal forma que se defina = ( ).
El mtodo de Gauss tambin ha sido incluido en este grupo. Se ha considerado importante que los alumnos dispongan tambin de un mtodo para la resolucin de sistemas de ecuaciones. El mtodo de Gauss es un mtodo sencillo y fcil de comprender que sirve para resolver sistemas de ecuaciones de diferentes tamaos y que adems refleja los diferentes resultados que puedes obtener al resolver un sistema ecuacional. Se espera incluyendo este mtodo en el laboratorio virtual que un alumno disponga de un mecanismo sencillo para enfrentarse a la resolucin de sistemas de ecuaciones. En el otro grupo de mtodos numricos se han introducido el mtodo de Euler, el mtodo de Euler mejorado y el mtodo de los trapecios. Estos mtodos se utilizan como mtodos de integracin. La finalidad de introducir el mtodo de Euler y el de Euler mejorado es que se puedan comparar ambos mtodos entre s. El alumno comprender cmo se 14
realizan los clculos mediante el mtodo de Euler y a su vez vea cmo ha evolucionado dicho mtodo, mtodo de Euler mejorado, de tal forma que se llegue tambin a una solucin ptima. El mtodo de Euler es el mtodo ms simple de integracin y se considera bsico para comenzar a conocer mtodos que resuelvan problemas de este tipo. Se espera que un alumno que trabaje con el mtodo de Euler en el laboratorio virtual aprenda a realizar un procedimiento de integracin numrica para resolver ecuaciones diferenciales ordinarias a partir de un valor inicial dado. Dentro del grupo de mtodos de integracin se ha decidido incluir tambin el mtodo de los trapecios. El mtodo de los trapecios es un mtodo para calcular aproximadamente el valor de la integral definida. Junto con el mtodo de Euler, el mtodo de los trapecios es tambin un mtodo simple y fcil de comprender, bsico en el aprendizaje de mtodos numricos de integracin. Se espera que el alumno que estudie dicho mtodo a travs del laboratorio virtual obtenga el conocimiento necesario para poder calcular aproximadamente el valor de la integral definida. Dentro de cada mtodo numrico tiene que haber una introduccin del mtodo que se pretende explicar as como una descripcin detallada del mismo. Se debe contar con un buen ejemplo ilustrativo que sirva al alumno a entender con todo lujo de detalles la finalidad del mtodo, un entorno de simulacin visual que ayude a comprender el mtodo y una serie de actividades que abarquen todos los tipos de problemas que se pudiera encontrar un alumno en los primeros cursos de Ingeniera. Finalmente una serie de conclusiones y comparaciones con otros mtodos que clarifiquen definitivamente las caractersticas del mismo.
15
Una vez un alumno haya trabajado de forma precisa con el laboratorio virtual debe ser capaz de aplicar los mtodos numricos de manera eficiente en la solucin de problemas que involucran modelos matemticos, procurando que la solucin obtenida mediante la aplicacin de los diferentes algoritmos sea ptima.
1.3. ESTRUCTURA
El proyecto est estructurado en ocho captulos, el primero de ellos es una introduccin en la que se precisa el desarrollo del proyecto, lo que se ha obtenido y lo que se pretenda. Se detalla el punto de partida de los objetivos que se desean alcanzar. Se especifican los objetivos del laboratorio virtual. Se indica la audiencia a la que va dirigido, las caractersticas que posee y la idea del por qu se ha desarrollado un laboratorio con los mtodos numricos que contiene. A continuacin se ha considerado dedicar un captulo de la memoria a cada uno de los mtodos numricos que se abordan en el laboratorio virtual. Cada captulo que trata un mtodo numrico est estructurado de la siguiente forma: Una primera introduccin para comentar por encima la idea fundamental del mtodo numrico en cuestin. En esta seccin se precisa adems la finalidad del mtodo y para qu sirve. A continuacin se describe el mtodo con todo lujo de detalle, cmo funciona y cmo se realizan los clculos del mismo. Se presenta la frmula matemtica del mtodo as como el proceso a travs del cul se ha llegado a la
16
misma. En esta misma seccin tambin se presentan ejercicios resueltos que ayudan a comprender de mejor forma el mtodo numrico. Se crea una seccin denominada objetivo docente, en la que se describe lo que se pretende conseguir con el mtodo numrico, qu es lo que va aprender el alumno y para qu le puede servir el emplear el laboratorio virtual en el aprendizaje del mismo. Posteriormente se muestra la funcionalidad del laboratorio virtual, en esta seccin se describe cmo funciona el mtodo numrico en el laboratorio virtual. Se describen las partes de las que est formado y las caractersticas que un alumno debe conocer para poder trabajar con l. Se adjuntan imgenes del laboratorio y se detalla la funcionalidad de cada uno de los botones y acciones que se pueden realizar con l. A continuacin se dan todo lujo de detalles sobre el desarrollo del laboratorio virtual, esta es la seccin dedicada a exponer el cmo ha sido desarrollado el laboratorio virtual con la herramienta EJS, los mtodos Java desarrollados para que funcione, cmo se ha implementado la parte grfica del mismo y la relacin entre el cdigo y los componentes visuales. Antes de concluir cada mtodo se presenta una seccin de actividades pedaggicas. Es importante que un alumno que trabaja con mtodos numricos realice una serie de ejercicios que le ayuden a comprender y entender mejor el mtodo. Se dedica una seccin a exponer una serie de actividades que el alumno puede realizar con el laboratorio virtual.
17
Por ltimo se describen las conclusiones que se han obtenido con el desarrollo del mtodo numrico en el laboratorio virtual. Esta seccin sirve para presentar con detalle si se han alcanzado los objetivos para los que se creaba un laboratorio virtual para el mtodo numrico en cuestin. A continuacin, una vez abordado un captulo para cada uno de los mtodos numricos, se presenta un captulo dedicado a explicar detalladamente las partes que contiene el entorno web que se ha creado para introducir todos y cada uno de los mtodos numricos. Se detallan las diferentes secciones de las que est compuesto el entorno web del laboratorio virtual, explicando adems la seccin de noticias y la seccin de contacto que completan, junto con los mtodos numricos, el laboratorio virtual en su conjunto. Finalmente se presenta un captulo dedicado a la conclusin obtenida con el desarrollo del proyecto y un apartado sobre los trabajos futuros que se pretenden o son posibles desarrollar a posteriori. A la memoria del proyecto le acompaa un CDRom que se encuentra estructurado tal y como muestra la Figura 1:
18
En la carpeta Memoria se alberga el presente documento con informacin detallada del estudio y desarrollo del proyecto. En la carpeta Cdigo EJS se encuentra el cdigo Java obtenido en el desarrollo de cada uno de los mtodos numricos mediante la herramienta EJS. En la carpeta Aplicacin EJS se encuentra la herramienta que se ha utilizado para el desarrollo del laboratorio virtual En la carpeta Entorno Web se encuentra la pgina web con el laboratorio virtual como tal, para su prueba y visualizacin en un navegador web.
19
20
2
MTODO DE LA BISECCIN
2.1. INTRODUCCIN
Este mtodo tiene como base o motivacin el teorema del valor intermedio [Negrn, n.d]. En particular si la funcin que ( ) ( ) , entonces definimos c = es continua y y son dados tales . Si (c) = 0, entonces terminamos.
De lo contrario reemplazamos
2.2. DESCRIPCIN
La finalidad del mtodo de la biseccin es encontrar races a una funcin dada dentro de un intervalo [ , ]. Comenzaremos definiendo en primer lugar los teoremas en los que est basado el mtodo de la Biseccin. Teorema de Bolzano: Sea tal que ( ) ( ) una funcin continua en [ , ] y en . Entonces,
existe perteneciente (a, b) tal que (c) = 0. El Teorema de Bolzano afirma que si una funcin es continua en un intervalo cerrado y acotado y en los extremos del mismo sta toma valores con signos opuestos, entonces existe al menos una raz de la funcin en el interior del intervalo.
21
Demostracin: Supongamos que (a) < 0 y (b) > 0. Sea T el conjunto formado por todos los valores perteneciente [a, b] para los que ( ) < 0. El conjunto T est acotado
superiormente por b y, adems, no es vaco ya que a pertenece a T. Por ello el conjunto T tiene un extremo superior c. Se cumple que (c) = 0. Vemoslo: Si (c) > 0, entonces por la propiedad de la conservacin del signo de las funciones continuas existira un intervalo en el que la funcin sera tambin positiva. En este caso existiran valores menores que c que serviran de cota superior de T y por ello c no sera el extremo superior de T como hemos supuesto. Si (c) < 0, entonces existira un intervalo en el que la funcin sera negativa y por tanto existiran valores de a la derecha de c para los que la funcin sera
negativa y por tanto c no sera el extremo superior de T. Por tanto (c) tiene que tomar el valor cero: (c) = 0. Si ( ) > 0 y ( ) < 0 el razonamiento es similar. Teorema del valor intermedio: Sea tal que ( ) < ( ) entonces, para cualquier k tal que continua en [ , ], y ( ) < k < ( ) existe
perteneciente ( , ) tal que (x) = k. Bsicamente el Teorema del Valor Intermedio nos dice que toda funcin continua en un intervalo cerrado, una vez que alcanz ciertos valores en los extremos del intervalo, entonces debe alcanzar todos los valores intermedios.
22
Demostracin: Para la demostracin aplicamos el teorema de Bolzano en la funcin ( ) = ( ) - k, la cual es continua, por serlo ( ), ( ) < 0 y ( ) > 0. El teorema nos permite armar que existir c perteneciente ( , consecuencia (c) = k. El mtodo de la biseccin se basa en estos teoremas y se emplea para aproximar ceros de funciones. Supngase que queremos encontrar los ceros de una funcin ( ) continua. Dados dos puntos y tal que ( ) y ( ) tengan signos distintos, sabemos por el ) tal que (c) = 0 y en
Teorema de Bolzano que ( ) debe tener, al menos, una raz en el intervalo [ , ]. El mtodo de biseccin divide el intervalo en dos, usando un tercer punto c= . En este momento, existen dos posibilidades: ( ) y (c), (c) y ( )
tienen distinto signo. El mtodo de biseccin se aplica al subintervalo donde el cambio de signo ocurre. Este proceso puede aplicarse tantas veces como sea necesario para alcanzar la precisin que se requiera. Anlisis de Error: Como ( ) ( ) 0, sabemos que existe un nmero tal que ( )=0.
(2.1)
23
Esto es as ya que el largo del intervalo se divide a la mitad en cada iteracin del algoritmo. Nuevamente usando induccin matemtica obtenemos que:
bn+1 an+1 =
(b a),
[an, cn] [cn, bn] tenemos que:
(2.2)
|cn -
cn an = bn cn =
(bn an)
(2.3)
|cn -
(b a),
(2.4)
Basados en este anlisis de convergencia podemos hacer las siguientes observaciones: El mtodo tiene convergencia segura. Esto es dada la condicin inicial ( ) ( ) , el mtodo converge a una raz a en [ , ]. Esta propiedad conocida
como convergencia global es una de las caractersticas fuertes del mtodo de la biseccin y la mayora de los mtodos no la poseen. El error en las aproximaciones generadas por el mtodo se reduce a la mitad en cada paso. La convergencia lineal caracterizada por la ltima ecuacin es lenta comparada con otros mtodos [Negrn, n.d] . Esto es as ya que el mtodo slo usa evaluaciones de la funcin y comparaciones.
24
continua y acotada.
Consideramos la funcin ( ) = ( ) - . Dicha funcin es continua por ser diferencia de funciones continuas. Por ser acotada en existe un M que pertenece tenemos que (-M) =
a (0, +) tal que -M < ( ) < M para todo . Por tanto, para todo ( ) - M < 0 y ( ) +M > 0 y por tanto (M) =
(M) - M < 0 y
(-M) + M > 0. Por el Teorema de Bolzano existe c en el intervalo [-M; M] tal que (c) = 0: Ejemplo 2.- Encontrar un intervalo en el que se pueda asegurar que existe alguna solucin de la siguiente ecuacin.
(2.5)
Haciendo un dibujo aproximado podemos determinar un intervalo dnde encontrar la solucin de la ecuacin. Ver Figura 2.
25
Podemos observar en la Figura 2 que la solucin de la ecuacin se encuentra entre t=0 y t=1. Aplicamos ahora el Teorema de Bolzano para demostrarlo. (t) se trata de una funcin continua en el intervalo (-1, +) ya que es suma y cociente de continuas y no se anula el denominador. Por otro lado,
(2.6)
(0)
(1) =
Por tanto, el Teorema de Bolzano asegura que existe c que pertenece a (0, 1) tal que (c) = 0.
26
En la parte superior del laboratorio virtual el alumno introduce el valor de la funcin que desea someter a estudio y pulsar intro para que se visualice la grfica correspondiente en la parte central. En la parte central se visualizar la grfica de la funcin de entrada y el alumno podr mover los cursores azul y amarillo para acotar el intervalo [a, b] respectivamente. Si en algn momento el alumno no colocase correctamente los intervalos el sistema generar un aviso indicndole que no ha colocado correctamente el intervalo y no se lo permitir. Por ejemplo si coloca el intervalo tal que se cumpla que ( ) ( ) > 0, lo cual no est permitido, el sistema mostrar el
27
Una vez el alumno introduzca los datos de entrada podr pulsar el botn Calcular para obtener el valor de la raz dentro del intervalo correspondiente si sta existiera. En el laboratorio virtual tambin se dispone de una opcin en la que el estudiante puede ejecutar el procedimiento paso a paso para ver cmo va evolucionando el intervalo en la grfica. La grfica ir mostrando el nuevo intervalo que se genera en cada iteracin y los nuevos valores de los extremos del mismo. El alumno podr observar como cada vez la regin de acotamiento es ms pequea y se acerca cada vez ms al valor que hace 0 a la funcin. Por ejemplo para la funcin ( )=
10
28
El campo de texto que evala la funcin est conectado con un mtodo Java que pinta la grfica de dicha funcin, esto quiere decir que cuando se introduce el valor de la funcin y se pulsa intro se llamar al mtodo que contiene el siguiente cdigo en Java:
_view.trace.clear(); while(x<=xmax){ double y = _view.function.evaluate (x); _view.trace.addPoint(x,y); X = 0.1 + x; }
Como se puede observar el mtodo dibuja punto por punto la funcin y la muestra en el elemento _view que se comenta a continuacin. En la parte central del panel principal plottingFrame, se ha incluido un elemento de tipo panel con ejes (elemento _view). Dicho elemento en EJS se utiliza para dibujar grficas de funciones. ste elemento contiene un subelemento denominado traza que dibuja el recorrido de la funcin por cada uno de los puntos (x,y) que, mediante cdigo Java, se le han aadido. El elemento panel con ejes dispone adems de otros dos subelementos denominados cursores. En el mtodo de la biseccin se han empleado dos cursores conectados a dos variables Java que mandan un evento cuando el usuario los desplaza por la grfica y los suelta. Al soltarlos se lanza un evento que detecta la posicin del cursor y lo almacena en una variable Java que servir al programa para marcar el valor del intervalo [a,b]. Para asignar valores al intervalo el cdigo que se ha creado en EJS es el siguiente:
public void asignarValoresIntervalo(){ a = _view.cursorA.getX(); b = _view.cursorB.getX(); if(_view.function.evaluate(a)*_view.function.evaluate(b)>0) {
30
_view.alert("atencion", "No permitido","f(a)*f(b)>0 puede ser mayor que 0"); _view.cursorA.setX(-1); a = -1; b = 1; _view.cursorB.setX(1); } if (a>=b){ _view.alert("atencion", "No permitido","A no puede mayor o igual que b"); _view.cursorA.setX(-1); _view.cursorB.setX(1); a = -1; b = 1; } //variables necesarias para el paso a paso pA = a; pB = b; }
no
ser
Simplemente disponemos de dos variable globales a y b en las que asignamos el valor del marco correspondiente (marco azul para a y marco amarillo para b) segn lo mueva por la grfica el usuario. Si el movimiento del marco no es correcto el sistema mostrar el mensaje de error correspondiente. En la parte inferior del elemento principal plottingFrame se ha colocado un panel que contiene un campo de texto asociado a la variable Java que muestra el resultado de la raz, y dos botones denominados calcular y paso a paso. Todo ello se puede observar con detalle en la Figura 3. El botn calcular lanza un evento que llama al siguiente programa Java y que constituye el ncleo fundamental del clculo mediante el mtodo de la biseccin.
public double calcularRaiz(){ double p=a; int i=1; while( _view.function.evaluate(p)!=0 & i<=ni ){ double pa = p; p = (a+b)/2; System.out.println("VALOR DE P: "); System.out.println ("P= "+p); if(_view.function.evaluate(p)*_view.function.evaluate(a)>0) a=p;
31
Podemos observar que principalmente se trata de un bucle que se repite hasta que encontramos el valor que hace igual a 0 la funcin o hasta que se cumple el nmero de iteraciones que el usuario desee. Los datos de entrada son a, b, el nmero de iteraciones y la funcin que se vaya a someter a estudio. En cada iteracin, en la variable p se introduce el valor de la suma del intervalo a + b dividido entre 2. Si el valor de la funcin para p multiplicado por el valor de la funcin para a es mayor que cero entonces a pasa a tomar el valor p. Si en cambio, el valor de la funcin para p multiplicado por el valor de la funcin para b es mayor que cero b pasa a tomar el valor p. Una vez salimos del bucle, si ha sido porque hemos encontrado el valor que hace 0 a la funcin lo mostramos en el laboratorio virtual como dato de salida. El siguiente fragmento de cdigo java muestra cmo se tienen en cuenta los errores que se deben mostrar si el alumno acota de forma incorrecta el intervalo [a,b]
public void algoritmo () { if(_view.function.evaluate(a)*_view.function.evaluate(b)>0) { _view.alert("atencion", "No permitido","f(a)*f(b)>0 no puede ser mayor que 0\nMueva los cursores de la grfica "hasta encontrar un intervalo vlido"); } else{ raiz = calcularRaiz(); System.out.println("La raz es: "+raiz); }
32
Tal y como se ha indicado anteriormente el laboratorio virtual tambin dispone de una seccin en la que el alumno puede ejecutar paso a paso el algoritmo. Cada vez que se pulsa el botn de paso a paso se realiza una llamada al siguiente mtodo de cdigo Java. Simplemente el sistema en cada pulsacin a dicho botn aplicar una iteracin en el clculo del mtodo de la biseccin. Crear el nuevo intervalo, lo mostrar grficamente en el laboratorio virtual y mostrar un mensaje explicativo de los clculos realizados. El alumno los estudiar y comprender y cuando lo desee pulsar de nuevo el botn para obtener los clculos de la siguiente iteracin del mtodo. As sucesivamente hasta encontrar la solucin final.
public void pasoApaso() { count++; if (count == 15) _view.alert("atencion", "Mensaje","Has realizado demasiadas iteraciones, estamos trabajando intervalos extremadamente cortos, pulsa el botn Calcular Raiz para obtener el valor exacto"); _view.plottingPanel.setAutoscaleX(true); _view.plottingPanel.setZoom(true); xmin = pA; xmax = pB; ymin = -0.1; ymax = 0.1; double xPasoAPaso=pA; double pAux=pA; _view.trace.clear(); System.out.println (pA + " " +pB + " "); if(_view.function.evaluate(pAux)==0) _view.alert("atencion", "Mensaje","Ya ha terminado"); else{ //calculamos el nuevo rango double paAux = pAux; pAux = (pA+pB)/2; System.out.println(_view.function.evaluate(pAux)+""); System.out.println (_view.function.evaluate(pA)); if(_view.function.evaluate(pAux)* _view.function.evaluate(pA)>0) pA=pAux; else if(_view.function.evaluate(pAux)* _view.function.evaluate(pB)>0) pB=pAux; //pintamos ese rango en la grfica
33
/*Debemos tener en cuenta que pA se ha podido poner por delante de pB por lo tanto distinguimos los dos casos*/ if (pB>pA) while(xPasoAPaso<=pB){ System.out.println("entra por if"); Double yPasoAPaso; yPasoAPaso= _view.function.evaluate(xPasoAPaso); _view.trace.addPoint(xPasoAPaso,yPasoAPaso); if (pB-pA > 0.1) xPasoAPaso = 0.1 + xPasoAPaso; else xPasoAPaso = 0.001 + xPasoAPaso; } else{ xPasoAPaso=pB; while(xPasoAPaso<=pA){ System.out.println ("entra por else"); yPasoAPaso=_view.function.evaluate(xPasoAPaso); _view.trace.addPoint(xPasoAPaso,yPasoAPaso); if (pA-pB > 0.1) xPasoAPaso = 0.1 + xPasoAPaso; else xPasoAPaso = 0.001 + xPasoAPaso; } } } _view.alert("atencion", "Valor del Intervalo:","Valor de a = " + pA + "\n Valor de b = " +pB); }
Por ltimo cabe resalta el siguiente mtodo implementado para el botn reset. Simplemente se trata de resetear los valores de todo el laboratorio a los valores iniciales para que el alumno pueda probar de nuevo con el mismo u otro ejemplo.
public void reset(){ xmin = -10; xmax = 10; _view.cursorA.setX(-1); _view.cursorB.setX(1); a = -1; b = 1; raiz = 0.00; double x=xmin; _view.trace.clear(); while(x<=xmax){ double y = _view.function.evaluate(x); System.out.println ("x="+x+" y="+y); _view.trace.addPoint(x,y); x = 0.1 + x; } }
34
2.7. CONCLUSIONES
La inclusin del mtodo de la biseccin en el laboratorio virtual ha sido principalmente debido a que este mtodo numrico es el mtodo ms sencillo para el clculo de races. Es un mtodo muy sencillo y fcil de comprender y se considera que supone la base fundamental para comenzar aprendiendo este tipo de mtodos. Es importante que el alumno pueda visualizar grficamente la funcin que somete a estudio. Es por ello que se ha desarrollado la parte visual con una parte grfica que ayuda a comprender el mtodo. Es importante adems que el alumno se centre en aprender el mtodo, por ello se ha desarrollado lo ms sencillo posible y que sea fcil e intuitivo de manejar. Se han creado cursores para que el alumno pueda acotar el intervalo que desea usar para el clculo de la raz.
35
Adems se ha considerado que incluyendo un botn que permitiese al alumno ejecutar el mtodo paso a paso ayudara al alumno a comprender mucho mejor cmo calcula la raz el mtodo.
36
3
MTODO DE NEWTON-RAPHSON
3.1. INTRODUCCIN
El mtodo de Newton-Raphson es uno de los ms usados y efectivos. A diferencia del mtodo de la biseccin, el mtodo de Newton-Raphson [Seminario, n.d] no trabaja sobre un intervalo sino que basa su frmula en un proceso iterativo. Ntese que no trabaja con intervalos donde nos asegure que encontraremos la raz, y de hecho no tenemos ninguna garanta de que nos aproximaremos a dicha raz. Desde luego existen ejemplos donde este mtodo no converge en la raz, en cuyo caso se dice que el mtodo diverge. Sin embargo, en los casos donde si converge a la raz lo hace con una rapidez impresionante, por lo cual es uno de los mtodos preferidos por excelencia.
tiene una pendiente definida y una ] [Negrn, n.d]. La cerca del punto
0))
37
0,
0)).
cero de
El mtodo de Newton es un proceso iterativo que sigue una pausa fija para aproximar una raz, considerando la funcin, su derivada, y un valor Hay que tener en cuenta que una raz inicial.
que hace cero a la funcin. Esto significa que la raz de una funcin, se calcula cuando la funcin se igual a cero. Se pueden encontrar las races de una funcin simple como resolviendo = x2-4 simplemente colocando la funcin igual a cero y = x2-4 = 0, de aqu se tiene que = (x+2)(x-2)=0, para concluir
que la igualdad se cumple slo si x= 2 x =-2, que son consideradas como races de la ecuacin. Visualmente podemos observar, en la grfica de la Figura 7, la bsqueda de los valores de la raz de la funcin anterior.
38
En la Figura 7 se observa que en el punto x = 2 y x = -2 la curva corta al eje X, considerando estos puntos como la raz de la funcin. Como ya se ha indicado el mtodo de Newton Raphson usa un proceso iterativo para encontrar la raz de una funcin. La raz especifica que el proceso localiza un valor que depende del valor inicial, valor
1,
escogido arbitrariamente.
como el cero de la
primeras dos aproximaciones de races usando el Mtodo de Newton-Raphson, se buscan con el mismo criterio que el Mtodo de la Biseccin.
39
Derivacin de la frmula: El mtodo de Newton tiene una interpretacin geomtrica sencilla, de hecho, el mtodo de Newton consiste en una linealizacin [UV, 2011] de la funcin, es decir, se reemplaza por una recta tal que contiene el
punto ( 0, ( 0)) y cuya pendiente coincide con la derivada de la funcin en el punto ( 0). La nueva aproximacin a la raz, funcin lineal con el eje X de ordenadas. La ecuacin de la recta que pasa por el punto ( 0, ( 0)) y de pendiente ( 0) es y- ( 0) = ( 0)( 0). 1,
se obtiene de la interseccin de la
Haciendo y = 0 y despejando
se obtiene la
n)/
n)
(3.1)
( ) =
+16, cuya
40
Hasta obtener el valor de la raz = -2.3877. Ejemplo 2.-Utilizar el mtodo de Newton Raphson para aproximar los ceros de ( ) = 2
3
+ 1.
Continuar las iteraciones hasta que dos aproximaciones sucesivas difieran en menos de 0,0001. 41
Por la grfica de la Figura 10 se observa que hay un nico 0 que est entre -1,5 y -1.
Como las dos aproximaciones sucesivas difieren en menos de 0,0001, la estimacin final del cero es 1,2338.
42
mtodo de Newton toma la recta tangente a la funcin en un punto prximo a la solucin y calcula el punto de corte de esa tangente con el eje de las X. Se pretende que el alumno comprenda cmo funciona el mtodo, detecte cundo converge o no, pueda apreciar las diferencias con otros mtodos de clculo de races como por ejemplo la diferencia con el mtodo de la biseccin o el mtodo del punto fijo, tambin explicados en el laboratorio virtual. Una vez estudiado el mtodo, a travs del laboratorio virtual, el alumno ser capaz de saber aplicarlo para cualquier funcin, sabr cmo encontrar la solucin y detectar cuando es ms o menos conveniente aplicarlo sobre otros mtodos que buscan el mismo fin. El laboratorio virtual desarrollado sobre este mtodo muestra grficamente la evolucin de la tangente en la grfica de la funcin dada, para que el alumno pueda ir viendo en cada iteracin cmo se van realizando los clculos y pueda comprender de una forma clara y concisa cmo se desarrolla paso a paso el clculo de la raz de una funcin dada.
43
Como podr observar en la Figura 11 hay dos reas claramente diferenciadas. En la parte superior del laboratorio virtual el alumno podr incluir los siguientes datos para realizar la simulacin: La funcin a simular. El tamao del eje x para acercar o alejar la grfica. El valor de X0. El nmero de iteraciones que desee tenga la simulacin. 44
Una vez introducidos dichos valores y pulsado intro en cada uno de ellos, se dibujar la grfica segn los parmetros indicados. En la parte inferior se encuentran dos botones. Por un lado el botn Calcular por Newton, el cual el alumno pulsar para obtener el valor de la raz segn los parmetros que ha indicado anteriormente. Por otro lado tiene un botn denominado Ejecutar paso a paso el cual podr ir pulsando para ir viendo cmo se realiza el desarrollo de la simulacin. Cada vez que lo pulse un mensaje emergente saltar en la pantalla de su ordenador y le indicar de qu punto a qu punto se trazar la lnea tangente as como el punto en el que corta al eje X, indicndole por ltimo cul va a ser la siguiente aproximacin a la raz que se va a utilizar, ver Figura 12.
Adems en el rea de mensajes inferior, cada vez que se realice una pulsacin de dicho botn, se indicarn las frmulas y los clculos utilizados en el paso que se haya dado, ver Figura 13.
45
46
En la parte central, al igual que en el mtodo de la biseccin, se ha creado un panel que contiene un elemento de tipo panel con ejes. Dicho panel, como ya se ha indicado, dibuja grficamente la traza de la funcin introducida evaluando punto por punto la funcin de partida mediante el mtodo Java siguiente:
_view.trace.clear(); while(x<=xmax){ double y = _view.function.evaluate (x); _view.trace.addPoint(x,y); X = 0.1 + x; }
En la parte inferior se encuentra un panel que contiene un campo de texto conectado con la variable que almacena el clculo de la raz y que mostrar el resultado del clculo realizado y dos botones calcular por Newton y Ejecutar paso a paso. El botn calcular por Newton lanza el evento de llamada al siguiente cdigo Java:
boolean pulsadoNewton = false; public void algoritmo () { pulsadoNewton = true; pasos = ""; raiz = calculaNewton(); System.out.println ("La raz es: "+raiz); } private double f(double x){ double y = _view.function.evaluate(x); return y; } public double calculaNewton(){ tol = 1e-8; double x = x0, xb = x-999; double n = 0, del_x = 0.01; double y = 0; while(Math.abs(x-xb)>tol){ n = n+1; xb = x; if(n > nIter) break; y = f(x); double y_driv=(f(x+del_x) - y)/del_x; x = xb - y/y_driv;
47
System.out.println (x +" = "+xb+" - ("+y+" / "+y_driv+")"); pasos = pasos +"==>"+ xb+" - ("+y+" / "+y_driv+")" +" = "+x +";\n"; _view.areaTexto.setText("Teniendo en cuenta la frmula de newton: Xi - f(Xi)/f'(Xi) = Xi+1 \n\nXo = "+x0+"\nf'(x) la obtendremos de la siguiente frmula f'(x) = (f(X+0,01)f(x))/0,01\n\n"+pasos); iteracionesYraices = iteracionesYraices + "\n"+ " n="+n+" x= "+x+" y = "+y; } System.out.println ("Respuesta final = "+ x); return x; } public void asignarValorX0(){ x0 = _view.cursor.getX(); _initialize(); }
Podemos observar que se crea una condicin para que el bucle se repita hasta encontrar la solucin de la raz o hasta que se cumpla su if interior, el cual comprueba si se han dado un mayor nmero de iteraciones a las indicadas por el alumno. En cada iteracin se va calculando el siguiente punto frmula de Newton en la que
i+1 i+1
utilizando la
que es la derivada de , es la variable y_driv. El valor de cada iteracin se almacena en la variable . El mtodo private double f(double ) simplemente llama a evaluar en la funcin que ha presentado el alumno el valor que se le pasa como parmetro . A continuacin se muestra el cdigo EJS que se ejecuta cuando el alumno pulsa el botn Ejecutar paso a paso para ir viendo la evolucin del mtodo en cada iteracin.
48
public void pasoApaso(){ _view.tangente.clear(); if (pulsadoNewton){ pasos = ""; pulsadoNewton = false; } if (Math.abs(xaux-xbaux)>tolaux) if(naux <= nIter) { naux = naux+1; xbaux = xaux; yaux = f(xaux); double y_drivaux = (f(xaux+del_xaux) yaux)/del_xaux; xaux = xbaux - yaux/y_drivaux; //Calculos de la tangente if (puntoPrevio != 0) _view.tangente.addPoint(puntoPrevio,0); _view.tangente.addPoint(xbaux,yaux); _view.tangente.addPoint(xaux,0); puntoPrevio = xaux; _view.alert("Mensaje","Informacion","Trazamos la recta tangente a la curva en el punto (xi,f(xi)) = ("+xbaux+","+yaux+") \nsta cruza al eje x en el punto Xi+1 = "+xaux+" que ser nuestra siguiente aproximacin a la raiz Xr"); //hasta aqui calculos de la tangente //Hacemos zoom a la grfica, dependiendo del valor de xuax acotamos de un lado a otro if (naux !=1 ) if (naux <=3) if (xbaux < xaux) {xmin = xbaux -0.5; xmax = xaux +0.5;} else {xmin = xaux -0.5; xmax = xbaux +0.5;} else if (xbaux < xaux) {xmin = xbaux -0.2; xmax = xaux +0.2;} else {xmin = xaux -0.2; xmax = xbaux +0.2;} double s=xmin; _view.trace.clear(); while(s<=xmax){ double w = _view.function.evaluate(s); _view.trace.addPoint(s,w); s = 0.01 + s; } //Hasta aqui el zoom System.out.println (xaux +" = "+xbaux+" ("+yaux+" / "+y_drivaux+")"); pasos = pasos +"==>"+ xbaux+" - ("+yaux+" / "+y_drivaux+")" +" = "+xaux +";\n"; _view.areaTexto.setText("Teniendo en cuenta la formula de newton: Xi - f(Xi)/f'(Xi) = Xi+1 \n\nXo = "+x0+"\nf'(x) la obtendremos de la siguiente frmula f'(x) = (f(X+0,01)f(x))/0,01\n\n"+pasos); iteracionesYraices = iteracionesYraices + "\n"+ " n="+naux+" x= "+xaux+" y = "+yaux; }
49
Cada vez que el alumno realiza una pulsacin sobre el botn Ejecutar paso a paso se realiza el clculo de la nueva tangente que cortar el eje X, partiendo en cada iteracin de los datos calculados en la iteracin previa. Se mostrar un mensaje visual con los clculos realizados y se pararn los clculos hasta que el alumno pulse el botn de aceptacin del mensaje. Posteriormente se realizar automticamente zoom a la grfica para una mejor visualizacin de la recta tangente ya que en cada iteracin el rea de la grfica es cada vez ms pequeo. Mientras no se acaben las iteraciones dadas como parmetro de entrada se repetirn los clculos indicados hasta o bien se acaben las iteraciones o bien se obtenga el resultado de la raz buscada. La variable de tipo string pasos que se va generando en el cdigo Java, mientras se realizan los clculos por el mtodo de Newton, est conectada con el rea de texto inferior que se puede observar en la Figura 13, por tanto se cargar en esta rea de texto el contenido de dicha variable y se visualizarn los detalles de los pasos que se han realizado al evaluar la funcin mediante este mtodo. El mtodo de Newton es un mtodo abierto, en el sentido de que su convergencia global no est garantizada. La nica manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raz buscada. As, se ha de comenzar la iteracin con un valor razonablemente cercano al cero (denominado punto de arranque o valor supuesto). La relativa cercana del punto inicial a la raz depende mucho de la naturaleza de la propia funcin; si sta presenta mltiples puntos de inflexin o pendientes grandes en el entorno de la raz, 50
entonces las probabilidades de que el algoritmo diverja aumentan, lo cual exige seleccionar un valor supuesto cercano a la raz. Una vez que se ha hecho esto, el mtodo linealiza la funcin por la recta tangente en ese valor supuesto. La abscisa en el origen de dicha recta ser, segn el mtodo, una mejor aproximacin de la raz que el valor anterior. Se realizarn sucesivas iteraciones hasta que el mtodo haya convergido lo suficiente.
y se le da
Ejecutar paso a paso podr observar que se obtiene el resultado de la raz -1,9 y que el mtodo converge. A continuacin se le indica al alumno que pruebe a cambiar el valor de valor
0=
al
hemos
encontrado un valor distinto de la raz en la que el mtodo tambin converge. Por ltimo se le indica al alumno que pruebe lo siguiente. Cambie la funcin a ( ) = . Cambie tambin el valor de
0=
3. El nmero de iteraciones
resultado y es que en este caso la funcin no converge en la raz, por lo tanto es divergente. Las actividades pedaggicas anteriores ayudan al alumno a comprender la diferencia de cuando el mtodo de Newton converge a una o varias races y cundo no converge, es decir, diverge.
3.7. CONCLUSIONES
Se ha decidido incluir el mtodo de Newton en el laboratorio virtual ya que se considera un mtodo bsico y sencillo a travs del cual un alumno puede aprender a realizar los clculos de una funcin dada para encontrar su raz o races si las tuviera. Por otro lado podr aprender que hay mtodos numricos que en ocasiones son divergentes. Y por ltimo comprender la diferencia que existe con otros mtodos de clculo de races como por ejemplo la diferencia con el mtodo de la biseccin. Es importante adems que el alumno tenga la posibilidad de aprender la diferencia con el mtodo de la biseccin explicado en el captulo anterior. El mtodo de la biseccin es ms lento que el mtodo de newton pero nos asegura que converge en la raz que se encuentra en el intervalo definido. El mtodo de newton no trabaja con intervalos donde nos asegure que converge en una raz por lo tanto en ocasiones es divergente y no se encuentra solucin. Sin embargo, en las ocasiones en las que si converge en la raz lo hace con una rapidez impresionante, por lo cual se le puede considerar como uno de los mtodos preferidos por excelencia.
52
4
MTODO DEL PUNTO FIJO
4.1. INTRODUCCIN
El mtodo del punto fijo es un mtodo iterativo que permite resolver sistemas de ecuaciones no necesariamente lineales [wikipedia, 2012] . En particular se puede utilizar para determinar races de una funcin de la forma cuando se cumplan los criterios de convergencia. El mtodo de iteracin del punto fijo para resolver una ecuacin no lineal [Seminario, n.d] ( ) = 0 pasa por transformarla en una equivalente ejecutar la iteracin a partir de un cierto y , siempre y
-2
+3 = 0, se reordena para
53
De esta manera dado un valor inicial para la raz puede usarse para obtener una nueva aproximacin iterativa:
i+1 =
i,
la ecuacin anterior
i+1,
( i)
(4.1)
i+1
54
Convergencia: El error relativo porcentual verdadero [Negron, n.d] en cada iteracin del ejemplo anterior, es proporcional (por un factor de 0.5 a 0.6) al error de la iteracin anterior. Esta propiedad se conoce como convergencia lineal. Un mtodo grfico alternativo consiste en separar la ecuacin en dos partes, de esta manera
1(
)=
2(
55
En la parte superior el alumno dispondr de dos campos de texto para introducir el valor de las funciones ( ) y ( ). Adems existen tres campos en los que se debe introducir el valor de
0,
57
En el centro del laboratorio se dispone de un rea de texto en el que se le indicarn al alumno todos y cada uno de los pasos que se han realizado para obtener el resultado final acorde a los datos introducidos en la parte superior. En la parte inferior se dispone del rea en la que se mostrar el resultado final y dos botones de interaccin con el laboratorio, uno para calcular y otro para resetear y borrar la pantalla. Una vez el alumno introduce los valores de las funciones, el valor inicial de
0,
genera una serie de pasos en los que le indica cmo se han realizado los clculos que le han llevado a la solucin. A continuacin podr observar en la Figura 16 un ejemplo de cmo muestra paso por paso cmo se han realizado los clculos para los datos introducidos.
58
Podemos observar que en un primer lugar informa cmo se debe definir el margen de error en el mtodo del punto fijo, tolerancia + 1. A continuacin indica que se genera un contador inicializado a 0 que es el que va a guiarnos por el nmero de la iteracin por la que vamos pasando. El alumno, as como el cdigo Java en el que est implementado el laboratorio, debe realizar los siguientes clculos mientras el error sea menor que la tolerancia introducida mientras nos encontremos por debajo de las iteraciones tambin indicadas por el alumno. As pues, se deben ir realizando los siguientes clculos: Paso 1: Se evala la funcin ( ) para la inicial.
Paso 2: Con el valor obtenido anteriormente evaluamos en la funcin f( ). Paso 3: Calculamos de nuevo el error = | Paso 4: Asignamos a paso 1.
0 1
0/
1|
el valor de
y continuamos volvemos al
59
En la parte central se ha colocado un campo de tipo rea de texto conectado a la variable Java pasos. Dicho campo de texto se cargar con el detalle de los pasos realizados una vez se ha pulsado el botn calcular. A continuacin mostramos el ncleo principal del cdigo que implementa dicho laboratorio y que se lanza cuando el alumno pulsa el botn calcular.
public void integral (){ double y = _view.fx.evaluate(x0); double error = tolerancia + 1; int contador = 0; double x1 = 0; while (error>tolerancia && y!=0 && contador < numIteraciones) { x1 = _view.gx.evaluate(x0); y = _view.fx.evaluate(x1); error = Math.abs ((x1 - x0)/x1); x0 = x1; contador++; } pasos = "Definimos inicialmente el error como tolerancia + 1.\n"+ "Definimos un contador inicializado a 0.\n\n"+ "Mientras el (error > tolerancia) y (f(x) <> 0) y (contador < nmero iteraciones)\n"+ "Evaluamos:\n"+ "x1 = g(x0) e y = f(x1). \n"+ "error = |(x1 - x0)/x1|.\n"+ "x0 = x1.\n\n"+ "Una vez no se satisface una de las 3 condiciones anteriores podemos ver si hemos encontrado la solucin.\n"+ "Cmo? pues simplemente viendo el valor de Y, si ste es igual a 0 hemos encontrado la raiz,\n"+ "Si no es as y el (error<tolerancia) hemos encontrado una raz aproximada,\n"+ "y sino se da ningn caso anterior no hemos encontrado solucin.\n\n"+ "Para este caso el resultado obtenido es:"; if (y == 0) { pasos = pasos +"\n"+ x0 + " que es raz exacta de " + fx; System.out.println (x0 + " que es raz exacta de " + fx); resultado = x0; }else if (error < tolerancia){ pasos = pasos +"\n"+ x0 + " que es raz aproximada de " + fx; System.out.println (x0 + " que es raz aproximada de " + fx); resultado = x0; }else{ pasos = pasos +"\nNo se hall una solucin"; System.out.println ("No se hall una solucin");
60
} _view.pasos.setText(pasos); }
Como se puede observar en el cdigo Java anterior el bucle se ejecuta hasta que o bien termina el nmero de iteraciones de entrada, o bien la variable que determina que se ha llegado a la raz es 0 o que el error es mayor que la tolerancia de error que se le permite al problema. Mientras tanto en cada vuelta del bucle se evala para
0
para
1.
Finalmente una vez hayamos salido del bucle se genera un texto explicativo con todo detalle sobre el proceso que se ha desarrollado tal y como muestra la Figura 16. Por ltimo cabe resaltar que el laboratorio virtual tambin dispone de un botn que una vez pulsado invoca al mtodo reset() que resetea el laboratorio virtual a los valores iniciales para que el alumno pueda volver a realizar la simulacin o introducir datos de un nuevo problema. Tal y como se aprecia en el mtodo Java, se introducen los valores por defecto de la tolerancia, el nmero de iteraciones, el valor de
0
61
Otra de las claves que nos muestra el laboratorio virtual es que indica al alumno que cuando se llega a la solucin pueden darse tres posibilidades. Por un lado puede darse que encontremos el valor exacto de la raz, de esta forma no habremos consumido todas la iteraciones y no habremos obtenido un error menor que la tolerancia del ejercicio. En este caso el valor de la variable ser 0 y habremos encontrado el valor exacto de la raz. Puede darse el caso de que tengamos que salir del bucle por fuerza mayor, es decir puede darse el caso que el nmero de iteraciones termine antes de encontrar la raz o que el error sea demasiado como para que la tolerancia introducida lo soporte, en este caso habremos encontrado un valor aproximado de la raz. Y por ltimo puede darse el caso de que la funcin introducida no tenga raz, en este caso por muchas iteraciones que le demos y por mucho margen de error que permitamos (dentro de unos lmites coherentes) no encontraremos una solucin y por tanto diremos que no existe solucin.
sistema le informa que no encuentra la solucin. Obviamente esto le indica al alumno que no puede crear pocas iteraciones adems de que el error es mucho mayor que la tolerancia permitida. En cambio si somos ms persuasivos y ponemos para esas dos iteraciones un valor de tolerancia igual a 50 el sistema permite un error muy elevado y devolver un valor aproximado de la raz buscada. A continuacin se le plantea al alumno que modifique los datos de entrada introduciendo una nueva funcin, valor de la funcin es el siguiente
0
un pequeo nmero de iteraciones igual a 5. Al pulsar el botn calcular el alumno podr observar que, para estos datos de entrada, el sistema le devuelve al valor exacto de la raz buscada con lo que ha demostrado al alumno que es posible que el sistema encuentre la raz exacta y no aproximada como ocurra en la actividad anterior.
4.7. CONCLUSIONES
Al igual que los mtodos numricos explicados anteriormente se considera importante incluir el mtodo del punto fijo como mtodo bsico para comprender la bsqueda de races de una ecuacin. Las conclusiones que se pretenden extraer es que pueda ser comparado con otros mtodos que tambin se estudian en el laboratorio virtual y que obtienen el mismo fin. Es el caso del mtodo de la biseccin. El mtodo de la biseccin necesita muchas ms iteraciones que el mtodo del punto fijo ya que en cada iteracin solamente divide el intervalo a la mitad. Sirve adems al alumno para compararlo con el otro mtodo estudiado en el laboratorio virtual de bsqueda de races, el mtodo de Newton. Podr observar que 63
el mtodo de Newton converge mucho ms rpido que el mtodo del punto fijo. Sin embargo el mtodo de Newton requiere la evaluacin de ambos y su derivada en y
cada paso, mientras que el mtodo del punto fijo slo requiere la evaluacin de . Por lo tanto, el mtodo del punto fijo puede ser ms rpido en la prctica.
64
5
MTODO DE GAUSS
5.1. INTRODUCCIN
Eliminacin de Gauss-Jordan, llamado as debido a Carl Friedrich Gauss y Wilhelm Jordan. El mtodo de Gauss, conocido tambin como de triangulacin o de cascada, nos permite resolver sistemas de ecuaciones lineales con cualquier nmero de ecuaciones y de incgnitas. La idea es muy simple, por ejemplo, para el caso de un sistema de tres ecuaciones con tres incgnitas se trata de obtener un sistema equivalente cuya primera ecuacin tenga tres incgnitas, la segunda dos y la tercera una. Se obtiene as un sistema triangular o en cascada. Es importante aadir que el sistema resultante es dependiente de la forma en que apliquemos estos criterios, [wikilibros, 2012] , es decir, las ecuaciones obtenidas no son siempre las mismas, pero si los hemos aplicado correctamente, el sistema es equivalente al dado.
65
transforma la matriz de coeficientes en una matriz triangular superior. Posteriormente contina el proceso de transformacin hasta obtener una matriz diagonal unitaria. Algoritmo Ir a la columna no cero extrema izquierda. Si el primer rengln tiene un cero en esta columna, intercambiarlo con otro que no lo tenga. Luego, obtener ceros debajo de este elemento delantero, sumando mltiplos adecuados del rengln superior a los renglones debajo de l. Cubrir el rengln superior y repetir el proceso anterior con la submatriz restante. Repetir con el resto de los renglones (en este punto la matriz se encuentra en la forma de escaln). Comenzando con el ltimo rengln no cero, avanzar hacia arriba: para cada rengln obtener un 1 delantero e introducir ceros arriba de ste sumando mltiplos correspondientes a los renglones correspondientes. Como hemos visto, el mtodo de Gauss transforma la matriz de coeficientes en una matriz triangular superior. Adems contina el proceso de transformacin hasta obtener una matriz diagonal unitaria (aij=0 para cualquier i j). Veamos el procedimiento con detalle y mediante un ejemplo. Ilustraremos el mtodo de Gauss aplicando el procedimiento a un sistema de cuatro ecuaciones con cuatro incgnitas:
66
(5.1)
En el primer paso, multiplicamos la primera ecuacin por restamos a la segunda, despus multiplicamos la primera ecuacin por restamos a la tercera y finalmente multiplicamos la primera ecuacin por la restamos a la cuarta. Los nmeros 2,
y la y la y
paso del proceso de eliminacin. El nmero 6 es el elemento pivote de este primer paso y la primera fila, que no sufre modificacin alguna, se denomina fila pivote. El sistema en estos momentos tiene el siguiente aspecto:
(5.2)
En el siguiente paso del proceso, la segunda fila se emplea como fila pivote y -4 como elemento pivote. Aplicamos del nuevo el proceso: multiplicamos la segunda fila por segunda fila por ocasin 3 y y la restamos de la tercera y despus multiplicamos la y la restamos a la cuarta. Los multiplicadores son en esta
67
(5.3)
A continuacin multiplicamos la tercera ecuacin por la cuarta. El sistema que se obtiene es el siguiente:
y la restamos a
(5.4)
Tomaremos como pivote el elemento a44=-3; multiplicamos la cuarta ecuacin por y la restamos a la primera:
(5.5)
(5.6)
68
Ahora tomamos como pivote el elemento a33 = 2, multiplicamos la tercera ecuacin por = 1 y la restamos a la primera:
(5.7)
(5.8)
Finalmente, tomamos como pivote a22=-4, multiplicamos la segunda ecuacin por y la sumamos a la primera:
(5.9)
(5.10)
69
70
Podemos observar tres partes en el laboratorio virtual dedicado al mtodo de Gauss. En la parte superior se dispone de un rea en la que introducir los valores de las variables que van a conformar el sistema. El alumno deber introducir los valores correspondientes de las variables
0, 1, 2
las tres ecuaciones que conformarn el sistema. Adems introducir los valores con signo negativo si se tratase de un valor menor que 0. Dispone adems de un botn
71
calcular que una vez pulsado, y si los valores introducidos son correctos, mostrar el resultado del valor que se obtiene para las variables
0, 1, 2.
En la parte central podemos observar un rea dedicada al primer paso. El primer paso se le considera el ms importante para entender el mtodo, si se entiende este primer paso el alumno no tendr problema en continuar iterando hasta llegar a la solucin final. No obstante, en la parte inferior se especifica e indica claramente los pasos finales que se realizan en el sistema para que el alumno no tenga dificultad alguna en entender claramente el procedimiento del mtodo de Gauss. Inicialmente se le carga un sistema de ecuaciones de ejemplo. El alumno podr pulsar directamente el botn de calcular y obtener el detalle de los pasos realizados. El rea central indicar, por ejemplo, los mensajes que se observan en la Figura 18.
72
Mostrar al alumno cmo se construye inicialmente la matriz del sistema de ecuaciones, es decir, tomamos los valores de las variables de cada ecuacin as como el valor al que estn igualados para construir la matriz asociada. A continuacin indica la instruccin clave de este mtodo, dividir el valor x 0 de la ecuacin 2 y 3 entre el valor
0
En el rea de mensajes (Figura 18) se muestra tambin que hay que repetir el proceso de forma similar con
1.
Finalmente en la parte inferior nos indica que podemos observar que hay una ecuacin en la que el valor de obtener el valor exacto de
2. 0
Todo este
Por ltimo cabe resaltar la zona en la que se muestra el resultado para cada una de las variables con su signo correspondiente, Figura 20.
73
El mtodo de Gauss no siempre encuentra solucin al sistema o simplemente encuentra varias soluciones. De esta forma tambin se le indica esta posibilidad para que la tenga muy en cuenta en el futuro cuando l solo se enfrente a la resolucin de sistemas mediante el mtodo aqu indicado. Se indica claramente y mediante ejemplos que nos podemos encontrar los siguientes tipos de sistemas a la hora de resolverlos por el mtodo de Gauss: 1. Sistema compatible determinado (S.C.D.): una nica solucin. 2. Sistema compatible indeterminado (S.C.I.): infinitas soluciones. 3. Sistema incompatible (S.I.): no tiene solucin.
74
double[][] a = {{xAux00, xAux01, xAux02, xResult0}, {xAux10, xAux11, xAux12, xResult1}, {xAux20, xAux21, xAux22, xResult2}};
Tal y como se puede observar en la Figura 17, en la parte central, se ha creado un campo de tipo rea de texto en el que se cargar el detalle de los pasos realizados mediante cdigo Java cuando se pulsa el botn Calcular El botn Calcular lanza un evento que ejecuta el mtodo Java denominado calculo(). En dicho mtodo se cargan los valores introducidos por el usuario en el sistema. Para simplificar se ha creado un sistema de tres ecuaciones con tres incognitas, un sistema bsico que ayude a comprender al alumno cmo funciona el mtodo de Gauss. Una vez el alumno comprenda cmo se trabaja con un sistema de tres ecuaciones con tres incognitas ya ser capaz de resolver cualquier sistema contenga las ecuaciones que contenga as como el nmero de incognitas. Los valores de cada una de las ecuaciones son almacenados en una matriz de nmeros decimales.
String prueba = ""; String prueba2 = ""; String prueba3 = ""; String prueba4 = ""; public void calculo(){ pasos = ""; valorM = ""; valorMaux = ""; traza = ""; trazaEcuaciones = null; _view.areaTexto3.setText(""); prueba = ""; prueba2 = ""; prueba3 = ""; prueba4 = ""; double[][] a = {{xAux00, xAux01, xAux02, xResult0}, {xAux10, xAux11, xAux12, xResult1}, {xAux20, xAux21, xAux22, xResult2}}; int n =3;
75
double[] x=new double[n]; if(resolver(x,a,n)==0) noSolucion = ""; for(int i=0; i < n;i++) { System.out.println ("x("+i+")="+x[i]); if (i == 0) valorX12 = x[i]; else if (i ==1) valorX22 = x[i]; else valorX32 = x[i]; } }
El ncleo importante se encuentra en el mtodo resolver(). Este mtodo toma como datos de entrada la matriz con los valores del sistema ecuacional, el nmero de ecuaciones y el nmero de incognitas que, como ya se ha comentado, para simplificar se va a trabajar siempre con sistemas de tres ecuaciones con tres incognitas. Inicialmente comprueba si existe alguna ecuacin en la que todos sus trminos son iguales a cero, en ese caso avisa al usuario de que dicho sistema no tiene solucin. Disponemos de dos variables de tipo String primeraEcuacion y segundaEcuacion cuya finalidad es almacenar la informacin que se le mostrar al alumno en el rea de texto dedicada a las explicaciones del proceso de clculo. En el bucle marcado como (1) se puede apreciar que tomamos el primer valor
0
de la ecuacin 1. El
resultado obtenido lo multiplicamos por todos los trminos de la primera ecuacin, y por ltimo el resultado obtenido se lo restamos al rengln 2, dicho clculo se realiza todo en el bucle marcado como (2). En la variable de tipo String resultado almacenamos dichos clculos para posteriormente mostrarselo al alumno visualmente.
76
La variable String resultado se almacena en la variable, tambin de tipo String, prueba2 ya que resultado ser borrado en la siguiente iteracin. Se realiza el mismo procedimiento para la tercera ecuacin y el detalle del resultado se almacena en la variable prueba4. Con los valores obtenidos anteriormente se repite de nuevo el mismo proceso para la tercera ecuacin, esta vez almacenamos los detalles de salida en las variables de tipo String prueba y prueba3 para mostrarselos posteriormente al alumno. Todos los strings, con el detalle de los clculos obtenidos anteriormente, se formatean y concatenan convenientemente para mostrarselos de forma legible y entendible al alumno para que ste pueda comprender facilmente los clculos realizados. Como se puede apreciar el sistema puede ser facilmente adaptable a sistemas de mayor nmero de ecuaciones y de incognitas modificando la variable n y x de entrada al mtodo que contiene el ncleo del funcionamiento del mtodo de Gauss.
public int resolver(double[] x, double[][] a, int n){ int i,j,k; for(i = 0; i < n-1; i++){ int p = i; while(p < n && a[p][i]==0) p++; if(p == n){ System.out.println ("No hay solucin..."); noSolucion = "ESTE SISTEMA NO TIENE SOLUCIN!"; valorx1 = ""; valorx2 = ""; valorx3 = ""; pasos = ""; return(1); } if( p != i) for(j = 0; j <= n; j++){ double temp = a[i][j]; a[i][j] = a[p][j]; a[p][j] = temp;
77
} (1) for(j = i+1; j < n; j++){ double m = a[j][i]/a[i][i]; if (a[j][i] != 0.0) valorM = valorM +"\n"+ a[j][i] + "/"+a[i][i] + " = " +m; else valorMaux = valorMaux +"\n"+ a[j][i] + "/"+a[i][i] + " = " +m; (2) for(k = 0; k <= n; k++){ primeraEcuacion = primeraEcuacion + a[j][k]+ ", "; segundaEcuacion = segundaEcuacion+ a[i][k]+ ", " ; a[j][k] = a[j][k] - m*a[i][k]; resultado = resultado +a[j][k] + ", "; //Para mostrar los pasos al alumno if (k<=2) pasos = pasos + " " + String.valueOf(a[j][k])+ "x" + String.valueOf(k); else pasos = pasos + " " +String.valueOf(a[j][k]); if (k==2) pasos = pasos + " = "; if (k==3) pasos = pasos + ";\n"; } traza = traza +""+ primeraEcuacion+" - " + m +"("+segundaEcuacion+") = " +resultado +"\n"; prueba = resultado; if (prueba2 != "" && prueba4 == "") prueba4 = resultado; if (prueba2 == "") prueba2 = resultado; if (prueba3 == "") prueba3 = prueba; primeraEcuacion = ""; segundaEcuacion = ""; resultado = ""; } System.out.println ("TRAZA " + traza); if (trazaEcuaciones == null) trazaEcuaciones =traza; traza = ""; } pasos=pasos+"==> En esta ltima ecuacin x0 y x1 valen 0."; if(a[n-1][n-1]==0){ System.out.println ("No hay solucin..."); noSolucion = "ESTE SISTEMA NO TIENE SOLUCIN!"; valorx1 = ""; valorx2 = ""; valorx3 = ""; pasos = ""; return(1); } x[n-1] = a[n-1][n]/a[n-1][n-1]; //valor de X2 valorx3 = String.valueOf(x[n-1]); for(i = n-2; i >= 0; i--){ double s=a[i][n]; for( j = i+1; j < n ; j++){ s = s - a[i][j]*x[j]; } x[i] = s/a[i][i]; //valores de x0 y x1 if (i == 1) valorx2 = "x1 = " + tring.valueOf(x[i]); valorx1 = "x0 = " + String.valueOf(x[i]);
78
} System.out.println " + xResult0); System.out.println System.out.println System.out.println ", " + xResult0); System.out.println System.out.println (xAux00+", " +xAux01 +", " + xAux02 + ", (prueba2); (prueba4); (xAux00+", " +xAux01 +", " + xAux02 + (prueba3); (prueba);
_view.areaTexto3.setText(""); _view.areaTexto3.setText("Construimos la matriz del sistema ecuacional:\n" +xAux00+", " +xAux01 +", " + xAux02 + ", " + xResult0 +"\n" +xAux10+", " +xAux11 +", " + xAux12 + ", " + xResult1 +"\n" +xAux20+", " +xAux21 +", " + xAux22 + ", " + xResult2 +"\n\nDividimos el X0 de los renglones 2 y 3 entre el X0 del rengln 1.\n"+ "El resultado lo multiplicamos por el rengln 1 y restamos el rengln obtenido al rengln 2 y 3 respectivamente, obteniendo:\n\n" +xAux00+", " +xAux01 +", " + xAux02 + ", " + xResult0 +"\n"+ prueba2 + "\n"+prueba4+"\n\nRepetimos el proceso. En este caso ya que X0 = 0, dividimos el X1 del rengln 3 entre el X1 del rengln 2.\n" +"El resultado lo multiplicamos por el rengln 2 y restamos el rengln obtenido al rengln 2, obteniendo:\n\n"+xAux00+" " +xAux01 +" " + xAux02 + " = " + xResult0+"\n"+ prueba3 + "\n" + prueba); return(0); }
79
+
1
=1
2
+3
1
-4
2
=9
= -1
Cuando pulse el botn "Calcular" obtendr los pasos que se han realizado para obtener la solucin. Observar que devuelve la solucin Se trata de un Sistema Compatible Determinado. B) Ahora cargue los valores siguientes en las casillas correspondientes: -9 3
1 0 =1, 1=1, 2
= -1.
+5 2 2
= 33
0+ 0-
= -9
=5
Cuando el alumno pulse el botn "Calcular" comprobar que se llega a la situacin de que la tercera ecuacin queda reducida a 0 tanto el sistema le avisa de que NO TIENE SOLUCION. Se trata de un Sistema Compatible Indeterminado con infinitas soluciones. C) Por ltimo cargue los valores siguientes en las casillas correspondientes:
0+ 0
+0
+0
= 0, por lo
2 -2
+5
1
= -3
2
2 -2
+3
1
=5
2
+8
+4
= -4
Cuando el alumno pulse el botn "Calcular" podr comprobar que se llega a la situacin de que la tercera ecuacin queda reducida a 0 80
0
+0
+0
= 12.
5.7. CONCLUSIONES
Hasta el momento los mtodos numricos de bsqueda de races que se haban incluido en el laboratorio virtual han sido mtodos numricos que se utilizan principalmente para la bsqueda en una ecuacin. Adems tienen una representacin grfica que sirve al alumno para interactuar y ver la evolucin del mtodo visualmente. Se ha considerado importante incluir, en el grupo de mtodos numricos de resolucin de races, un mtodo numrico que sirva al alumno para aprender a buscar races en sistemas de ecuaciones de ms de una ecuacin. El mtodo de Gauss es un mtodo sencillo y potente que cumple esta caracterstica.
81
82
6
MTODO DE EULER Y EULER MODIFICADO
6.1. INTRODUCCIN
Las ecuaciones diferenciales aparecen naturalmente al modelar situaciones fsicas en las Ciencias Naturales, Ingeniera, y otras disciplinas, donde hay razones de cambio de una o varias funciones desconocidas con respecto a una o varias variables independientes. Estos modelos varan entre los ms sencillos que envuelven una sola ecuacin diferencial para una funcin desconocida, hasta otros ms complejos que envuelven sistemas de ecuaciones diferenciales acopladas para varias funciones desconocidas. Por ejemplo, la ley de enfriamiento de Newton y las leyes mecnicas que rigen el movimiento de los cuerpos, al ponerse en trminos matemticos dan lugar a ecuaciones diferenciales. Usualmente estas ecuaciones estn acompaadas de una condicin adicional que especifica el estado del sistema en un tiempo o posicin inicial. Esto se conoce como la condicin inicial y junto con la ecuacin diferencial forman lo que se conoce como el problema de valor inicial. En ocasiones, la solucin exacta de un problema de valor inicial es imposible o difcil de obtener en forma analtica.[Negron, n.d]. Por tal razn los mtodos numricos se utilizan para aproximar dichas soluciones. Unos de los mtodos que ayudan a realizar este procedimiento son el mtodo de Euler y Euler mejorado.
83
El mtodo se base en forma general en la pendiente estimada de la funcin para extrapolar desde un valor anterior a un nuevo valor: Nuevo valor = valor anterior + pendiente X tamao de paso.
i+1 = i+
(6.2)
De esta manera la Ec.(6.2) se aplica paso a paso para encontrar un valor en el futuro y as trazar la trayectoria de la solucin. La Figura 21, muestra el procedimiento aplicado en la ecuacin anterior:
84
El mtodo de Euler utiliza la pendiente al inicio del intervalo como una aproximacin de la pendiente promedio sobre todo un intervalo. La primera derivada proporciona una estimacin directa de la pendiente en
=
i
(6.3) y
i.
i,
i),
Sustituyendo esta
i+1
(6.4)
A la Ec.(6.4) se le conoce como el mtodo de Euler. En esta frmula [monografias, 2012] se predice un nuevo valor de por medio de la pendiente que es igual a la primera derivada en el valor original de , este nuevo valor habr de extrapolarse en forma lineal sobre el tamao de paso h Ejemplo 1.-Veamos como emplear el mtodo de Euler para integrar numricamente la siguiente ecuacin diferencial:
Desde
= 0 hasta
= 4, con un tamao de paso h = 0,5. Con la condicin = 1. Obtenga la solucin exacta integrando
= 0 entonces
analticamente y compare los resultados con los obtenidos por el mtodo de Euler. Tabular los resultados de Euler, la solucin real y el error relativo porcentual. Aplicando la frmula de Euler para encontrar la primera aproximacin
85
1 1 2
=0 =1 (
1, 1)
(6.5)
Donde
(6.6)
86
Para entender esta frmula, analicemos el primer paso de la aproximacin, con base en la grfica de la Figura 22:
corresponde a la
pendiente de la recta bisectriz de la recta tangente a la curva en el punto de la condicin inicial y la recta tangente a la curva en el punto ( 1, 1) , donde
1
es la
aproximacin obtenida con la primera frmula de Euler. Finalmente, [monografias, 2012] esta recta bisectriz se traslada paralelamente hasta el punto de la condicin inicial, y se considera el valor de esta recta en aproximacin de Euler mejorada. Ejemplo 1.-Aplicar el mtodo de Euler mejorado, para aproximar (0.5) si: =2 (0) = 1 el punto =
1
como la
Vemos que este es el mismo ejemplo 1 del mtodo anterior. As que definimos h = 0.1 y encontraremos la aproximacin despus de cinco iteraciones. A
87
diferencia del mtodo de Euler , en cada iteracin requerimos de dos clculos en vez de uno solo, el de primero y posteriormente el de .
Para aclarar el mtodo veamos con detalle las primeras dos iteraciones. Primero que nada, aclaramos que tenemos los siguientes datos iniciales:
88
(Euler 1) y el de
. El
proceso debe seguirse hasta la quinta iteracin. Resumimos los resultados en la Tabla 4:
n 0 1 2 3 4 5 0 0.1 0.2 0.3 0.4 0.5 1 1.01 1.040704 1.093988 1.173192 1.28336
Concluimos entonces que la aproximacin obtenida con el mtodo de Euler mejorado es:
(6.7)
Vemos que efectivamente se ha obtenido una mejor aproximacin con este mtodo, reduciendo el error relativo verdadero de un 5.4% hasta un 0.05%. En nuestro tercer mtodo veremos cmo se reduce an ms este error prcticamente a un 0% Ejemplo 2.- Aplicar el mtodo de Euler mejorado para aproximar tenemos: (1,3) si
89
90
que satisface
( , )
Por otro lado calcular el rea que forma la curva intervalo [a, b].
con el eje X en el
Utilizaremos el mtodo de Euler expuesto en el laboratorio virtual para que el alumno aprenda el primero de estos casos.
91
as como el valor de
0.
En la parte central dispone de dos botones, Euler para realizar los clculos por el mtodo de Euler y Euler Modificado para, con los mismos datos de entrada, realizar el clculo por el mtodo de Euler modificado, tal y como se puede apreciar en la Figura 23. En el rea de texto superior se realizan los clculos para los dos primeros pasos del mtodo de Euler. En el paso 1 se sustituyen los valores del enunciado en la frmula de Euler y en el paso 2 se aplica de nuevo la frmula de Euler con los resultados obtenidos en el paso previo. Estos dos primeros pasos se realizan automticamente acorde a los cambios que el alumno haga en los datos del enunciado sin que tenga que pulsar ninguno de los botones.
92
Posteriormente al pulsar el botn Euler en el rea de texto del lado izquierdo se mostrarn el resto de clculos que se deben realizar por el mtodo de Euler para obtener la solucin final, ver Figura 24.
Una vez el alumno ha entendido cmo se realizan los clculos mediante el mtodo de Euler, el laboratorio virtual le da la posibilidad de compararlos con los que se obtienen por el mtodo de Euler Modificado. Para ello el alumno no tiene ms que pulsar el botn Euler Modificado y en el rea de texto de la derecha se mostrarn los clculos por dicho mtodo, ver Figura 25:
93
Habr podido observar que en la parte central, entre los clculos por el mtodo de Euler y los clculos por el mtodo de Euler Modificado se encuentra un rea de texto explicativo. Este rea de texto muestra la frmula de Euler Modificado para que el alumno la tenga a su alcance visual ,al igual que la del mtodo de Euler y pueda ver la diferencia entre ambas, tal y como se puede apreciar en la Figura 23
94
A continuacin se presenta el mtodo MetEuler(). Dispone de un bucle que se ejecuta hasta llegar al valor de la x final, dato que introduce el alumno por pantalla. En cada iteracin se almacena en una posicin del array y el clculo de la suma entre la anterior posicin del array (inicialmente el valor y0 que introduce el alumno) ms el producto obtenido de la multiplicacin de h (tamao de paso) por la evaluacin sobre la funcin de entrada de xaux y la posicin anterior del array. xauxinicialmente toma el valor de x0 introducido por el alumno y aumenta en cada iteracin el valor del tamao de paso h. De esta forma en cada iteracin se va realizando el clculo bajo la frmula de Euler explicada anteriormente. En la variable p se van registrando los clculos que se producen en cada una de las iteraciones. Todos estos clculos se almacenan en una variable de tipo String todosPasosEuler formateada convenientemente que finalmente se mostrar en el rea de texto correspondiente (rea de texto izquierda).
double d; double y[] = new double[20]; y[0]=y0; //Mtodo de Euler public void MetEuler() { NumberFormat nf2 =.getInstance(); nf2.setMaximumFractionDigits(3); y[0]=y0; _view.areaTexto2.setEnabled(true); int i=1; double xaux;double p; todosPasosEuler = ""; //Dependiendo de la 'h' se elige una condicin for( xaux=x0 ; h>0 ? xaux<=xf+0.0001 : xaux>=xf-0.0001 ; xaux+=h ) { System.out.println ("x= "+xaux+" "+"y= "+y[i-1]); y[i]=y[i-1]+h*_view.function.evaluate(xaux,y[i-1]); p = y[i-1]+h*_view.function.evaluate(xaux,y[i-1]); todosPasosEuler = todosPasosEuler +"x= "+nf2.format(xaux)+" "+"y= "+p+ "\n"; i++; }
95
_view.areaTexto2.setText(todosPasosEuler); }
Por otro lado cuando se pulsa el botn Euler modificado se realiza una llamada al siguiente cdigo Java:
//Mtodo de Euler Modificado public void MetEulerMod() { _view.areaTexto.setEnabled(true); todosPasosEulerModif = ""; NumberFormat nf2 = NumberFormat.getInstance(); nf2.setMaximumFractionDigits(3); y[0]=y0; int i=1; double xaux,yp; for( xaux=x0 ; h>0 ? xaux<=xf+0.0001 : xaux>=xf-0.0001 xaux+=h ) { //Se calcula primero una prediccin yp yp=y[i-1]+h*_view.function.evaluate(xaux,y[i-1]); System.out.println ("x= "+xaux+" "+"y= "+y[i-1]); todosPasosEulerModif = todosPasosEulerModif +"x= "+nf2.format(xaux)+" "+"y= "+y[i-1]+"\n"; y[i]=y[i-1]+h/2*(_view.function.evaluate(xaux,y[i-1]) + _view.function.evaluate(xaux+h,yp) ); i++; } _view.areaTexto.setText(todosPasosEulerModif); }
Podemos observar que la idea es muy similar a la del mtodo de Euler con la salvedad de que en este caso en cada iteracin del bucle se aplica la frmula de Euler modificado de tal forma que en cada posicin del array y se almacena el resultado de la suma de la posicin anterior del array ms la evaluacin sobre la funcin de entrada de
aux
de paso dividido entre dos, tal y como indica la frmula de Euler modificado.
Inicialmente para un tamao de paso h = 0,10 se obtienen los siguientes resultados: Por Euler: x= 0 y= 1.1 x= 0,1 y= 1.2200000000000002 x= 0,2 y= 1.362 x= 0,3 y= 1.5282 x= 0,4 y= 1.72102 x= 0,5 y= 1.943122
Por Euler modificado: x= 0 y= 1.0 x= 0,1 y= 1.11 x= 0,2 y= 1.24205 x= 0,3 y= 1.39846525 x= 0,4 y= 1.5818041012500001 x= 0,5 y= 1.7948935318812502 Cambiando el tamao de paso a valor h = 0,08 y pulsando el botn calcular tanto en el mtodo de Euler como en Euler modificado. Obtenemos: Por Euler: x= 0 y= 1.08 x= 0,08 y= 1.1728 x= 0,16 y= 1.2794240000000001 x= 0,24 y= 1.40097792 x= 0,32 y= 1.5386561536 x= 0,4 y= 1.693748645888 x= 0,48 y= 1.86764853755904 Por Euler modificado: x= 0 y= 1.0 x= 0,08 y= 1.0864 x= 0,16 y= 1.18664448 x= 0,24 y= 1.301885300736 x= 0,32 y= 1.4333701577572353 x= 0,4 y= 1.5824505548826373 x= 0,48 y= 1.7505904410488726 97
Ahora cambiando el tamao de paso a valor h = 0,06 y de nuevo pulsando los botones de clculo de cada uno de los mtodos. Por Euler: x= 0 y= 1.06 x= 0,06 y= 1.1272 x= 0,12 y= 1.202032 x= 0,18 y= 1.28495392 x= 0,24 y= 1.3764511552 x= 0,3 y= 1.477038224512 x= 0,36 y= 1.58726051798272 x= 0,42 y= 1.707696149061683 x= 0,48 y= 1.838957918005384 Por Euler modificado: x= 0 y= 1.0 x= 0,06 y= 1.0636 x= 0,12 y= 1.13483848 x= 0,18 y= 1.214187498064 x= 0,24 y= 1.3021482854443551 x= 0,3 y= 1.3992530494848163 x= 0,36 y= 1.506066887942978 x= 0,42 y= 1.623189821617854 x= 0,48 y= 1.7512589525938373
Observe los resultados. Claramente se puede observar que cuanto ms pequeo hacemos el tamao de paso h ms prximos entre s se encuentran los puntos de la curva solucin.
6.7. CONCLUSIONES
Como ya se ha comentado el laboratorio virtual est formado por varios mtodos numricos agrupados en dos grupos. Hasta el momento se han comentado los mtodos numricos de resolucin de races. El siguiente grupo de mtodos numricos es el de integracin. En dicho grupo se incluye el mtodo de Euler y Euler modificado. El mtodo de Euler es un mtodo sencillo y muy bsico para 98
comprender la idea de cmo se resuelven problemas de esta ndole. Adems viene acompaado de un evolutivo del mismo que se le denomina mtodo de Euler mejorado o modificado y que puede ser de utilidad para aquellos alumnos que deseen comparar ambos mtodos. Adems sirve al alumno para aprender sobre la consistencia de un mtodo ya que el mtodo de Euler es consistente porque cuando el tamao de paso h tiende a 0, el error local de truncamiento tiende a 0. Ello nos lleva tambin a la conclusin de que el mtodo de Euler es convergente y adems es estable. Otra nocin bien importante para un alumno y que se la proporciona este mtodo es la de estabilidad absoluta. En este caso la "h" se mantiene fija y nos interesa determinar cuan sensitivo es el mtodo numrico a variaciones en la condicin inicial
0.
99
100
7
MTODO DE LOS TRAPECIOS
7.1. INTRODUCCIN
Para calcular la integral definida, aplicando el Teorema Fundamental del Clculo, es preciso obtener previamente una integral indefinida. Aunque se conocen diversos mtodos para hallar la integral indefinida de una cantidad considerable de funciones, existen funciones para las cuales estos mtodos no son aplicables. Este inconveniente se supera haciendo uso de la integracin numrica. La integracin numrica permite evaluar la integral definida de una funcin continua en un intervalo cerrado con la exactitud deseada. En este apartado vamos a estudiar el mtodo de integracin numrica denominado mtodo de los trapecios. En matemtica el mtodo de los trapecios es un mtodo de integracin numrica, es decir, un mtodo para calcular aproximadamente el valor de la integral definida.
101
La funcin f(x) (en azul) es aproximada por la funcin lineal (en rojo). La regla del trapecio es la primera de las formulas cerradas de integracin de Newton Cotes. Corresponde al caso donde el polinomio de la ecuacin es de primer grado:
(7.1)
102
(7.2)
El rea bajo esta lnea recta es una aproximacin de la integral de () entre los lmites y b:
(7.3)
(7.4)
Que se denomina regla del trapecio. Obtencin de la regla del trapecio Antes de la integracin, la ecuacin se puede expresar como:
(7.5)
= para obtener:
103
(7.7)
(7.8)
(7.9)
(7.10)
Que es la frmula para la regla del trapecio. Geomtricamente, la regla del trapecio es equivalente a aproximar el rea del trapecio bajo la lnea recta que une () y (b). Recuerde que la frmula para calcular el rea de un trapezoide es la altura por el promedio de las bases. En nuestro caso, el concepto es el mismo, pero el trapezoide esta sobre su lado. Por lo tanto, la integral aproximada se representa como:
Cuando empleamos la integral bajo un segmento de lnea recta para aproximar la integral bajo una curva, obviamente se tiene un error que puede ser importante. Una estimacin al error de truncamiento local para una sola aplicacin de la regla del trapecio es:
(7.11)
Donde
si la funcin sujeta a integracin es lineal, la regla del trapecio ser exacta. De otra manera, para funciones con derivadas de segundo orden y de orden superior (es decir, con curvatura), puede ocurrir algn error. Ejemplo 1.-Integre numricamente ( ) Desde a= 0 hasta b = 0.8. Al evaluar la funcin en los lmites f(0)=0.2, y f(0.8)=0.232 sustituyendo la ecuacin se tiene que:
La cual representa un error de E = 1,640533 0.1728 = 1,467733 Que corresponde a un error relativo porcentual de =89.5%. En situaciones reales, tal vez no conozcamos previamente el valor verdadero. Por lo tanto, se requiere una estimacin del error aproximado.
105
que satisface
Por otro lado calcular el rea que forma la curva intervalo [a, b].
con el eje X en el
Utilizaremos el mtodo de los trapecios expuesto en el laboratorio virtual para que el alumno aprenda el segundo de estos casos.
106
Se puede observar en la Figura 27, en la parte superior, la zona en la que introducir el valor de la funcin ( ), los valores mximo y mnimo del eje X para acotar la grfica y el nmero de segmentos. Tambin se dispone de un botn reset que al pulsarlo resetea todo el laboratorio virtual poniendo de nuevo los valores por defecto. En la parte central se dibujar la grfica de la funcin automticamente una vez el alumno introduce la funcin. Por defecto, y al igual que el resto de los laboratorios virtuales, vienen cargados unos valores y una funcin que ayudarn al alumno a dar sus primeros pasos en la simulacin. En la grfica se pueden observar dos cursores, uno amarillo y otro azul. Estos cursores sirven al alumno para definir los valores del intervalo [a, b]. Dichos
107
valores se vern reflejados en la parte inferior del laboratorio virtual para que el alumno pueda ver el valor exacto tanto de a como de b. En esta parte inferior se muestran dos botones. Por un lado el botn Calcular que una vez pulsado muestra al alumno el valor final de la solucin en el campo de texto asociado al mismo. Si el alumno desea ver paso a paso cmo se van desarrollando los clculos dispone de un botn Paso a paso que podr ir pulsando y que en cada pulsacin el sistema le mostrar el clculo realizado en dicho paso. Ver Figura 28
108
Y no mostrar ms mensajes aunque se pulse el botn de paso a paso ya que el sistema detecta que hemos llegado a una solucin al problema planteado.
public void asignarValoresIntervalo(){ a = _view.cursorA.getX(); b = _view.cursorB.getX(); if (a>=b){ _view.alert("atencion", "No permitido","A ser mayor o igual que b"); _view.cursorA.setX(-1); _view.cursorB.setX(1); a = -1; b = 1; } //variables necesarias para el paso a paso pA = a; pB = b; }
no
puede
109
Simplemente pone en dos variables a y b el valor de los cursores A y B respectivamente. Adems realiza un control y es que si detecta que el cursor A se pone por delante de B alerta al usuario de que esto no es posible mediante un mensaje emergente de alerta. En el panel inferior que se muestra en la Figura 27 se sitan los botones calcular, paso a paso y el campo de texto asociado a la variable que almacena el valor de salida (raz). Cuando el alumno pulsa el botn calcular, EJS realiza una llamada al mtodo Java siguiente:
public void integral (){ double h=(b-a)/n; double suma = 0; for(int i=1; i<n; i++){ suma+=_view.function.evaluate(a+i*h); System.out.println (suma); } raiz = (h/2)* (_view.function.evaluate(a)+2*suma+ _view.function.evaluate(b)); System.out.println (raiz); }
A dicha funcin le pasaremos los valores de los extremos del intervalo, y el nmero de divisiones del mismo. Como vemos en la frmula, la funcin calcula el valor medio de la funcin en los extremos del intervalo, y lo guarda en la variable local suma. En la variable raz introduce el resultado final una vez aplicada la frmula de los trapecios. Como tambin se puede observar el laboratorio virtual dispone de un botn reset, el cual al ser pulsado resetea todos los valores de la aplicacin para que el alumno pueda empezar de nuevo con un nuevo ejercicio. El mtodo Java que desarrolla este reseteo es el siguiente:
110
public void reset(){ xmin = -10; xmax = 10; _view.cursorA.setX(-1); _view.cursorB.setX(1); a = -1; b = 1; raiz = 0.00; double x=xmin; _view.trace.clear(); while(x<=xmax){ double y = _view.function.evaluate(x); _view.trace.addPoint(x,y); x = 0.1 + x; } }
Por ltimo podr observar, al igual que en otros casos anteriores, que el laboratorio virtual dispone de un botn paso a paso que permite al alumno realizar una ejecucin de un ejercicio paso a paso mostrndole en cada iteracin los clculos que se van realizando. Cuando se pulsa dicho botn EJS realiza una llamada al siguiente mtodo Java en el que en cada iteracin se realiza el clculo por la frmula de los trapecios. Adems se muestran mensajes emergentes que van indicando al alumno el clculo realizado y los resultados obtenidos.
public void pasoApaso (){ double h=(b-a)/n; sumaPasoAPaso+=_view.function.evaluate(a+m*h); if (contador ==0){ _view.alert("Trapecios", "Clculo de H","h = (ba)/n; "+"("+b+"-("+a+"))/"+n+" = "+h ); _view.alert("Trapecios", "Despejamos", "Calculamos en la funcin "+functionString+ " con (x=a+m*h), es decir: X = "+a+"+"+m+"*"+h+"\nObtenemos: "+sumaPasoAPaso); } else if (contador <n-1) _view.alert("Trapecios", "Despejamos", "Calculamos en la funcin "+functionString+ " con (x=a+m*h), es decir: X = "+a+"+"+m+"*"+h+"\nSumamos al resultado anterior y obtenemos: "+sumaPasoAPaso); m++; contador++; if (contador ==n-1){ raiz = (h/2)*(_view.function.evaluate(a)+2*sumaPasoAPa so+_view.function.evaluate(b));
111
_view.alert("Trapecios", "Resultado final aplicando la frmula",h+"/2*("+functionString+" con (x=a)+2*"+sumaPasoAPaso+"*"+functionString+" con (x=b)) = "+raiz); } }
obtener un intervalo con valor a = 0 y b =2. A partir de este momento se le plantean las siguientes actividades: A) Escriba el nmero de segmentos igual a 2, pulse calcular y anote el resultado (2,68) B) A continuacin ponga el nmero de segmentos igual a 4, pulse calcular y anote de nuevo el resultado (2,62). C) Realize el mismo procedimiento para los valores de segmenteo 8,16,32,64,128 y 823. La actividad le hace ver al alumno que, llegado un punto, por ms que se aumenta el nmero de segmentos el resultado obtenido es practicamente el mismo. Se tratara de una regin de estabilidad en la que por mucho que aumentemos el valor del nmero de segmentos el resultado es absurdo.
112
7.7. CONCLUSIONES
El mtodo de los trapecios es junto con el mtodo de Euler, explicado anteriormente, los mtodos que conforman el grupo de los mtodos de integracin del laboratorio virtual. Como se ha indicado anteriormente el laboratorio virtual pretende mostrar los mtodos numricos bsicos y que se han considerado ms relevantes para ser incluidos en el mismo. El mtodo de los trapecios es un mtodo tambin sencillo y fcil de asimilar y muy til para comprender la resolucin de problemas de integracin. Es un buen mtodo para comporarlo con su acompaante en el presente laboratorio virtual, el mtodo de Euler. Incluyendo el mtodo de los trapecios en el laboratorio virtual un alumno podr apreciar que el mtodo de Euler aproxima la derivada en [ n; constante, concretamente por su valor en
n. n+1
] por una
sera mejor tomar, por ejemplo, como aproximacin constante de la derivada el promedio de sus valores en los extremos del intervalo? Esta aproximacin conduce a la llamada regla del trapecio. Este mtodo es implcito; para calcular hay que resolver un sistema de ecuaciones no lineales. El mtodo de Euler es explcito; el valor explcitamente en trminos del valor anterior mediante una evaluacin de viene dado
contrario, la regla del trapecio es un mtodo implcito; para calcular hay que resolver el sistema de ecuaciones no lineales, en la variable . Lo que en general es computacionalmente costoso. Para evitarlo lo que se hace es determinar como un cero de la funcin mediante el mtodo de Newton.
113
La regla del trapecio converge con un orden mejor que el del mtodo de Euler.
114
8
ESTRUCTURA WEB
Una vez discutido caso por caso cada uno de los mtodos que se utilizan en el presente laboratorio virtual cabe dedicar una seccin a comentar la estructura de la pgina web en la que se enmarcan todos y cada uno de los mtodos numricos explicados anteriormente. Inicialmente nos encontramos con un entorno llamativo para el alumno. La pgina web dispone de un flash llamativo de bienvenida que con un corto fragmento musical de fondo carga la pgina web. Dicho fragmento musical desaparece a los pocos segundos y solamente sonar al entrar en la pgina, no mientras el alumno interacta con cada una de las secciones de la pgina web. Ver Figura 30.
El estilo de la pgina web es un color grisceo con los laterales oscuros para que no molesten a la vista del alumno.
115
En la primera pgina se le muestra al alumno una descripcin de lo que contiene el laboratorio virtual as como una explicacin genrica de cada uno de los dos grupos de algoritmos aqu expuestos. Un men en color verde capta la atencin del alumno. Al pasar el ratn por cada ttulo automticamente se despliegan los enlaces a los laboratorios virtuales. Ver Figura 31.
Se le muestra adems informacin sobre la herramienta EJS y un enlace a la pgina web del autor y a ms documentacin sobre la misma. Ver Figura 32
116
Para captar la atencin del alumno se ha utilizado un pequeo recuadro llamativo que indica al alumno lo que puede llegar a aprender con el laboratorio. Ver Figura 33.
Por ltimo en la parte inferior de la pgina principal se muestran unas noticias, con sus correspondientes enlaces web, que tal vez puedan ser de inters para el alumno y relacionadas con los mtodos que se tratan en el laboratorio virtual. La idea es que estas noticias sean dinmicas y que vayan cambiando segn la actualidad informativa del da a da en cuanto a mtodos numricos se refiere. Ver Figura 34.
117
La estructura que tiene cada una de las pginas que contiene la descripcin de cada mtodo numrico es prcticamente la misma. Se ha considerado dar una estructura similar para que sea ms fcil e intuitivo de cara al aprendizaje del alumno. Bsicamente la estructura de la pgina de cada mtodo numrico se basa en seis puntos: Introduccin. Se da una pequea introduccin del mtodo en cuestin. Descripcin. Se describe con detalle para qu sirve el mtodo a someter a estudio. Ejemplo ilustrativo. Se muestra detalladamente un ejemplo del mtodo que se est tratando, se explica con detalle y se profundiza en los clculos realizados. Laboratorio Virtual. Se muestra el applet desarrollado con la herramienta EJS en el que el alumno podr realizar clculos para multitud de problemas, simulaciones, desarrollos paso a paso, obtencin de resultados, grficas etc.
118
Actividades. Se muestran una serie de actividades que ayudan al alumno a entender y comprender el mtodo numrico. Se trata de actividades enfocadas a interactuar con el Laboratorio Virtual. Comparacin con otros mtodos. Se muestra una comparacin con un mtodo que busque el mismo fin. Se compara con mtodos que se encuentran presentes en el laboratorio virtual y se especifican sus ventajas e inconvenientes con los mismos. Por ltimo, la pgina web dispone de dos secciones ms. Por un lado Enlaces de inters que muestra enlaces que son de inters para el alumno y para el enfoque del laboratorio virtual. Por otro lado una seccin de Contacto que sirva al alumno y toda persona que tenga inters en contactar con el creador del laboratorio para resolver todas las dudas y cuestiones que le puedan surgir al usuario del mismo.
119
120
9
CONCLUSIONES Y TRABAJOS FUTUROS
9.1. CONCLUSIONES
En el desarrollo del Laboratorio Virtual se han extrado multitud de conclusiones. En primer lugar y ms importante es que se ha desarrollado un entorno interactivo til y sencillo enfocado a un pblico objetivo estudiantil de los primeros cursos de ingenieras. Se trata de una herramienta que sirva de ayuda a los alumnos en su aprendizaje docente. Al tratarse de una herramienta web puede estar disponible en cualquier momento y lugar y al alcance de toda aquella persona que muestre inters en los mtodos numricos. Es adems una herramienta fcil de mantener y con un amplio abanico de posibles aadidos para que cada vez contenga ms contenidos y simulaciones fsicas y matemticas y que cada vez pueda englobar un mayor pblico objetivo. Los mtodos numricos son unos de los mtodos de clculos de la actualidad, pero es importante comprender que si bien son herramientas muy poderosas, requieren de usuarios con algunos conocimientos de los modelos numricos utilizados, el campo de aplicacin y sus limitaciones. Tambin es muy importante tener criterio a la hora de analizar e interpretar los resultados obtenidos ya que pueden tentar al alumno a pensar que todo lo que sale de esa caja negra es verdadero y no susceptible de error. 121
Pasando a la parte prctica, su estudio nos puede ayudar a modificar, entender e incluso simplificar algn tipo de software que los maneje, esto resulta ventajoso para el usuario, pues si conoces lo que haces lo puedes usar con ms provecho y optimizacin. El laboratorio virtual ha resultado muy gratificante de desarrollar. Antes de nada porque tuve la oportunidad de investigar y explorar de nuevo el mundo de los mtodos numricos y finalmente porque se puede considerar como una herramienta que puede ayudar a otros estudiantes a comprender e interactuar de una forma ms sencilla con los mtodos numricos. Se trata de un laboratorio virtual que se puede expandir mucho ms all de los mtodos que se tratan en el actual, est abierto a nuevos mtodos que vayan surgiendo, a nuevas ideas e incluso a un dinamismo de conocimientos por parte de aquellos usuarios que hagan uso de l y as lo deseen.
122
BIBLIOGRAFA
Samarski, A.A (2001). Introduccin a los mtodos numricos, Editorial Mir Moscu. Negrn Marrero, Pablo V(n.d). Apuntes de anlisis numrico. En prensa. Seminario Vasquez, Ricardo (n.d). Mtodos numricos para Ingeniera. En prensa. Becerril Espino, Jos (2002). Solucin de Sistemas de ecuaciones lineales mediante el mtodo de Gauss Jordan. Esquembre, Francisco (2009). Easy Java Simulations. Actualizada: 11 Diciembre 2011. [Fecha consulta 05 Junio 2012]. Disponible en http://fem.um.es/Ejs/ Departamento de Fsica (2011). Universidad de Valencia. [Fecha consulta 20 Agosto 2012]. Disponible en http://www.uv.es/~diaz/mn/node20.html Wikipedia (2012). [Fecha consulta 25 Agosto 2012]. Disponible en http://es.wikipedia.org/wiki/Metodo_del_punto_fijo Wikilibros (2012). [Fecha consulta 27 Agosto 2012]. Disponible en http://es.wikibooks.org/wiki/Algebra_Lineal Monografas (2012). [Fecha consulta 15 Septiembre 2012]. Disponible en http://www.monografias.com/trabajos73/metodos-numericos-metodo-eulermejorado/metodos-numericos-metodo-euler-mejorado.shtml
123