PROGRAM ACI ÓN Y M ÉTOD OS N U M ÉRI COS
INTRODUCCIÓN A MACROS DE EXCEL Estructura Fila: Es un conjunto de varias Celdas dispuestas en sentido horizontal. Título de Fila: Está siempre a la izquierda y nombra a las Filas mediante números, que en el caso de Excel 97 van desde el 1 hasta el 65,536. Columna: Es un conjunto de varias Celdas dispuestas en sentido vertical. Título de Columna: Está siempre arriba y nombra a las Columnas mediante letras, que en el caso de Excel 97 van desde la A hasta la Z. Luego de la Columna Z viene la AA, AB, AC, etc.; luego de la AZ viene la BA, la BB, la BC, etc.; y así sucesivamente. Celda: Es la intersección de una Fila y una Columna y en ella se introducen los gráficos, ya se trate de texto, números, fecha u otros datos. Una Celda se nombra mediante el nombre de la Columna, seguido del nombre de la Fila. Por ejemplo, la Celda que es la intersección de la Fila 29 con la Columna F, se denomina F29. Rango: Los rangos son una referencia a un conjunto de Celdas de una Hoja de cálculos. Se definen mediante letras y números. Se denomina mediante la Celda de una esquina del rango (generalmente la superior izquierda), luego dos puntos y la esquina opuesta. Es decir Celda inicial y Celda final del rango, separadas por dos puntos. Por ejemplo, al rango que comprende las Celdas C4, C5, C6, C7, D4, D5, D6, D7, E4, E5, E6 y E7 se lo denomina C4:E7. Al abrir el el programa programa verás la la siguiente siguiente ventana. ventana.
Observa la zona con aspecto de papel cuadriculado. Está ordenada en forma de filas y columnas, formando múltiples cuadros, llamados celdas (que son las intersecciones de las filas con las columnas). En la parte superior figuran las barras de herramientas. No siempre figuran todas, porque se pueden ocultar o mostrar a voluntad. En la figura puedes ver la barra de menú, que contiene los comandos Archivo, Editar, etc. que son la base de todos los itinerarios de órdenes más importantes. Las dos barras que muestra esta pantalla (Estándar y Formato) son las más usadas. Las puedes ocultar o mostrar con el comando Ver. La zona intermedia es la de Trabajo, cuya estructura explicaremos a continuación, y la inferior la barra de estado. Los archivos de Calc reciben el nombre de libros, porque están compuestos de hojas distintas (por defecto tres) Una hoja contiene diferentes celdas distribuidas en filas y columnas, que se parecen a un papel cuadriculado. Las filas están rotuladas con números desde 1 hasta 65536 y las columnas con letras simples o dobles que van desde la A hasta la Z, AA hasta ZZ y AAA hasta la última columna que se nombra con las letras AMJ. Cada celda se nombra mediante su fila y columna. Así por ejemplo la celda B4 será la situada en la fila 4 y columna B.
Observa la zona con aspecto de papel cuadriculado. Está ordenada en forma de filas y columnas, formando múltiples cuadros, llamados celdas (que son las intersecciones de las filas con las columnas). En la parte superior figuran las barras de herramientas. No siempre figuran todas, porque se pueden ocultar o mostrar a voluntad. En la figura puedes ver la barra de menú, que contiene los comandos Archivo, Editar, etc. que son la base de todos los itinerarios de órdenes más importantes. Las dos barras que muestra esta pantalla (Estándar y Formato) son las más usadas. Las puedes ocultar o mostrar con el comando Ver. La zona intermedia es la de Trabajo, cuya estructura explicaremos a continuación, y la inferior la barra de estado. Los archivos de Calc reciben el nombre de libros, porque están compuestos de hojas distintas (por defecto tres) Una hoja contiene diferentes celdas distribuidas en filas y columnas, que se parecen a un papel cuadriculado. Las filas están rotuladas con números desde 1 hasta 65536 y las columnas con letras simples o dobles que van desde la A hasta la Z, AA hasta ZZ y AAA hasta la última columna que se nombra con las letras AMJ. Cada celda se nombra mediante su fila y columna. Así por ejemplo la celda B4 será la situada en la fila 4 y columna B.
Los rótulos de las filas y columnas se encuentran en el borde de la ventana: en la parte superior los de las columnas y a la izquierda los de las filas. Pulsando sobre un rótulo se seleccionará toda la columna o fila. Si se pulsa sobre su intersección arriba a la izquierda, se seleccionará toda la hoja. Una celda se selecciona al pulsar sobre la intersección de los rótulos de filas y de columnas. de filas y de columnas.
Las Barras más importantes están mostradas en la imagen:
Barra de Menús: Abre los distintos menús: Archivo, Editar, .... Barra Estándar: contiene los comandos de Imprimir, Cortar, Pegar, etc. Barra de Formatos: permite cambiar Fuentes, Bordes, Rellenos, etc. Barra de fórmulas: en ella se escriben y corrigen los contenidos de una hoja
Aplicaciones En principio los macros fueron ideados para crear bancos de objetos gráficos específicos para un área de aplicación. Por ejemplo una librería para circuitos (eléctricos) como la que actualmente existe en el banco de macros. En el futuro podría crearse una librería más extensa de macros útiles en diversas áreas.
Cada autor puede desarrollar los macros que le convenga, ya sea para ahorrarse trabajo al observar que utiliza varias veces la misma construcción, para uniformizar la presentación de varias escenas o para organizar mejor su trabajo. Los macros son una herramienta abierta cuyas aplicaciones las definirán los propios usuarios. Como ejemplos de aplicación de macros pueden verse Ley De Ohm y la última escena de Lentes Esféricas y los diversos ejemplos que hay en las páginas del Banco de Macros, en especial se recomienda mirar y estudiar los ejemplos del macro dinámica/masa por ser uno que desde el punto de vista gráfico es muy sencillo, pero que en cambio tiene una gran funcionalidad que hereda gracias a sus auxiliares. a grandes rasgos podemos comentar que las 4 grandes "áreas" donde se aplican las macros son: 1. Automatización de tareas y procesos que involucran muchos pasos 2. Creación de nuevas funciones a medida (aparte de las que ya posee Excel). 3. Creación de nuevos comandos, complementos y menús. 4. Creación de completas aplicaciones a medida. Como queda en claro, con las macros podemos automatizar y crear. Veamos un poco más en detalle estas 4áreas donde aplicaremos las macros. Automatización de procesos: supongamos que todos los días debemos trabajar en nuestro libro Excel en el cual debemos seleccionar un rango, centrarlo, cambiarle la fuente, poner la fuente en cursiva, aplicarle negrita y finalmente aplicarle bordes a toda la selección. Excel trae incorporada unas 330 funciones estándar las cuales se pueden utilizar en forma aislada o en forma combinada (anidadas). Sin embargo suele suceder que justo la función que necesitamos no existe. Nuevamente, las macros vienen a nuestra salvación. Podemos programar funciones a medida que hagan exactamente lo que nosotros queremos. Y esas funciones se comportarán igual que las de Excel (aparecerán en el menú de funciones en la categoría que nosotros indiquemos, tendrán sus respectivos argumentos, etc.) Creación de nuevos comandos, complementos y menús: Excel trae una gran cantidad de comandos y menús predefinidos que nos asisten para las operaciones más habituales. Las macros nos permiten crear nuestros propios comandos y menús personalizados, e incorporarlos al Excel. La utilidad de los mismos depende tan solo de nuestras necesidades. Los complementos Excel también están creados con macros. Si ves en el menú Herramientas > Complementos verás una lista de los que tienes instalado en tu Excel. Los mismos
suelen ser distribuidos de forma gratuita o también se compran. Su utilidad reside en agregar alguna funcionalidad extra al Excel. Creación de aplicaciones a medida: Excel es utilizado en diversos campos y por una gran cantidad de usuarios. Las macros te permitirán construir complejas y elegantes aplicaciones para cualquier uso que quieras darles.
Errores comunes Conforme nos vamos familiarizando con el uso de las formulas, van surgiendo algunos errores que usualmente son causados por un manejo inadecuado de la sintaxis o la incompatibilidad con la configuración de la computadora. A continuación se describen los errores más frecuentes. 1. El valor de error #¿NOMBRE? aparece cuando Excel no reconoce texto en una formula. Para solucionar este conflicto se debe revisar la sintaxis e la formula o, si es una macro, verificar que esté en el módulo de la hoja en la que se está trabajando. 2. El valor de error #¡VALOR! Surge cuando se utiliza un tipo de argumento u operando incorrecto, por ejemplo, cuando evaluamos una función numérica en una celda que contiene algo que no sea un número (por defecto, el valor de una celda vacía es cero). 3. El valor de error #¡NUM! Aparece cuando existe un problema con algún número en una fórmula o función. Por ejemplo, si evaluamos una función logarítmica en cero o en un número negativo. 4. El valor de error #¡DIV/0! se produce cuando se divide una fórmula entre cero.
5. El valor de error #¡REF! se genera cuando una referencia a una celda no es válida. 6. Dependiendo de la forma en la que se encuentre configurado el sistema Windows, debe usarse punto o coma para separar la parte decimal de los números a evaluar. Para personalizarlo, se debe entrar al panel de control y en la Configuración regional se selecciona `Números'. En la primera cejilla, Símbolo Decimal' se selecciona el punto o la coma, según sea el caso. Finalmente, se presiona el botón Aplicar y luego Aceptar.
7. Existe una circunstancia, que es comúnmente confundida con un error esta es cuando el sistema trabaja con poca precisión y se presentan valores numéricos no
esperados. Por ejemplo, si el formato de una celda se ha definido para dos posiciones, entonces la operación +1.999+1 dará como resultado el valor de 2, que no es otra cosa que el resultado de la suma redondeado a dos decimales. El valor correcto se obtiene aumentando la precisión con el icono:
Gráficas en Excel
Microsoft Office Excel 2007 admite muchos tipos de gráficos para ayudarle a mostrar datos de forma comprensible para su audiencia. Cuando crea un gráfico o cambia el tipo de uno existente, puede seleccionar uno de los tipos de gráficos siguientes .
Gráficos de columnas
Gráficos de líneas
Gráficos circulares
Gráficos de barras
Gráficos de área
Gráficos XY (Dispersión)
Gráficos de cotizaciones
Gráficos de superficie
Gráficos de anillos
Gráficos de burbujas
Gráficos radiales
Otros tipos de gráficos que puede crear en Excel
Ejemplo: Gráficos de columnas Se pueden trazar datos que se organizan en columnas o filas de una hoja de cálculo en un gráfico de columnas. Este tipo de gráfico es útil para mostrar
cambios de datos en un período de tiempo o para ilustrar comparaciones entre elementos. En los gráficos de columnas, las categorías normalmente se organizan en el eje horizontal y los valores en el eje vertical.
Los gráficos de columnas tienen los siguientes subtipos de gráfico:
Columnas agrupadas y columnas agrupadas en 3D Los gráficos de columnas agrupadas comparan valores entre categorías. Un gráfico de columnas agrupadas muestra valores en rectángulos verticales en 2D. Un gráfico de columnas agrupadas en 3D simplemente muestra los datos con perspectiva 3D; no se usa un tercer eje de valores (eje de profundidad).
Gráficos de superficie Se pueden trazar datos que se organizan en columnas o filas de una hoja de cálculo en un gráfico de superficie. Un gráfico de superficie es útil cuando busca combinaciones óptimas entre dos conjuntos de datos. Como en un mapa topográfico, los colores y las tramas indican áreas que están en el mismo rango de valores. Puede utilizar un gráfico de superficie cuando ambas categorías y series de datos sean valores numéricos.
Editor de Visual Basic Visual Basic para aplicaciones es una combinación de un entorno de programación integrado denominado Editor de Visual Basic y del lenguaje de programación Visual Basic, permitiendo diseñar y desarrollar con facilidad programas en Visual Basic. El té rmino “para aplicaciones” hace referencia al hecho de que el lenguaje de programación y las herramientas de desarrollo están integrados con las aplicaciones del Microsoft Office (en este caso, el Microsoft Excel), de forma que se puedan desarrollar nuevas funcionalidades y soluciones a medida, con el uso de estas aplicaciones. El Editor de Visual Basic contiene todas las herramientas de programación necesarias para escribir código en Visual Basic y crear soluciones personalizadas. Este Editor, es una ventana independiente de Microsoft Excel, pero tiene el mismo aspecto que cualquier otra ventana de una aplicación Microsoft Office, y funciona igual para todas estas aplicaciones. Cuando se cierre la aplicación, consecuentemente también se cerrará la ventana del Editor de Visual Basic asociada. El Editor de Visual Basic, VBE por sus siglas en inglés, es un programa independiente a Excel pero fuertemente relacionado a él porque es el programa que nos permite escribir código VBA que estará asociado a las macros. Existen al menos dos alternativas para abrir este editor, la primera de ellas es a través del botón Visual Basic de la ficha Programador. Botón Visual Basic para abrir el editor de código
El segundo método para abrir este programa es, en mi opinión, el más sencillo y rápido y que es a través del atajo de teclado: ALT + F11. El Editor de Visual Basic contiene varias ventanas y barras de herramientas.
Editor de Visual Basic para Aplicaciones En la parte izquierda se muestra el Explorador de proyectos el cual muestra el proyecto VBA creado para el libro actual y además muestra las hojas pertenecientes a ese libro de Excel. Si por alguna razón no puedes visualizar este módulo puedes habilitarlo en la opción de menú Ver y seleccionando la opción Explorador de proyectos. Mostrar el explorador de proyectos
El Explorador de proyectos también nos ayuda a crear o abrir módulos de código que se serán de gran utilidad para reutilizar todas las funciones de código VBA que vayamos escribiendo. Dentro del Editor de Visual Basic puedes observar una ventana llamada Inmediato que está en la parte inferior. Esta ventana es de mucha ayuda al momento de escribir código VBA porque permite introducir instrucciones y observar el resultado inmediato. Además, desde el código VBA podemos imprimir mensajes hacia la ventana Inmediato con el comando Debug.Print de manera que podamos depurar nuestro código. Si no puedes observar esta ventana puedes mostrarla también desde el menú Ver. El área más grande en blanco es donde escribiremos el código VBA. Es en esa ventana en donde escribimos y editamos las instrucciones VBA que dan forma a nuestras macros. Es importante familiarizarnos con el Editor de Visual Basic antes de iniciar con la creación de macros.
Tipos de Macros. Macros de Excel: Las macros se pueden agrupar en dos categorías principalmente:
Macros de funciones. Macros de comandos.
Macros de funciones: Si ejecuta frecuentemente una tarea en Microsoft Excel, puede automatizarla mediante una macro. Una macro consiste en una serie de comandos y funciones que se almacenan en un módulo de Visual Basic y que puede ejecutarse siempre que sea necesario ejecutar la tarea. Una macro se graba igual que se graba música en un casete. A continuación, se ejecuta la macro para que repita los comandos. Con el Editor de Visual Basic, se pueden modificar macros, copiar macros de un módulo en otro, copiar macros entre diferentes libros, cambiar de nombre a los módulos que almacenan las macros o cambiar de nombre a las macros.
Macros de comandos La creación de estas macro funciones consiste en poner una serie de ARGUMENTOS, en las cuales podemos ir poniendo los datos que lleva una función normal de Excel para Windows y al final le indicamos que operaciones hacer con estos ARGUMENTOS y de esta manera se optimiza el uso de varias fórmulas para llegar a un resultado. Es decir la creación de una función simplifica el uso de varias fórmulas, dejándolas como una sola. Dentro de la codificación de macros de Excel para Windows se tiene dos grupos de códigos. Visual Basic Macros de Excel Macros desde Visual Basic
Es un lenguaje (Codificación), que se puede utilizar, como lenguaje común entre los diferentes programas que se tiene en el Microsoft Office, cabe mencionar que está basado en un Lenguaje llamado Visual Basic, pero no tiene mucho que ver con él. La macros de Visual Basic están basadas en módulos, que por tal hecho se vuelven más complicadas, teniendo como ventaja que son compatibles dentro de varias aplicaciones, de esta manera se tendría un lenguaje común de macros entre varios programas, con lo cual se logra que se pierda menos tiempo en realizar una macro en alguno de estos programas. Por esta razón es que las macros de Visual Basic es visto en un curso en particular.
Grabar Macro y ejecutar una macro La grabadora de macros funciona de manera similar a una grabadora de cintas. Una graba lo que la persona dice, otra graba lo que el usuario hace. Grabar Macro Antes de grabar o escribir una macro hay que tener en cuenta los siguientes puntos: 1. Planifique los pasos y los comandos que desea que ejecute la macro
2. Si se comete algún error mientras se graba la macro, también se grabarán las correcciones que se realicen. 3. Cada vez que se grabe una macro, ésta se almacenará en un nuevo módulo adjunto a un libro. Al grabar una macro, Excel almacena información sobre cada paso dado cuando se ejecuta una serie de comandos. A continuación, se ejecuta la macro para que repita los comandos. Si se comete algún error mientras se graba la macro, también se graban las correcciones que se realicen. Visual Basic almacena cada macro en un nuevo módulo adjunto a un libro. Para grabar una macro seleccione del menú Herramientas el comando Grabar macro y después del submenú Grabar nueva macro.
Al hacerlo aparece la siguiente caja de diálogo:
Se debe asignar un Nombre de la macro junto con una Descripción, aunque Excel para Windows siempre asigna estos predeterminados. Almacenar en son los posibles lugares donde se puede alojar la macro que se está grabando, ya sea en Este libro, en un Nuevo libro o en el Libro de macros personal. En la opción Método Abreviado aparece que se activara con la tecla Control (CTRL) + la letra que usted indique, Ejemplo m La macro se activara cuando esté lista con la tecla Control + m Al presionar Aceptar la grabación se inicia. En este momento, todas las acciones que realice se estarán registrando por Excel para Windows. Para finalizar la grabación seleccione del menú Herramientas el comando Grabar macro y después
del submenú Finalizar grabación, o presione el botón estarse grabando una macro.
que aparece al
Referencias relativas Las macros se pueden grabar ya sea con referencias absolutas o relativas. Para indicarlo, seleccione del menú Herramientas el comando Grabar macro y después del submenú Usar referencias relativas. A menos que esta opción esté desactivada, la Grabadora de macros usará referencias relativas, no absolutas, para las celdas de una hoja de cálculo.
Botón de finalizar Grabación
Botón de Referencias Relativas
Ejecutar una macro Para entender la forma de ejecutar una macro podemos utilizar otra vez la analogía con la grabadora. La voz que se reproduce en la grabadora se escucha en la bocina, y de la misma forma, la macro que se reproduce en la grabadora se ejecuta en Excel para Windows.
La ejecución de la macro se puede hacer de distintas formas. Si tiene asignado una combinación de teclas de método abreviado con éstas se puede iniciar la ejecución. Se puede ejecutar una macro seleccionándola de una lista en el cuadro de diálogo Macro. Para que una macro se ejecute cada vez que haga clic en un botón determinado o presione una combinación de teclas específica, asigne la macro a un botón de la barra de herramientas, a un método abreviado de teclado o a un objeto gráfico de una hoja de cálculo. Otra forma de ejecutar una macro es utilizando del menú Herramientas el comando Macro. Al seleccionar esta opción aparece la siguiente caja de diálogo:
De las macros listadas, se selecciona la deseada y se presiona Ejecutar. También se puede ejecutar Paso a paso para revisar los procedimientos que va realizando.
FUNDAMENTOS DE PROGRAMACION DE VISUAL BASIC (VBA) EN EXCEL Elementos de programación en VBA Un programa computacional escrito mediante cualquier lenguaje de programación puede verse a grandes rasgos como un flujo de datos, algunos jugando el papel de datos de entrada, otros son datos que cumplen alguna función temporal dentro del programa y otros son datos de salida. A lo largo del programa es muy frecuente que sea necesaria la entrada en acción de otros programas o procesos. A mayor complejidad del problema que resuelve el programa, mayor es la necesidad de programar por aparte algunos segmentos de instrucciones que se especializan en una tarea o conjunto de tareas. Hay tres tipos de estructuras básicas que son muy utilizadas en la programación de un algoritmo, a saber, la estructura secuencial, la estructura condicional y la repetitiva. A continuación se explica, con ejemplos programados como macros de Excel, estas estructuras. También se incluyen los programas en seudocódigo y diagramas de flujo para explicar de un modo más grá fico la lógica del programa. El uso de estos últimos es cada vez menor, pues el seudocódigo por lo general es sufici entemente claro y se escribe en lenguaje muy cercano al lenguaje natural.
Flujo secuencial
El flujo secuencial consiste en seguir una secuencia de pasos que siguen un orden predeterminado. Por ejemplo, un programa que a partir de un número N de días, calcula la cantidad de segundos que hay en esta cantidad de días. Este programa se puede ver como una secuencia de varios pasos: Inicio: Ingresa el número N de días Paso 1: H = 24*N, para determinar la cantidad de horas Paso 2: M = 60*H, para determinar la cantidad de minutos. Paso 3: S = 60*M, para determinar la cantidad de segundos. Paso 4: Retorne S. Fin
La macro correspondiente a esta secuencia de cálculos puede escribirse como sigue:
Flujo condicional (If - Else)
Un flujo condicional se presenta en un programa o procedimiento que debe escoger una acción o proceso a ejecutar, dependiendo de condiciones que puedan cumplirse. El caso más sencillo ocurre cuando el programa verifica si una condición se cumple y en caso de ser verdadera ejecuta un proceso, en tanto que si es falsa ejecuta otro proceso. En VBA tenemos la instrucción If...Then...Else Ejecuta condicionalmente un grupo de instrucciones, dependiendo del valor de una expresión. Sintaxis
If condición Then instrucciones Else instrucciones – else
Puede utilizar la siguiente sintaxis en formato de bloque: If condición Then instrucciones Else If condición Then Instrucciones - elseif ... Else instrucciones-else End If
En la ayuda del editor de Visual Basic, tenemos acceso a la referencia del lenguaje. Ejemplo En este ejemplo veremos cómo usar la instrucción If...Then...Else Obtener un program a que calcule aproximaciones de √2, sabiendo que la sucesión converge a√2, definida en forma recurrente mediante la relación:
El programa deberá estimar el error absoluto de las aproximaciones y será capaz de escribir un mensaje de éxito o de fracaso, dependiendo de si el error absoluto es o no menor que una tolerancia dada. Para los resultados que aparecen en la gráfica anterior pueden programarse las siguiente macros para ser evaluadas en cada columna:
El diagrama siguiente ilustra la forma en que esta última función de verificació n actúa con base en el valor de sus dos parámetros de entrada:
Flujo repetitivo (For-Next, While-Wend, Do While-Loop)
El flujo repetitivo se presenta en un algoritmo cuando se requiere la ejecución de un proceso o parte de un proceso sucesivamente, hasta que ocurra una condición que permita terminar. Este tipo de flujos repetitivos se pr esentan en tres formas que obedecen a maneras diferentes de razonarlos pero que en el fondo hacen lo mismo:
Utilizar un contador que empiece en un número y termine en otro, ejecutando el proceso cada vez que el contador tome un valor distinto Mientras una condición sea verdadera, ejecutar un proceso y regresar a la condición. Ejecutar un proceso, hasta que una condición deje de cumplirse.
En VBA tenemos las siguientes instrucciones para realizar procesos iterativos: 1. For ... Next Repite un grupo de inst rucciones un número especificado de veces. Sintaxis (las
instrucciones entre „[ ]‟ son instrucciones adicionales)
2. While...Wend Ejecuta una serie de instrucciones mientras una condición dada sea True. Sintaxis
No hay un Exit While. En una subrutina, si fuera necesario, se podría usar Exit Sub 3. Una instrucción muy parecida a While pero más eficiente es Do Sintaxis
Ejemplo
Para ilustrar estas formas de realizar un flujo repetitivo, vamos a aproximar la suma de una serie alternada común error estimado menor que una cantidad tol dada. Consideremos la serie alternada
La suma parcial N -ésima viene dada por
es decir
De acuerdo con la teoría de series alternadas, la serie convergente. Si su suma es S, al aproxi-marla con la suma parcial
la aproximación es menor que
es , el error de
es decir
Rangos Un rango en Excel corresponde a una selección de celdas. Una selección de las celdas de una fila o una columna se maneja en Excel como una matriz de orden 1 × n o de orden n×1 (un vector). La selección de un bloque de celdas se maneja como una matriz n×m. Si una celda está en blanco, se lee un cero. Ejemplo Promedio simple. Consideremos una tabla con 5 notas, todas con igual peso.
Para calcular el promedio simple, en cada fila, vamos a hacer una macro que recibe un rango, cuenta las notas, suma y divide entre el número de notas.
En primera celda de la columna Promedio, llamamos a la macro con: PROMEDIO (C52:G52) pues en este caso el rango es C52:G52.
Subrutinas (Edición y ejecución) Las subrutinas o procedimientos es otro de los tipos básicos de programas en Visual Basic. Una descripción de la sintaxis de una subrutina que no es completa,
pero sí suficiente para los alcances de este material es la siguiente Sintaxis: Sub Nombre-de-Subrutina (lista-argumentos) instrucciones End Sub
o también [Private | Public] [Static] Sub Nombre-de-Subrutina (lista-argumentos) instrucciones End Sub
Las partes entre corchetes indican que son opcionales. Además: Public. Es opcional. Indica que la subrutina puede ser llamada por todas las demás subrutinas sin importar donde se encuentre.
Private. Es opcional. Indica que la subrutina puede ser llamada solamente por otras subrutinas que se encuentren en el mismo módulo. Static. Es opcional. Indica que las variables locales de la subrutina se mantienen constantes de una llamada a otra. El ámbito de acción de esta declaración no incluye a variables declaradas fuera de la subrutina. Nombre-De-Subrutina. Es requerido. Indica el nombre de la subrutina. lista-argumentos. Es opcional e indica las variables que conforman los argumentos con que una sub-rutina es llamada. Para separar una variable de otra se escribe una coma. instrucciones. Es opcional y conforma el conjunto de instrucciones que son ejecutadas a lo largo de la subrutina. Ejemplo Elevar al cuadrado los valores de una selección (Ejecutar desde la ventana de ejecución de macros). Podemos implementar una subrutina en una hoja, que recorra una selección hecha con el mouse y que vaya elevando al cuadrado el valor de cada celda.
La macro se aplica a los datos que están actualmente seleccionados
Para editar la subrutina, vamos al editor VB (Alt-F11) y hacemos doble-clic sobre (Hoja1)
Escribimos el código, compilamos (en menú Depuración), guardamos y nos devolvemos a la hoja.
Para ejecutar la macro seleccionamos la tabla con el mouse y levantamos la ventana de ejecución de macros(Alt-F8) y damos clic en ‟Ejecutar‟
Nota: Esta subrutina también se puede editar en un módulo. Para ejecutarla se procede de la misma forma.
Matrices dinámicas Cuando hacemos una selección con el mouse, es conveniente entrar los valores seleccionados en una matriz dinámica, es decir, una matriz que se ajuste a la cantidad de datos seleccionada y que, eventualmente, se pueda recortar o hacer más grande. Una matriz dinámica mtr1de entradas enteras se declara así:
Las instrucciones siguientes cambian el tamaño de la matriz mtr1 y la inicializa. Observe el uso de Redim para cambiar el tamaño de la matriz dinámica.
Usando Preserve se puede cambiar el tamaño de la matriz mtr1pero sin borrar los elementos anteriores. Redim Preserve mtr1(15) ‟ Cambia el tamaño a 15 elementos.
INTERPOLACÓN Dada una tabla de valores (xi, fi) se desea estimar f(x) para valores de x que no se encuentran en la tabla. Interpolación directa En el caso más usual, se desea pasar un polinomio por los datos. En el ejemplo mostrado en la figura 1, debemos pasar un polinomio de orden 4 por estos puntos. Este polinomio es de la siguiente forma: P4(x) = c1x4 +c2x3 +c3x2 +c4x+c5. (1) El problema de interpolación es encontrar los valores de las constantes ci que hagan que el polinomio pase por los datos, es decir, que P4(xi) = fi. Sustituyendo los cinco valores de xi se genera el siguiente sistema de 5 ecuaciones con 5 incógnitas:
(2)
Resolviendo obtenemos los valores de los coeficientes ci:
(3)
Una vez que se tiene el vector c se puede escribir el polinomio de interpolación,
P4(x)=0.0323x4 −0.4581x3 + 2.3330x2 −4.2102x + 2.3393 y se puede interpolar para cualquier valor de x. En general, dados unos datos de la forma
(4)
x x1 x2
…
f f1 f2
…
xn+1 fn+1
0.4 2.5 4.3 5.0 6.0
1.00 0.50 2.00 2.55 4.00
Figura 1: Dado un conjunto de datos el valor correspondiente
se desea encontrar para cualquiera
El polinomio de orden n esta dado por
donde los coeficientes se obtienen de resolver el sistema de ecuaciones dado por
A la forma anterior de obtener directamente los coeficientes
generando un
sistema de n ecuaciones con n incógnitas se le denomina interpolación directa. El método de interpolación directa tiene el problema de que las ecuaciones que se generan están mal condicionadas en el caso general a medida que se incrementa el orden del polinomio de interpolación debido a que se tienen valores de . Debido a lo anterior, se han ideado otros métodos de interpolación. El polinomio de interpolación es único, es decir, existe solamente un polinomio de orden n que pase por datos. Los demás métodos de interpolación escriben este polinomio de formas que resultan más sencillas de evaluar.
INTERPOLACIÓN DE NEWTON
Interpolación es, a partir de una serie de puntos, obtener una ecuación cuya curva pase por todos ellos o lo más cerca posible. El método de interpolación de Newton es un poco más complicado que el de Lagrange, pero como todo lo de Newton, es mas preciso. Por supuesto que este método tiene todo un desarrollo teórico para llegar a la ecuación general, pero es demasiado largo y para fines prácticos lo que sirve al final es solo la forma de realizar el método y como aplicarlo. La ecuación general para este método es la siguiente:
Lo importante de este método o la parte interesante es el cálculo de las b's. Aquí es donde el método toma su nombre de diferencias divididas. Hay distintas formas de hacerlo, pero una de las que más se recomiendan porque es clara y fácil es la siguiente: Primero se ponen en 2 columnas acomodados de tal modo que se correspondan todas las x y las f(x) que se desean interpolar. Después se hacen a su lado tantas columnas como puntos son -1, así si son 5 puntos se hacen 4 columnas. Así para el caso de tener 5 puntos el acomodo quedaría más o menos así:
X
f(x)
f(xi,xi)
x0
f(x0)
f(x1,x0) f(x2,x1,x0)
x1
f(x1)
f(x2,x1)
x2
f(x2)
f(x3,x2) f(x3,x2,x1)
x3
f(x3)
x4
f(x4)
La notación
f(xi,xi,xk)
... f(x3,x2,x1,x0)
f(x4,x3,x2,x1,x0) f(x4,x3,x2,x1)
f(x4,x3) f(x4,x3,x2)
se interpreta de la siguiente manera: , así como
es:
. Para la notación es: , esto para
...
y así se van obteniendo sucesivamente todos los valores de b que son los que quedan en la primera celda de arriba para abajo en todas las columnas(en las que aparece la leyenda cuando pasas el mouse en el ejemplo de arriba).
Con este ejemplo se verá mas claramente de lo que se habla: x
f(x)
-3
2
7
-1
17
9
27
11
_
_
_
_
_
_
_
_
_
Una vez obtenidos dichos valores simplemente se sustituyen en la ecuación general, se simplifica dicha ecuación y se tiene una cuya curva pasa casi exactamente por todos los puntos especificados.
El método de Newton-Raphson es un método de optimización iterativo que se basa en aproximar la función a optimizar por medio de la serie de Taylor hasta orden 2. Tiene la ventaja sobre el método de ascenso mas rápido que no requiere un proceso iterativo para determinar hasta donde moverse.
Suponga que se desea minimizar la función f(x) con n variables y que esta se aproxima utilizando el desarrollo de Taylor hasta orden. Así
Si la aproximación de f(x) por (x) es buena, un mínimo relativo f(x) se podría aproximar por un mínimo relativo de por (x). Supongamos que es un mínimo relativo de (x), entonces es un punto estacionario para (x), así ( ) = 0. Desarrollando el gradiente de (x), sustituyendo por x e igualando a 0 tenemos:
Si la matriz hessiana es invertible tenemos que: La expresión anterior se usa como una ecuación de recurrencia para dado un punto inicial generar una sucesión de puntos que deben converger al mínimo local de f(x). Como calcular la inversa de una matriz tiene una mayor complejidad que resolver un sistema de ecuaciones , la expresión
se obtiene resolviendo el sistema |
Ejemplo Ejecute dos iteraciones del método de Newton-Raphson con la función:
partiendo del punto P(0.3, 0.6) Solución Como
tenemos:
Por tanto,
( ) Con estos cálculos procedemos a hacer la siguiente tabla: (en ella, la coma se usa para indicar que los puntos deben considerarse como vector columna)
INTERPOLACION CON ESPACIOS NO EQUIDISTANTES O INTERPOLACION DE LAGRANGE Si se presenta una función tabulada de la forma:
Entonces el polinomio:
O bien:
los coeficientes , se determinan de tal modo que el polinomio pase por todos y cada uno de los puntos conocidos de la función, entonces si se evalúa la función anterior para se tiene : donde:
Sustituyendo en la ecuación de Lagrange
o simplemente :
DIFERENCIACIÓN Método de diferencias finitas La aproximación por medio de diferencias finitas es el método más antiguo aplicado para obtener la solución numérica de ecuaciones diferenciales. Se considera que la primera aplicación ha sido desarrollada por Euler en 1768.
Las bases del método de diferencias finitas (MDF) consisten en la construcción de una malla de una manera estructurada, donde los nodos de la misma, en un espacio n dimensional, están localizados en las intersecciones de n familias de líneas rectas, el reemplazo de las derivadas continuas de la ecuación diferencial por las expresiones equivalentes en diferencias finitas y la resolución del sistema de ecuaciones que queda planteado como consecuencia de la anterior sustitución.
El MDF es, tal vez, el método más simple para aplicar, particularmente para mallas con una geometría uniforme. Su mayor desventaja consiste en su incapacidad para tratar efectivamente la solución de problemas sobre formas geométricas irregulares.
Discretización del dominio Para obtener la solución numérica de una ecuación diferencial en derivadas parciales utilizando el MDF se debe, como primer paso, discretizar el dominio. Para ello, el dominio continuo del problema en estudio es reemplazado por una malla. Las intersecciones de las líneas que constituyen la malla son denominadas nodos y es en donde se calcula la solución numérica de la ecuación diferencial parcial.
Así, por ejemplo, para discretizar el dominio D(x,t) de un problema de propagación unidimensional se deberán definir los tamaños de paso tanto temporal como espacial. Estos tamaños de paso son determinados por medio de las expresiones:
y son dos números enteros positivos, L es la longitud del dominio espacial y indica el tiempo final en que se estudia el problema en cuestión. donde
La división del dominio espacial en partes iguales de ancho hx, y del dominio temporal en partes iguales de “ancho” ht, da como resultado la discretización del dominio al trazar líneas verticales y horizontales a través de los puntos de coordenadas donde:
Aproximaciones en diferencias finitas El próximo paso para la resolución numérica de una ecuación diferencial parcial utilizando el MDF es el reemplazo de las derivadas continuas de la ecuación diferencial por las expresiones equivalentes en diferencias finitas. Esto se logra utilizando el desarrollo en serie de Taylor de la variable dependiente alrededor de un punto particular de la malla. Para ello, la variable dependiente en un nodo de la malla es indicada utilizando como subíndice y superíndice los índices que se utilizan para denotar dicho nodo. Así, por ejemplo, la función T(x, t) en el nodo (i;j) es expresada de la siguiente manera:
Para ejemplificar el procedimiento de aproximación, se considerará la derivada parcial de primer orden de la función T con respecto al tiempo. Para ello, se utilizará el desarrollo en serie de Taylor de T en ( ) y se lo evaluará en
). De esta manera se obtiene:
(
donde Rm+1 es el término residual que está dado por:
El término residual R m+1 es el error asociado con el truncamiento de la serie de Taylor. Es importante conocer el orden de dicho error, es decir, conocer la forma en que el error tiende a cero cuando ht → 0. Como se puede observar, el término residual Rm+1 depende de ht m+1, por lo tanto, cuando ht → 0, el error tenderá a cero como htm+1. En consecuencia, el orden de truncamiento de la serie de Taylor para aproximar m+1 T j+1 ). i es m+1. Esto es indicado con el símbolo O(ht Si se despeja la derivada parcial de primer orden de la función T con respecto al tiempo resulta:
donde
En particular, si se escribe el desarrollo en serie de Taylor de primer orden, entonces, la expresión anterior está dada por:
donde el término de error es:
Una aproximación en diferencias finitas para la derivada temporal de primer orden se obtiene despreciando el término de error:
El término de error, que fue despreciado, se denomina error de truncamiento de la aproximación en diferencias finitas para la derivada temporal de primer orden de la función T. La aproximación recién obtenida es de primer orden y es llamada aproximación de diferencias progresivas. Del mismo modo, puede conseguirse una aproximación de diferencias regresivas de primer orden. Para ello, se escribe el desarrollo en serie de Taylor de T en (xi; t j) y se lo evalúa en (x i; t j-1).
Para poder obtener una aproximación en diferencias finitas para la derivada parcial de segundo orden de la función T con respecto al espacio, es necesario escribir el desarrollo en serie de Taylor de T de orden tres en (x i; t j). Evaluando dicho desarrollo en (x i-1; t j) y en (xi+1; t j) se obtiene:
Despreciando el término de error, se obtiene una aproximación de diferencias finitas de segundo orden:
Esta aproximación es denominada de diferencias centradas. Trabajando de manera similar, es posible obtener las siguientes aproximaciones en diferencias finitas:
Solución en diferencias finitas La solución en diferencias finitas de una ecuación diferencial parcial se obtiene al reemplazar cada una de las derivadas parciales exactas en la ecuación diferencial por su correspondiente aproximación en diferencias finitas. De esta manera, es posible discretizar la ecuación diferencial parcial. Al aplicar la ecuación discretizada en cada punto de la malla se obtiene un sistema de ecuaciones denominado sistema de ecuaciones de diferencias finitas. El proceso de aproximación requiere de la selección de un método adecuado para obtener la solución del sistema de ecuaciones algebraicas planteado. Una vez resuelto el sistema de ecuaciones de diferencias finitas se obtiene el valor de la función en los nodos de la malla, es decir, que al emplear el método de diferencias finitas se obtiene una solución aproximada discreta.
Método de Diferencias Finitas usando series de Taylor El Método de Diferencias Finitas es un método de carácter general que permite la resolución aproximada de ecuaciones diferenciales en derivadas parciales definidas en recintos finitos. Es de una gran sencillez conceptual y constituye un procedimiento muy adecuado para la resolución de una ecuación bidimensional como la que hemos planteado. El primer paso para la aplicación del método consiste en discretizar el recinto del plano en el que se quiere resolver la ecuación con una malla, por conveniencia cuadrada. Los puntos de la malla están separados una distancia h en ambas direcciones x e y. Podemos desarrollar T(x,y) en serie de Taylor alrededor de un punto:
(1)
(2) Sumando miembro a miembro, agrupando, despreciando los términos o ( despejando el término de la derivada segunda resulta:
) y (3)
De forma similar se obtiene la expresión equivalente:
(4) Pero de la ecuación de Laplace:
por lo tanto:
Lo que significa que el valor de la temperatura en un punto se puede escribir como la media de las temperaturas de los 4 puntos vecinos. Otro aspecto importante es que las diferencias finitas aproximan cocientes diferenciales a medida que h se acerca a cero. Así que se pueden usar diferencias finitas para aproximar derivadas. Esta técnica se emplea a menudo en análisis numérico, especialmente en ecuaciones diferenciales numéricas ordinarias, ecuaciones en diferencias y ecuación en derivadas parciales. Los métodos resultantes reciben el nombre de métodos de diferencias finitas. Las aplicaciones habituales de los métodos de diferencias finitas son en los campos de la computación y áreas de la ingeniería como ingeniería térmica o mecánica de fluidos.
Método usando polinomios de Lagrange La derivada de la función f (x) en
es por definición matemática:
aunque esta fórmula da una manera obvia de generar una aproximación de dando valores de pequeños de h y calcular
tenemos el problema de que y tendrán valores muy cercanos y en la operación de resta en la computadora habrá perdidas de cifras significativas Usando polinomios de Lagrange de ajuste a tres puntos para aproximar : Teniendo como datos tres puntos igualmente espaciados en x (h es el paso):
:
Usando polinomios de Lagrange de ajuste a cinco puntos para aproximar Teniendo como datos tres puntos igualmente espaciados en x (h es el paso):
Ejemplo:
Considere la función Realice una tabla con los valores de x desde 0:0 hasta 1:0 con un paso de h = 0:1.Determine y aproxime la derivada usando fórmulas de tres y cinco puntos calculando los errores y las cotas para el error. Sean
un conjunto de valores diferentes, se define
Es un polinomio en x que cumple diferente de k y
para todo pero
) el
Dados una serie de puntos con diferente abscisa polinomio interpolante de Lagrange de grado n se define como:
Si las ordenadas de los puntos provienen de una funcion f (x) que tiene n + 1 derivadas continuas en un intervalo que contiene a los puntos [a; b], entonces para todo x en [a; b]
Derivando la formula anterior:
Evaluando en evaluación:
y observando que hay términos que se hacen cero en la
INTEGRACIÓN NUMÉRICA
Método del trapecio Es la primera de las fórmulas de integración cerrada de Newton – Cotes. Corresponde al caso donde el polinomio en la ecuación de integración es de primer orden:
Geométricamente, es equivalente a aproximar el área del trapezoide bajo la línea recta que conecta f (a) y f (b). La integral se representa como:
I ≈ ancho x altura promedio
Error de la regla trapezoidal: Una estimación para el error de truncamiento local de una sola aplicación de la regla trapezoidal es:
donde ξ está en algún lugar en el intervalo de a a b.
Aplicación múltiple de la regla trapezoidal: Una manera de mejorar la exactitud de la regla trapezoidal es dividir el intervalo de integración de a a b en un número n de segmentos y aplicar el método a cada uno de ellos. Las ecuaciones resultantes son llamadas fórmulas de integración de múltiple aplicación o compuestas . Hay n+1 puntos base igualmente espaciados ( x0 ,x1 ,x2 ,...,xn). En consecuencia hay n segmentos de igual anchura: h = ( b – a )/ n. Si a y b son designados representará como:
como x 0 y xn respectivamente,
Al sustituir la regla trapezoidal para cada integral:
Y mediante agrupación de términos:
la
integral
total
se
Usando h = (b – a)/n y expresándola en la forma general:
Un error para la regla trapezoidal de múltiple aplicación se puede obtener al sumar los errores individuales de cada segmento, para dar:
Donde f’’ (ξ i) es la segunda derivada en un punto ξ i localizado en el segmento i. Este resultado se puede simplificar al estimar la media o valor promedio de la segunda derivada para todo el intervalo:
Por tanto Σ f’’(ξ ) i ≈ nf’’ . Entonces la ecuación del error trapezoidal puede escribirse como:
Así, si el número de segmentos se duplica, el error de truncamiento disminuirá a un cuarto.
Método de Simpson Regla de Simpson 1/3: Resulta cuando una interpolación polinomial de segundo orden es sustituida en una ecuación de aproximación con integral:
Después de la integración y manejo algebraico, resulta:
Donde h = (b – a)/2
Regla de Simpson 3/8: Resulta cuando una interpolación polinomial de tercer orden es sustituida en la ecuación de aproximación:
Para obtener:
Método de cuadratura de gauss : Estimación de la integral, se basa sobre valores de la función Newton – Cotes uniformemente espaciados. La localización de estos puntos fue fijo. : Debe pasar a través de los puntos extremos. Existen casos Regla Trapezoidal donde la fórmula resulta en un error grande. Supóngase que la restricción de los puntos fijos es eliminada y se tiene la libertad de evaluar el área bajo una recta que conecta dos puntos cualesquiera sobre la curva. Al ubicar estos puntos en forma “inteligente”, se puede definir una líne a recta que equilibre los errores negativos y positivos. El objetivo de la cuadratura de Gauss es determinar los coeficientes de una ecuación de la forma:
En la cual las c son coeficientes desconocidos. En contraste con la regla trapezoidal que usa los puntos extremos fijos a y b, los argumentos de la función x0 y x1no están fijos en los puntos extremos. Se tienen cuatro incógnitas que deben ser evaluadas y se requieren cuatro condiciones para determinarlas con exactitud. Se pueden obtener dos de esas condiciones al suponer que la ecuación ajusta la integral de una constante y de una función lineal con exactitud. Para tener las otras dos condiciones, se extiende este razonamiento al suponer que también ajusta la integral de una función parabólica ( y = x2) y de una cúbica ( y = x3). Las cuatro funciones a resolverse son:
Resolviendo simultáneamente:
Sustituyendo en la ecuación de coeficientes para obtener la ecuación de Gauss – Legendre de dos puntos:
Se llega a un resultado interesante en el que la simple suma de los valores de la función en x = 1/√3 y – x = 1/√3 dan una estimación de la integral que tiene una exactitud de tercer orden. Obsérvese que los límites de integración de las ecuaciones son de -1 a 1. Esto se hizo para simplificar las matemáticas y para hacer la formulación tan general como sea posible. Es posible usar un cambio de variable para trasladar cualquier límite a esta forma. Suponiendo que una nueva variable xd se relaciona con la variable original x en una forma lineal, como en:
Si el límite inferior x = a, corresponde a xd = -1, estos valores podrán sustituirse en la ecuación anterior para dar:
De manera similar, el límite superior x = b, corresponde a xd = = 1, para dar:
Resolviendo estas ecuaciones simultáneamente:
Las cuales se pueden sustituir en la ecuación de relación para obtener:
Esta ecuación puede diferenciarse para dar:
Las dos ecuaciones anteriores podrán sustituirse para x y dx , respectivamente, en la evaluación que se habrá de integrar. Esas sustituciones transforman el intervalo de integración sin cambiar el valor de la integral.
Fórmula de punto superior:
–La fórmula anterior para la cuadratura de Gauss era de dos puntos. – Se pueden desarrollar versiones de punto superior en la forma general:
- con n: número de puntos. Debido a que la cuadratura de Gauss requiere evaluaciones de la función f unción en puntos espaciados uniformemente dentro del intervalo de integración, no es apropiada para casos donde se desconoce la función. Si se conoce la función, su ventaja es decisiva.
Método de Integrales impropias Hasta ahora hemos realizado todo el estudio sobre las integrales definidas bajo dos hipótesis fundamentales, el hecho de que los límites de integración eran finitos y la continuidad de la función a integrar, f(x), en el intervalo de integración [a , b]. Cuando alguna de esas dos condiciones no se cumple, se dice que la integral que resulta es impropia. Estudiaremos estos casos por separado, viendo como conclusión el caso general en el que pudieran no cumplirse estas dos hipótesis a la vez.
Límites de integración infinitos En este primer caso, supondremos que la función a integrar, f(x), está definida y es continua en un intervalo no acotado. Esta situación puede darse de tres maneras distintas: que el límite superior de integración sea infinito, que el límite inferior de integración sea menos infinito, o que ninguno de los límites de integración sea finito. Veamos cada una de estas tres posibilidades: 1) Si f(x) es continua en:
Donde es una integral definida. 2) Si f(x) es continua en:
Donde
es una integral definida.
3) Si f(x) es continua para todo x real y a es un número real cualquiera:
y cada una de las integrales impropias del miembro de la derecha, se calcularán según lo viso en los caso 1) y 2). Es decir, en cualquier caso, para calcular una integral impropia, primer pasamos a calcular una integral definida dependiendo de un parámetro t que haremos tender a más o menos infinito, según el caso. Así pues, el cálculo del valor de una integral impropia se reduce al cálculo de manera consecutiva de una integral definida y de un límite. Debido, precisamente, a la operación del cálculo del límite de una función, este límite puede ser real (convergencia) o puede ser infinito (divergencia). Esta situación da lugar a la siguiente clasificación en las integrales impropias: cuando los límites de 1) y 2) existan, se dirá que las integrales convergen; si no existen (son infinito), se dirá que divergen. En 3) la integral de la izquierda se dice que converge si y solo si convergen las dos de la derecha (si una de ellas diverge independientemente de la otra, también será divergente la de la izquierda). Ejemplos 1)
El límite superior de integración toma valor no finito. Así pues, según el caso 1), tenemos:
Calculamos primero la integral definida con límite de integración superior igual a t:
Por último, calculamos el límite cuando t tiende a más infinito de esta función:
Por tanto, I es convergente y su valor es
2) El límite inferior de integración toma valor no finito. Así pues, según el caso 2), tenemos:
Calculamos primero la integral definida con límite de integración inferior igual a t:
Por último, calculamos el límite cuando t tiende a menos infinito de esta función:
Por tanto, I e s divergente y su valor es I = ∞ .
3) En este caso los dos límites de integración son no finitos. Así pues, según el caso 3), separamos esta integral en suma de otras dos por un punto cualquiera intermedio, por ejemplo, el cero:
Calculamos cada una de estas dos nuevas integrales impropias según los casos 1) o 2). Por tanto:
Por tanto, I es convergente y su valor es
RAÍCES DE ECUACIONES Método de Bisección Hipótesis:
La función y = f (x) cambia de signo: La función y = f (x) es continua en el intervalo
Idea 1. Tomar el punto medio c = (a + b)=2 y determinar f (c).
| | es menor que una tolerancia dada,
2. Si (f (c) = 0) ó el valor entonces el proceso termina.
3. Si f (a) f (c) < 0, entonces debe buscar en [a; c] haciendo b = c y reiniciando en el paso 1.
4. Debe ocurrir que f (c) f (b) < 0; se debe buscar en [c; b] haciendo a = c y reiniciando en el paso 1.
Ventajas y desventajas
Conocido el intervalo [ ] donde se localiza la raíz, se puede calcular en cuantas iteraciones se aproxima a la raíz para una tolerancia dada: La raíz siempre se encuentra en el intervalo de trabajo y en cada iteración la longitud del intervalo se reduce a la mitad del anterior. Así, el número de iteraciones para el cual se tiene ubicada la raíz con una tolerancia (tol) dada es:
|| Localizar el intervalo donde se encuentra la raíz puede ser una tarea complicada. El método de Bisección es un método recursivo donde se empieza a analizar el intervalo (a,b). Se calcula el punto intermedio entre a y b, utilizando la fórmula: xMid=(a+b)/2 Existen tres posibilidades al evaluar f(xMid): si f(xMid) es cero, entonces xMid es la raíz; o que la raíz se encuentre a la derecha o a la izquierda de xMid. Bisección(a,b) Calcular xMid
Si | f(xMid) | es cero o menor que un número muy pequeño ( ) entonces xMid es la raíz
de otra forma Si f(a)*f(xMid)<0 entonces bisección(a,xMid)
de otra forma bisección(xMid,b)
Método de Newton-Raphson
Está basado en el uso de una línea tangente como aproximación de f(x), cerca de los puntos donde el valor de la función es cero.
1.- Escoger un número inicial ( ) 2.- Calcular la siguiente aproximación de x1 utilizando la fórmula:
3.- Si
| | entonces es una raíz
De otra forma pasar al punto 2
Este método, el cual es un método iterativo, es uno de los más usados y efectivos. A diferencia de los métodos anteriores, el método de Newton-Raphson no trabaja sobre un intervalo sino que basa su fórmula en un proceso iterativo. Supongamos que tenemos la aproximación
a la raíz
Trazamos la recta tangente a la curva en el punto en un punto
de
,
; ésta cruza al eje
que será nuestra siguiente aproximación a la raíz
.
Para calcular el punto , calculamos primero la ecuación de la recta tangente. Sabemos que tiene pendiente
Y por lo tanto la ecuación de la recta tangente es:
Hacemos
:
Y despejamos
:
Que es la fórmula iterativa de Newton-Raphson aproximación:
para calcular la siguiente
, si Note que el método de Newton-Raphson no trabaja con intervalos donde nos asegure que encontraremos la raíz, y de hecho no tenemos ninguna garantía de que nos aproximaremos a dicha raíz. Desde luego, existen ejemplos donde este método no converge a la raíz, en cuyo caso se dice que el método diverge. Sin embargo, en los casos donde si converge a la raíz lo hace con una rapidez impresionante, por lo cual es uno de los métodos preferidos por excelencia. También observe que en el caso de que , el método no se puede aplicar. De hecho, vemos geométricamente que esto significa que la recta tangente es horizontal y por lo tanto no intersecta al eje en ningún punto, a menos que coincida con éste, en cuyo caso
mismo es una raíz de
!
Ejemplo 1 Usar el método de Newton-Raphson, para aproximar la raíz de comenzando con
y hasta que
Solución En este caso, tenemos que
De aquí tenemos que:
.
,
Comenzamos con
y obtenemos:
En este caso, el error aproximado es,
Continuamos el proceso hasta reducir el error aproximado hasta donde se pidió. Resumimos los resultados en la siguiente tabla: Aprox. a la raíz 1 1.268941421 1.309108403 1.309799389
Error aprox. 21.19% 3.06% 0.052%
De lo cual concluimos que , la cual es correcta en todos sus dígitos! La misma idea puede aplicarse para crear algoritmos que aproximen raíces -ésimas de números reales positivos. Observe que cuando el método de Newton-Raphson converge a la raíz, lo hace de una forma muy rápida y de hecho, observamos que el error aproximado disminuye a pasos agigantados en cada paso del proceso. Aunque no es nuestro objetivo establecer formalmente las cotas para los errores en cada uno de los métodos que hemos estudiado, cabe mencionar que si existen estas cotas que miden con mayor precisión la rapidez ó lentitud del método en estudio.
Método de la Secante Un problema del método de Newton-Raphson es el de la evaluación de la derivada, ésta se puede aproximar mediante el uso de una línea secante, en donde:
Esta aproximación de la derivada se puede sustituir en la ecuación de Newton Raphson.
1.- Escoger un número inicial 2.- Calcular la siguiente aproximación de
3.- Si
utilizando la fórmula:
| | entonces es una raíz De otra forma pasar al punto 2
Este método se basa en la fórmula de Newton-Raphson, pero evita el cálculo de la derivada usando la siguiente aproximación:
Sustituyendo en la fórmula de Newton-Raphson, obtenemos:
Que es la fórmula del método de la secante. Nótese que para poder calcular el valor de
, necesitamos conocer los dos valores anteriores
y
.
Obsérvese también, el gran parecido con la fórmula del método de la regla falsa. La diferencia entre una y otra es que mientras el método de la regla falsa trabaja sobre intervalos cerrados, el método de la secante es un proceso iterativo y por lo mismo, encuentra la aproximación casi con la misma rapidez que el método de Newton-Raphson. Claro, corre el mismo riesgo de éste último de no converger a la raíz, mientras que el método de la regla falsa va a la segura.
Ejemplo 1
Usar el método de la secante para aproximar la raíz de comenzando con
,
y hasta que
, .
Solución
Tenemos que
y
, que sustituimos en la fórmula de
la secante para calcular la aproximación
:
Con un error aproximado de:
Como todavía no se logra el objetivo, continuamos con el proceso. Resumimos los resultados en la siguiente tabla:
Aprox. a la raíz 0 1 0.612699837 0.653442133 0.652917265
Error aprox. 100% 63.2% 6.23% 0.08%
De lo cual concluimos que la aproximación a la raíz es:
Ejemplo 2 Usar el método de la secante para aproximar la raíz de comenzando con
y
, y hasta que
.
,
Solución
Tenemos los valores
y
, que sustituimos en la
fórmula de la secante para obtener la aproximación
:
Con un error aproximado de:
Como todavía no se logra el objetivo, continuamos con el proceso. Resumimos los resultados en la siguiente tabla: Aprox. a la raíz 0 1 0.823315073 0.852330280 0.853169121
Error aprox. 100% 21.4% 3.40% 0.09%
De lo cual concluimos que la aproximación a la raíz es:
MATRICES Y SISTEMAS DE ECUACIONES LINEALES Método de Gauss Este método nos ayuda a encontrar la solución de un sistema de ecuaciones lineal transformando la matriz de coeficientes en un sistema triangular inferior, mediante la matriz amentada, realizándole operaciones elementales y obteniendo sistemas equivalentes, para después realizar una sustitución hacia atrás y encontrar los
valores de la solución. Esto es:
̅ ̅
Donde:
T es la matriz de triangular del sistema de ecuaciones
Y b‟ es el vector de términos independientes del nuevo sistema equivalente Modelo
̅ Supuestos de aplicación
• El sistema debe de tener solución única, esto es, qu e el determinante de la matriz debe de ser diferente de cero
.
• La matriz de coeficientes no debe tener ceros en la diagonal. • El sistema tiene n variable y n incógnitas. Valores Iníciales
• El número de variables que contiene el sistema. • La matriz de coeficientes. • El vector de términos independientes. Ecuación Recursiva 1. Fórmulas para la Triangularización del sistema de ecuaciones de la matriz aumentada. Para
Para
Si Para
Si
Siguiente Siguiente Siguiente
Fórmulas para la sustitución regresiva y encontrar los valores de las variables
Para Para
Siguiente
Siguiente
Convergencia La triangulación se detiene cuando todos los elementos por debajo de la diagonal son igual a cero. La sustitución regresiva se detiene cuando se hayan obtenido todos los valores de las variables.
Ejemplo Resolver el siguiente sistema de ecuaciones Matriz de Coeficientes
Vector de términos independientes
Vamos a analizar si el sistema tiene solución, sacando el determinante de la matriz de coeficientes: =-537 por lo tanto el sistema tiene solución.
Después de la primera iteración nos queda el siguiente sistema equivalente:
Después de la segunda iteración nos queda el siguiente sistema equivalente:
Después de la tercera iteración nos queda el siguiente sistema equivalente:
En este momento ya se tiene la matriz de coeficientes en forma triangular y el siguiente paso es realizar la sustitución hacia atrás. Se obtiene la siguiente solución para el sistema de ecuaciones: Solución:
x1= -0.1346 x2= 0.2766 x3= 0.3458 x4= -0.2206
Para comprobar si la solución del sistema es correcta se debe cumplir lo siguiente: Prueba:
Es un método directo que nos da la solución exacta, si existe, en un numero finito de pasos u operaciones. Pretendemos resolver un sistema de ecuaciones lineales dado mediante su transformación en otro sistema equivalente que se resuelva fácilmente. Dichos sistemas tienen una forma concreta. Un sistema de ecuaciones lineales se denomina escalonado (o reducido) si la matriz del sistema verifica que 1. Todos los elementos por debajo de los para son nulos. 2. El primer elemento no nulo de cada fila, llamado pivote, esta a la derecha del primer elemento diferente de cero (pivote) de la fila anterior. 3. Cualquier fila formada únicamente por ceros esta bajo todas las filas con elementos diferentes de cero.
Para conseguir nuestro objetivo utilizaremos el método de eliminación de Gauss que consiste en, utilizando transformaciones elementales sobre la matriz del sistema, pasar de un sistema de ecuaciones a otro equivalente que sea escalonado. Los sucesivos pasos de este proceso son: 1. Localizamos en la primera columna no nula, de la matriz del sistema, el primer elemento no nulo a. 2. Intercambiamos la primera fila con la fila en la que se encuentra a. 3. Multiplicamos la primera fila por 4. Sumando múltiplos adecuados de la primera fila a las demás, anulamos todos los elementos de la primera columna no nula menos el primero. 5. Repetimos el proceso, con la matriz que resulta de eliminar la primera fila y la primera columna, hasta conseguir un sistema escalonado.
En algunos casos podemos ahorrarnos cálculos no siguiendo a rajatabla los pasos del proceso explicado. Por ejemplo, si en la primera columna no nula hay un uno conviene, en el primer paso, tomar a como dicho elemento, pues así nos ahorraremos el paso tercero. Esto nos permite afirmar que dado un sistema, el sistema escalonado obtenido a partir de él no es único, aunque si hay ciertas características que son comunes a todos ellos, a saber:
El numero de filas no nulas (numero de ecuaciones independientes que tiene el sistema) que coincide con el numero de pivotes. El pivote de cada fila esta situado siempre en la misma columna.
Finalmente, una vez obtenido el sistema escalonado, lo resolvemos por sustitución regresiva.
Método de Gauss con pivoteo parcial y total Cuando un proceso matemático no esta definido para un valor particular de un parámetro, es muy posible que el proceso funcione numéricamente mal cerca de ese valor. El siguiente ejemplo ilustra las consecuencias de operar con un pivote pequeño. Ejemplo. Por eliminación gaussiana y trabajando con dos y cuatro cifras respectivamente, resolver el sistema de ecuaciones:
Este ejemplo prueba que la aparición de un pivote pequeño puede ser el anuncio de un desastre computacional. Por ello debemos modificar el método de eliminación de Gauss para evitar pivotes pequeños intercambiando las filas y las columnas de la matriz A. Concretamente: Eliminación gaussiana con pivoteo total. Si en la etapa r-ésima del proceso de eliminación el pivote es demasiado pequeño, elegimos el elemento como nuevo pivote. Para ello intercambiamos las filas r y p y las columnas r y q de forma que situamos el elemento en la posición Obviamente hemos tomado para no perturbar los ceros que ya tenemos. Posteriormente continuamos la eliminación con el nuevo pivote. Eliminación gaussiana con pivote parcial. En este caso la alternativa consiste en buscar solamente en la r-ésima columna; es decir, tomar
como nuevo pivote. Para ello intercambiamos las filas r y p, continuando posteriormente el proceso de eliminación. En la práctica, el método de Gauss con pivoteo total puede consumir mucho tiempo, computacional mente hablando, pues para hallar el máximo en cada paso hay que buscar entre elementos. En el otro caso, además del ahorro de tiempo, las incógnitas de nuestro sistema no cambian de orden en el sistema reducido. Por ello, en general, es suficiente utilizar un pivoteo parcial.
Factorización L U La factorización LU de una matriz es una factorización que resume el proceso de eliminación gaussiana aplicado a la matriz y que es conveniente en términos del número total de operaciones de punto flotante cuando se desea calcular la inversa
de una matriz o cuando se resolverá una serie de sistemas de ecuaciones con una misma matriz de coeficientes. Factorización LU Suponga que la matriz A es una matriz de dos matrices:
se puede escribir como el producto
A = L U donde L es una matriz triangular inferior . Entonces para resolver el sistema:
,
y U es una matriz escalonada
escribimos
Una posible estrategia de solución consiste en tomar y resolver para y: : Como la matriz L es triangular superior este sistema puede resolverse mediante sustitución hacia abajo, lo cual se hace fácilmente en FLOPS. Una vez con los valores encontrados de y, las incógnitas al sistema inicial se resuelve despejando x de
Nuevamente, como U es escalonada, este sistema puede resolverse en caso de tener solución mediante sustitución hacia atrás, lo cual es sencillo. Estas observaciones nos dan la pauta para ver la conveniencia de una factorización como la anterior, es decir factorizar A como el producto de una matriz L triangular superior, por otra U la cual es escalonada. Esta factorización se llama usualmente Descomposición LU. Ejemplo: Use la factorización LU de A:
para despejar x del sistema:
Solución
Sea un nuevo vector de incognitas. Primero resolveremos el sistema triangular inferior :
Este sistema escrito en su forma de ecuaciones queda:
Por eliminación directa de la:
primera ecuación:
segunda ecuación:
y de la tercera:
Ahora el sistema
:
El cual escrito en su forma de ecuaciones queda:
El cual al ser resuelto por sustitución hacia atrás queda:
de la última ecuación:
segunda ecuación:
y de la primera:
Factorización de P A = L U Frecuentemente, no es posible escalonar una matriz solo con operaciones de eliminación. En estos casos se requiere realizar intercambio de renglones. Para este tipo de matrices no existe la factorización LU. Lo que aplica es la factorización P A = L U. Donde la matriz P es una matriz de permutación. Estas matrices de permutación se obtienen de la matriz identidad intercambiando renglones. La factorización P A = L U se obtiene de forma análoga a la factorización LU pero se lleva un registro de los renglones que se intercambian y se efectúan los intercambios en una matriz que registra los inversos de las operaciones de eliminación. Algoritmo de P A = L U Entrada: Matriz A
Salida: P matriz de permutación L matriz triangular superior unitaria U matriz escalonada que cumplen: PA=LU
1. Tome 2. Mientras que U no sea escalonada hacer 2.1. Aplicar una operación R de eliminación o de intercambio a U 2.2. Si R es de la forma , entonces aplicar R a P y a L. 2.3. Si R es de la forma , entonces modificar L haciendo 3. Tome . Ejemplo Determine una factorización P A = L U de la matriz
Solución Tomemos 1.
Si
aplicamos
sobre
las
operaciones
de
eliminación
se obtiene a la nueva matriz
:
Estos cambios se registran en
2.
Si aplicamos sobre
y hasta el momento se tiene:
las operaciones de eliminación
se obtiene a la nueva matriz
Estos cambios se registran en
3.
Si aplicamos sobre nueva matriz :
:
y hasta el momento se tiene:
la operación de intercambio se obtiene la
Aplicando la operación de intercambio a
y a , se tiene:
4.
Puesto que la matriz analizamos haciendo
ya es escalonada, el procedimiento termina y y se tiene:
Método de Cholesky Este método nos ayuda a encontrar las matrices LU cuando la matriz es positiva definida y la matriz de coeficientes es simétrica. Este método supone que U=LT
Modelo A = LU
Supuestos de aplicación • El sistema tenga solución única. • La matriz A sea cuadrada. ). • La matriz A sea simétrica ( • La matriz A sea definida positiva (los determinantes de los menores sean > 0)
Valores Iníciales • El número de variables. • La matriz de coeficientes. • El vector de términos independientes. Ecuación Recursiva Las ecuaciones recursivas para realizar la factorización LU son las siguientes:
Donde: todas
:
Las siguientes ecuaciones son para solucionar el sistema de ecuaciones. Para obtener el vector aplicamos la siguiente ecuación recursiva.
Para obtener la solución del sistema se aplica la siguiente ecuación recursiva
Convergencia Este método se detiene cuando se encuentran los valores de L Ejemplo del método de Cholesky
Problema: Resolver el siguiente sistema de ecuaciones lineales usando el método de Cholesky
6 15 55 A = 15 55 225 55 225 979
100 y C= 150 100
Solución: En el método de Cholesky el primer paso es encontrar la matriz L usando las fórmulas i 1
a ki l ij l kj l ki
j 1
l ii
y
l kk
a kk
k 1
l
2 kj
j 1
La primera ecuación se usa para elementos fuera de la diagonal y la segunda para elementos en la diagonal principal. Entonces.
l 11 a11 6 = 2.4495
l 21
a 31 l 11
55 2.4495
l 21
a 21 l 11
= 22.454
15 2.4495
= 6.1237
Ya sabemos que l 12 = 0
2 l 22 a22 l 21 55 6.1237 2 = 4.1833
l 32
a 32 l 21 l 31 l 22
55 (6.1237 )(22.454 ) 4.1833
= 20.916
De igual forma l 13 = l 23 = 0 y 2 l 33 a 33 (l 31 l 322 ) 979 (22.454 2 20.916 2 ) = 6.1106
La matriz L es igual a 0 0 2.4495 L 6.1237 4.1833 0 22.454 20.916 6.1106
En el método de Cholesky U = L T
2.4495 6.1237 22.454 0 4.1833 20.916 U 0 0 6.1106
El siguiente paso es encontrar el vector D de la misma manera que en el método de descomposición de LU
i 1
ci l ij d j j 1
d i
d 1
d 3
l ii c1 l 11
100 2.4495
=40.8246
c3 (l 31 d 1 l 32 d 2 ) l 33
d 2
c 2 l 21 d 1 l 22
150 (6.1237 )( 40.8246 ) 4.1833
100 ((22.454 )(40.8246 ) (20.916 )(23 .9045 ) 6.1106
=-23.9045
=-51.826
Finalmente se calcula el vector de incógnitas comenzando por la última x. n
d i xi
x 3
x 2
x1
uij x j j i 1
u ii d 3 u 33
=-8.481
d 2 u 23 x3 u 22
= [-23.9045-(20.916)(-8.481)]/4.1833 = 36.690
d 1 (u12 x 2 u13 x3 ) u11
= [40.8246 – ((6.1237)(36.69)+(22.454)(-8.481))]/2.4495 =
2.685 El resultado se puede comprobar multiplicando A por X y el resultado debe ser igual a C.
Metodo de Jacobi Un método iterativo es un método que progresivamente va calculando aproximaciones a la solución de un problema. En Matemáticas, en un método iterativo se repite un mismo proceso de mejora sobre una solución aproximada: se espera que lo obtenido sea una solución mas aproximada que la inicial. El proceso se repite sobre esta nueva solución hasta que el resultado mas reciente satisfaga ciertos requisitos. A diferencia de los métodos directos, en los cuales se debe terminar el proceso para tener la respuesta, en los métodos iterativos se puede suspender el proceso al término de una iteración y se obtiene una aproximación a la solución.
El método Jacobi es el método iterativo para resolver sistemas de ecuaciones lineales más simple y se aplica sólo a sistemas cuadrados, es decir a sistemas con tantas incógnitas como ecuaciones. 1. Primero se determina la ecuación de recurrencia. Para ello se ordenan las ecuaciones y las incógnitas. De la ecuación i se despeja la incógnita i. En notación matricial se escribirse como:
donde x es el vector de incógnitas. 2. Se toma una aproximación para las soluciones y a ésta se le designa por
3. Se itera en el ciclo que cambia la aproximación
Ejemplo
aplique dos iteraciones del método de Jacobi para
Partiendo de resolver el sistema:
Solución Debemos primeramente despejar de la ecuación la incógnita correspondiente.
Escrito en la notación vectorial quedaría:
Aplicamos la primera iteración partiendo de
y
Aplicamos la segunda iteración partiendo de
y :
Aplicamos la siguiente iteración partiendo de
y :
Aplicamos la siguiente iteración partiendo de
y :
Aplicamos la siguiente iteración partiendo de
y :
Aplicamos la siguiente iteración partiendo de
y :
Los valores quedan de acuerdo a la siguiente tabla:
donde
Este es utilizado como criterio de paro en las iteraciones: Cuando es menos que cierto valor dado (digamos 0.001) uno ya no realiza la siguiente iteración. Si se obtendr´a algo se gráfica las aproximaciones obtenidas en el plano como:
El Método de Gauss-Seidel El método de Gauss-Seidel es muy semejante al método de Jacobi. Mientras que en el de Jacobi se utiliza el valor de las incógnitas para determinar una nueva aproximación, en el de Gauss-Seidel se va utilizando los valores de las incógnitas recién calculados en la misma iteración, y no en la siguiente. Por ejemplo, en el método de Jacobi se obtiene en el primer cálculo , pero este valor de x no se utiliza sino hasta la siguiente iteración. En el método de Gauss-Seidel en lugar de eso se utiliza de en lugar de en forma inmediata para calcular el valor de de igual manera procede con las siguientes variables; siempre se utilizan las variables recien calculadas.
Ejemplo
) aplique dos iteraciones del método de Gauss-Seidel
Partiendo de ( para resolver el sistema:
Solución Debemos primeramente despejar de la ecuación la incógnita correspondiente.
Aplicamos la primera iteración partiendo de
y
Aplicamos la segunda iteración partiendo de
Aplicamos la tercera iteración partiendo de
y
y :
Método para hallar valores y vectores propios Definiciones.- Dada una matriz cuadrada A de orden 3 se dice que el numero es un valor propio de A si existe un vector columna tridimensional c no nulo.
El vector c se llama vector propio de A asociado al valor propio
valor propio auto valor valor característico eigenvalor
c valor propio auto valor valor característico eigenvalor
Método para hallar valores y vectores propios. Por definición, un vector propio c debe ser un vector columna distinto de
Buscamos
y c tales que
Esta ecuación es equivalente a
, siendo la matriz unidad de orden 3:
El vector c = 0 satisface λ 0 = A0 cualquiera que sea el numero λ. Esta situación no interesa, pues cualquier número sería valor propio de A. La ecuación
es equivalente a
Si c ha de ser distinto de cero, entonces necesariamente el determinante
tiene que ser igual a 0. Una posible manera de hallar el λ0 que buscamos es construir el polinomio en λ
(1)
El polinomio p(λ) en la variable λ es de grado 3 y se llama el polinomi o característico de A
Debemos resolver la ecuación en la incógnita λ (2)
A continuación si λ0 es una raíz de esta ecuación, se resuelve el sistema homogéneo indeterminado
(3)
de (3) con no todas las Una solución componentes nulas, proporciona uno de los vectores buscados en las incógnitas
Sea la matriz
(4) Vamos a hallar un valor propio y un vector propio asociado. Es preciso resolverla
ecuación en λ
(5)
Por la regla de Ruffini encontramos que λ0 = 1 es una raíz de (5):
Para encontrar un vector propio
asociado a este λ0 = 1,
resolvemos el sistema homogéneo de ecuaciones lineales
Escribimos este sistema en la forma
Como
tachamos la última ecuación:
Este sistema es equivalente al anterior. Pasamos
al segundo miembro
Damos a
un valor arbitrario; por ejemplo
Así pues, un vector propio asociado a
1 es
SISTEMAS DE ECUACIONES NO LINEALES Método de Newton - Raphson SISTEMAS DE ECUACIONES NO LINEALES
Un problema relacionado con éste método consiste en obtener las raíces de un conjunto de ecuaciones simultaneas.
La solución de este sistema consta de un conjunto de valores xi que simultáneamente hacen que todas las ecuaciones sean iguales a cero. Para el caso que las ecuaciones simultáneas son lineales, es decir se pueden expresar en la forma general.
Donde la b y la a son constantes. A las ecuaciones algebraicas y trascendentales que no se pueden expresar de esta forma se les llama ecuaciones no lineales. Por ejemplo:
Son dos ecuaciones simultaneas no lineales con dos incógnitas, x y y , las cuales se expresan en la forma de la ecuación (6.14) como
Así, la solución serán los valores de x y de y que hacen a las funciones u(x,y) y v(x,y) iguales a cero. La mayoría de los métodos para determinar tales soluciones son extensiones de los métodos abiertos para resolver ecuaciones simples. Dos de ellos son: iteración de punto fijo y Newton – Rapson. El Método Newton –Raphson se utilizo empleando la derivada (al evaluar, es la pendiente de la recta tangente) de un función, para calcular su intersección con el eje de la variable independiente; esto es, la raíz. Dicho calculo se baso en la expansión de la serie de Taylor de primer orden
Donde
es el valor inicial de la raíz y
es el valor en el cual la recta
tangente intercepta al eje x . En esta intersección, definición, igual a cero y la ecuación (6.17) se reordena para tener
es, por
Que es la forma del método de Newton-Raphson para una sola ecuación. La forma para múltiples ecuaciones se obtiene en forma idéntica. Sin embargo, se debe usar una serie de Taylor de múltiples variables para tomar en cuenta el hecho de que más de una variable independiente contribuye a la determinación de la raíz. En el caso de dos variables, una serie de Taylor de primer orden se escribe para cada ecuación no lineal como
y
De la misma manera como en la versión para una sola ecuación, la raíz aproximada corresponde a los valores de x y y, donde iguales a cero. En tal situación, se reordena la ecuación (6.19) como:
son
Debido a que se conocen todos los valores con subíndice i (corresponde al ultimo valor estimado), las únicas incógnitas son y Entonces, la ecuación (6.20) es un conjunto de dos ecuaciones lineales con dos incógnitas. En consecuencia, se pueden usar manipulaciones algebraicas (por ejemplo, la regla de Cramer) para resolverlo:
El denominador de cada una de estas ecuaciones se conoce formalmente como el determinante Jacobiano del sistema. La ecuación (6.21) es la versión para dos ecuaciones del Método de NewtonRaphson. Como en el siguiente ejemplo, se puede emplear en forma iterativa para determinar las raíces de dos ecuaciones simultaneas. Newton-Raphson para un sistema no lineal. Ejemplo Planteamiento del problema. Con el método de Newton-Raphson para múltiples ecuaciones determine las raíces de la ecuación (6.16). Observe que un par correcto de raíces es x=2 y y=3. Use como valores iniciales x=1.5 y y=3.5. Solución. Primero calcule las derivadas parciales y evalúelas con los valores iniciales de x y y:
Así, el determinante jacobiano para la primera iteración es
Los valores de las funciones se evalúan con los valores iniciales como
Estos valores se sustituyen en la ecuación (6.21)
Así, los resultados están convergiendo a los valores verdaderos x=2 y x=3. Los cálculos se repiten hasta que se obtenga una precisión aceptable.
MÉTODO DE NEWTON-RAPHSON MODIFICADO Para el cálculo de raíces múltiples Una raíz múltiple corresponde a un punto donde una función es tangencial al eje x. Por ejemplo, una raíz doble resulta de (1) o, multiplicando términos, La ecuación tiene una raíz doble porque un valor de x hace que dos términos de la ec. [1] sean iguales a cero.
Gráficamente, esto significa que la curva toca en forma tangencial al eje x en la raíz doble
La función toca al eje pero no lo cruza en la raíz Una raíz triple corresponde al caso en que un valor de x hace que tres términos en una ecuación sean iguales a cero, como en
o,
multiplicando términos,
La representación grafica indica otra vez que la función es tangente al eje en la raíz, pero en este caso sí cruza al eje. En general, la multiplicidad impar de raíces cruza el eje, mientras que la multiplicidad par no lo cruza. Por ejemplo:
La raíz cuádruple en la figura anterior no cruza el eje.
Fórmula
Algoritmo Para calcular el punto xi+1, calculamos primero la ecuación de la recta tangente. Sabemos que tiene pendiente
Y por lo tanto la ecuación de la recta tangente es:
Hacemos y=0:
Y despejamos x:
Que es la fórmula iterativa de Newton-Raphson aproximación:
para calcular la siguiente
, si La primera derivada de la ec. [1] Newton-Raphson estándar para este problema es:
que se resuelve iterativamente para obtener
por lo tanto, el método de
El método converge en forma lineal hacia el valor verdadero 1;0.
Para el caso del método modificado, la segunda derivada es: en consecuencia la ecuación iterativa será [6]
y
que se resuelve para obtener
La formula modificada converge en forma cuadrática. Se pueden usar ambos métodos para buscar la raíz simple en x = 3. Con un valor inicial se obtienen los siguientes resultados:
Ambos métodos convergen con rapidez, aunque el método estándar es el más eficiente.
Método de Bairstow El método de Bairstow es un método iterativo, basado en el método de Müller y de Newton-Raphson. Dado un polinomio f n(x) se encuentran dos factores, un polinomio cuadrático f 2( x) = x 2 – rx – s y f n-2 (x). El procedimiento general para el método de Bairstow es: 1. Dado f n(x) y r 0 y s0 2. Utilizando el método de NR calculamos f 2(x) = x 2 – r 0 x – s 0 y f n-2 (x), tal que, el residuo de f n(x)/ f 2(x) sea igual a cero. 3. Se determinan la raíces f 2( x), utilizando la formula general. 4. Se calcula f n-2 (x)= f n(x)/ f 2( x). 5. Hacemos f n(x)= f n-2 (x) 6. Si el grado del polinomio es mayor que tres regresamos al paso 2 7. Si no terminamos La principal diferencia de este método, respecto a otros, es que permite calcular todas las raíces de un polinomio (reales e imaginarias). Para calcular la división de polinomios, hacemos uso de la división sintética. Así dado f n(x) = an x n + an-1 x n-1 + … + a2 x 2 + a1 x + a0
Al dividir entre f 2( x) = x 2 – rx – s, tenemos como resultado el siguiente polinomio n-2
n-3
f n- 2 (x) = bn x + bn-1 x
+… + b3 x
+ b2
Con un residuo R = b1(x-r) + b0 , el residuo será cero solo si b1 y b0 lo son. Los términos b, los calculamos utilizamos división sintética, la cual puede resolverse utilizando la siguiente relación de recurrencia bn = an bn-1 = an-1 + rbn bi = ai + rbi+1 + sbi+2
Una manera de determinar los valores de r y s que hacen cero el residuo es utilizar el Método de Newton-Raphson. Para ello necesitamos una aproximación lineal de b1 y b0 respecto a r y s la cual calculamos utilizando la serie de Taylor
Donde los valores de r y s están dados y calculamos los incrementos dr y ds que hacen a b1(r+dr, s+ds) y b0 (r+dr, s+dr) igual a cero. El sistema de ecuaciones que tenemos que resolver es:
Bairtow muestra que las derivadas parciales pueden obtener haciendo un procedimiento similar a la división sintética, así c n = bn c n-1 = bn-1 + rc n c i = bi + rc i+1 + sc i+2
Donde
Sustituyendo término
Ejemplo Dado el polinomio f 5( x) = x 5 - 3.5x 4 + 2.75x 3 + 2.125x 2 - 3.875x + 1.25 , determinar los valores de r y s que hacen el resido igual a cero. Considere r 0 = -1 y s0 = 2 . Solución.
Iteración 1. La división sintética con el polinomio f 2(x) = x 2 -x + 2.0 da como resultado f3(x) = x 3 - 4.5x 2 + 9.25x - 16.125
Residuo = {30.75, -61.75}
Aplicando el método de Newton tenemos
-43.875
16.75
108.125 -43.875
dr
-30.75
ds
61.75
de donde r 1 = -1.0 + 2.7636812508572213 =1.7636812508572213 s1 = 2.0 + 5.403374022767796 =7.403374022767796
Iteración 2. La división sintética con el polinomio f 2(x) = x 2 -1.7636812508572213x - 7.403374022767796
da como resultado 3
2
f3(x) = x - 1.7363187491427787x + 7.091061199392814x - 1.776754563401905 Residuo = {51.75640698828836, 105.68578319650365}
Aplicando el método de Newton tenemos
27.628006
14.542693
dr
-51.75640
208.148405
27.62800
ds
-105.68578
de donde r 2 = 1.7636812508572213 - 0.04728019113442016 = 1.7164010597228012 s2 = 7.403374022767796 - 3.469106187802152 = 3.934267834965644
Iteración 3. La división sintética con el polinomio 2
f 2( x)= x -1.7164010597228012x- 3.934267834965644
da como resultado f3(x) =x 3 -1.7835989402771988x 2 + 3.622896723753395x + 1.3261878347051992 Residuo = {12.654716254544885, 28.1881465309956}
Aplicando el método de Newton tenemos
13.83497
7.44182
65.679212 13.83497
dr
-12.65471
ds
-28.18814
De donde r 3 = 1.7164010597228012 - 0.11666951305731528 = 1.599731546665486 s3 = 3.934267834965644 - 1.4835870659929915 = 2.4506807689726524 En resumen
k
r
s
Residuo
0
-1
2
30.75
-61.75
1
1.76368
7.403374
51.756406
105.68578
2
1.71640
3.93426
12.65471
28.18814
3
1.599731
2.450680
2.89958
8.15467
4
1.33354
2.18666
0.760122
2.522228
5
1.11826
2.11302
0.271940
0.607688
6
1.02705
2.02317
0.04313
0.11185
7
1.00165
2.00153
0.00277
0.00634
8
1.00000
2.00000
1.13930E-5
2.67534E-5
La solución es: f 3(x) = x 3 - 2.53x2 + 2.25x - 0.625 y f 2(x) = x2 - x - 2 Las raíces de f 2(x) = x 2 - x - 2, son x1 = 2
x2 = -1 Si repetimos el ejemplo pero ahora considerando el polinomio f 3(x) = x 3 - 2.53x 2 + 2.25x - 0.625
Podemos calcular el total de las raíces del polinomio original.
REGRESIÓN LINEAL Y AJUSTE DE CURVAS Ajuste de mínimos cuadrados a una ecuación lineal Interpolación y ajuste de curvas En ocasiones se tienen una serie de datos y se desconoce la función que los ha generado y se desea saber cuál es ésta. Lo primero que se debe hacer es graficar los puntos según sea el caso, para conocer su comportamiento y de esta forma decidir cuál método es más apropiado utilizar con fines predictivos. Existen varios métodos aquí nos dedicaremos únicamente a mínimos cuadrados.
Ajuste para una recta La nube de puntos de una representación de datos en papel milimetrado nos permitía visualizar la relación entre dos variables x e y.
Al representar el diagrama de dispersión de los datos podemos encontrar las siguientes situaciones:
Distribuciones estadísticas para las que la nube de puntos se dispone de tal forma que existe una función matemática cuyos puntos son una parte de su representación gráfica.
Sin coincidir exactamente sus puntos con las de una gráfica de una función matemática, se aproximan a ella con mayor o menor intensidad. La nube de puntos presenta un aspecto tal que no existe concentración de puntos hacia ninguna gráfica matemática, distribuyéndose de una forma uniforme en una región del plano.
En el primer caso se dice que existe una dependencia funcional o exacta entre las variables x e y, es decir existe una función matemática tal que y = f(x). En el segundo caso se dice que existe una dependencia estadística o aproximadamente entre las dos variables, y ≡f(x). Y en el último caso diríamos que las variables son independientes. Es el segundo caso del que se ocupa la teoría de la regresión. Las técnicas de regresión tienen por objeto modelizar, es decir, encontrar una función que aproxime lo máximo posible la relación de dependencia estadística entre variables y predecir los valores de una de ellas: y (variable dependiente) a partir de los de la otra (o las otras): x (variables(s) independiente(s)). La regresión es lineal cuando el modelo función de regresión seleccionado es una recta. En cualquier otro caso se dice regresión no lineal. El procedimiento será: 1. Elegir un tipo de función o curva que creamos que mejor relaciona las dos variables; esto lo podemos hacer observando la nube de puntos. 2. Obtener la ecuación de la curva, de entre las infinitas de dicho tipo que hay en el plano, que mejor se adapte al conjunto de puntos. El objetivo de obtener esa ecuación será predecir el valor de la variable y dado un valor de la variable x.
3. Obtener una medida del grado de esta asociación o correlación. Esto me dará la fiabilidad de las predicciones que haga con esta ecuación.
Ajuste de curvas por mínimos cuadrados La regresión por mínimos cuadrados, es una técnica cuyo objetivo es derivar una curva que minimice la discrepancia entre los puntos y la curva. Algunas suposiciones estadísticas inherentes en los procedimientos por mínimos cuadrados lineales son: 1. Cada x tiene un valor fijo, no es aleatorio y es conocido sin error. 2. Los valores y son valores aleatorios independientes y todos tienen la misma varianza.
3. Los valores de y para una x dada deben ser normalmente distribuidos. 4. La regresión de y contra x no es la misma que la de x contra y.
Método de los mínimos cuadrados.
|
Dados los puntos supongamos que hemos elegido una función que queremos ajustar a ese conjunto de puntos y en la que intervienen r parámetros ( ). Consideramos la nube de puntos correspondiente:
Para cada valor de x, ( ) tenemos dos valores de y: El valor observado en la muestra (o en la nube de puntos) Otro que denominamos teórico, función.
, que se obtendría al sustituir en la
Como se puede observar, para cada valores de Y, que llamaremos residuo:
tenemos una diferencia entre los dos
El método de los mínimos cuadrados consiste en determinar los parámetros ( ). de tal forma que los residuos sean mínimos. Es decir, buscaremos minimizar la expresión:
Es decir, minimizamos la suma de las distancias verticales de los puntos a la curva. La condición necesaria para obtener el mínimo es que las primeras derivadas parciales respecto a cada uno de los parámetros se anulen, es decir,
resolviendo este sistema, denominado sistema de ecuaciones normales, quedan determinados ( ), así como la correspondiente función.
Ajuste de mínimos cuadrados linealizando una ecuaciónno lineal Modelo de regresión lineal simple En el modelo de regresión lineal simple la función elegida para aproximar la relación entre las variables es una recta, es decir , donde b, m son los parámetros. A esta recta la llamaremos recta de regresión de y sobre x.
Vamos a deducir su ecuación usando el método de los mínimos cuadrados. Dado un valor de , tenemos los dos valores de Y, el observado, , y el teórico, Así pues, hemos de minimizar:
que derivando respecto a a y a m e igualando a cero:
que nos dará un sistema de dos ecuaciones normales y dos incógnitas (b,m). Resolviendo el sistema:
Se obtiene así, un sistema de dos ecuaciones con dos incógnitas b y m cuya solución es
de (1) tenemos el intercepto b:
Expresiones más elaboradas nos permiten det erminar el error de b, ∆b y el error
de m, ∆m
La pendiente de la recta se escribirá , y la ordenada en el origen . Véase las reglas para expresar una medida y su error de una magnitud. El coeficiente de correlación es otro parámetro para el estudio de una distribución bidimensional, que nos indica el grado de dependencia entre las variables X e Y. El coeficiente de correlación r es un número que se obtiene mediante la fórmula
Ejemplo Tabla de datos y cálculos
Parámetros de ajuste:
REFERENCIAS BIBLIOGRÁFICAS
1) “Factorización Lu Y Sus Aplicaciones” , Método de Cholesky, UNAM Acatlán, disponible disponible en: http://gauss.acatlan.unam.mx/pluginfile.php/27330/mod_resource/content/0/ Unidad_4/4.1_Metodo_de_Cholesky.pdf [Accesado el día 03 de noviembre de 2013] 2) CCIR/ITESM (2009), “Mé todos Iterativos para Resolver Sistemas Lineales ”, Departamento de Matemáticas, disponible en: http://www.mty.itesm.mx/dmti/materias/ma2008/lecturas/ma2008-09a.pdf [Accesado el día 03 de noviembre de 2013]
3) Juan-Miguel Gracia, Valores y vectores propios de una matriz, disponible en: http://www.vc.ehu.es/campus/centros/farmacia/deptosf/depme/apuntes/gracia/Curso_Actual/bolonia/matematicas/capitulo_1/espe ctral/ValoresVectoresPropiosPapel.pdf [Accesado el día 03 de noviembre de 2013] 4) ITCV, Sistemas De Ecuaciones No Lineales, http://metodosnumericos.webatu.com/tema313.html [Accesado el día 03 de noviembre de 2013]
disponible
en:
5) MC. Mario Alberto Gómez Rodríguez (2011), “Métodos Numéri cos, Raíces
múltiples (Métodos abiertos) y Sistemas de ecuaciones no lineales”, Universidad Politécnica de Victoria, disponible http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r83959.PDF [Accesado el día 03 de noviembre de 2013]
en:
6) ITESM,” Métodos numéricos en ingeniería civil”, disponible http://www.mty.itesm.mx/dia/deptos/cv2/cv00-845/Introduccion.ppt [Accesado el día 03 de noviembre de 2013]
en:
7) Félix Calderón Solorio, “Métodos numéricos ”, Facultad de ingeniería Eléctrica FIE, de la universidad u niversidad Michoacana Michoa cana de San Nicolás Nicol ás de Hidalgo Hid algo UMSNH, disponible en:
https://lc.fie.umich.mx/~calderon/programacion/Mnumericos/Bairstow.html [Accesado el día 03 de noviembre de 2013] 8) M. Valenzuela (2008) , “Métodos Numéricos Solución de ecuaciones no lineales ”, disponible: http://www.mty.itesm.mx/dtie/deptos/cb/cb008541/Apuntes/nolineales.pdf [Accesado el día 03 de noviembre de 2013]
9) Introducción al método de mínimos m ínimos cuadrados, disponible en: http://fisica.udea.edu.co/~labgicm/Laboratorio%20Fisica%201_2011/2010_t eoria%20de%20errores/Minimos_cuadrados_2010.pdf [Accesado el día 03 de noviembre de 2013] 10) Pedro Salvador (2007), “ Ajuste de curvas Técnicas Computacionales Computacionales ”, disponible en: http://iqc.udg.es/~perico/docencia/QTC/ajustes.pdf [Accesado el día 03 de noviembre de 2013] 11) Ajuste de una recta por mínimos cuadrados, disponible http://www.uv.es/jbosch/PDF/RectaMinimosCuadrados.pdf [Accesado el día 03 de noviembre de 2013]
en:
12) Mathieu Kessler (2010),” Ajuste por mínimos cuadrados” Departamento de Matemática Aplicada y Estadística, Universidad Politécnica de Cartagena, disponible en: http://ocw.bib.upct.es/pluginfile.php/5235/mod_resource/content/1/ajuste_po r_minimos_cuadrados.pdf [Accesado el día 03 de noviembre de 2013] 13) “Método de Diferencias Finitas ”, Equipo Métodos Numéricos, disponible en: https://sites.google.com/site/metnum00/home/unidad-iii/3-8-metodo-dediferencias-finitas [Accesado el día 03 de noviembre de 2013] 14) “Métodos numéricos ”, disponible http://www.frsn.utn.edu.ar/gie/an/edp/Conceptos.html [Accesado el día 03 de noviembre de 2013]
en:
15) C. Espinoza y Y. Niño (2001), “ Métodos De Diferencias Finitas ”, Modelación Numérica en Ingeniería Hidráulica y Ambiental, disponible en: http://materias.fi.uba.ar/7538/material/Otros/Espinoza&Ni%F1o-
Metodo%20de%20Diferencias%20Finitas.pdf [Accesado el día 03 de noviembre de 2013] 16) Diego López Monitor Carlos Álvarez,”Regla Del Trapecio”, U de A, disponible en: http://aprendeenlinea.udea.edu.co/lms/moodle/mod/resource/view.php?inpo pup=true&id=24528 [Accesado el día 03 de noviembre de 2013] 17) Diego López Monitor Carlos Álvarez,” Método Simpson”, U de A, disponible en: http://aprendeenlinea.udea.edu.co/lms/moodle/mod/resource/view.php?inpo pup=true&id=24529 [Accesado el día 03 de noviembre de 2013] 18) Diego López Monitor Carlos Álvarez,” Cuadratura De Gauss”, U de A, disponible en: http://aprendeenlinea.udea.edu.co/lms/moodle/mod/resource/view.php?inpo pup=true&id=24530 [Accesado el día 03 de noviembre de 2013] 19) José Miguel González Sántos, José Luis Alejandre Marco,Ana Isabel Allueva Pinilla (2003), “Introducción al Cálculo Integral”, Departamento de Matemática Aplicada Universidad de Zaragoza ,disponible en: http://www.unizar.es/3w/Materiales/ADD/Add_integrales_web/integrales_we b.pdf [Accesado el día 03 de noviembre de 2013] 20) “Diferenciación Numérica”, Computación / Matemáticas ( 2008), disponible en: http://www.mty.itesm.mx/dmti/materias/ma2008/lecturas/ma2008-03.pdf [Accesado el día 03 de noviembre de 2013] 21) “El Editor de Visual Basic”, Excel http://exceltotal.com/el-editor-de-visual-basic/ noviembre de 2013]
Total, disponible en: [Accesado el día 03 de
22) José Pedro García Sabater, “Manual Básico Para Empezar A Trabajar Con
Macros De Visual Basic Para Excel”, Universidad Politécnica De Valencia , disponible en: http://personales.upv.es/jpgarcia/LinkedDocuments/macrosVisualBasicPara Excel.pdf [Accesado el día 03 de noviembre de 2013] 23) “MACROS”, disponible en: http://www.eduteka.org/descargas/macros.pdf [Accesado el día 03 de noviembre de 2013]