Anda di halaman 1dari 38

Anlisis numrico

El anlisis numrico o clculo numrico es la rama de las matemticas que se encarga de disear algoritmos para, a travs de nmeros y reglas matemticas simples, simular procesos matemticos ms complejos aplicados a procesos del mundo real.

Contenido
[mostrar]

[editar] Introduccin general


El anlisis numrico es una rama de las matemticas cuyos lmites no son del todo precisos. De una forma rigurosa, se puede definir como la disciplina ocupada de describir, analizar y crear algoritmos numricos que nos permitan resolver problemas matemticos, en los que estn involucradas cantidades numricas, con una precisin determinada. En el contexto del clculo numrico, un algoritmo es un procedimiento que nos puede llevar a una solucin aproximada de un problema mediante un nmero finito de pasos que pueden ejecutarse de manera lgica. En algunos casos, se les da el nombre de mtodos constructivos a estos algoritmos numricos. El anlisis numrico cobra especial importancia con la llegada de los ordenadores. Los ordenadores son tiles para clculos matemticos extremadamente complejos, pero en ltima instancia operan con nmeros binarios y operaciones matemticas simples. Desde este punto de vista, el anlisis numrico proporcionar todo el andamiaje necesario para llevar a cabo todos aquellos procedimientos matemticos susceptibles de expresarse algortmicamente, basndose en algoritmos que permitan su simulacin o clculo en procesos ms sencillos empleando nmeros.

[editar] Conceptos generales


A partir de aqu, aparece un concepto adicional, el de error. Este concepto aparece como consecuencia de la naturaleza finita de los ordenadores que solo pueden operar con nmeros representados de forma finita. Definido el error, junto con el error admisible, pasamos al concepto de estabilidad de los algoritmos. Muchas de las operaciones matemticas pueden llevarse adelante a travs de la generacin de una serie de nmeros que a su vez alimentan de nuevo el algoritmo (feedback). Esto proporciona un poder de clculo y refinamiento importantsimo a la mquina que a medida que va completando un ciclo va llegando a la solucin. El problema ocurre en determinar hasta cundo deber continuar con el ciclo, o si nos estamos alejando de la solucin del problema. Finalmente, otro concepto paralelo al anlisis numrico es el de la representacin, tanto de los nmeros como de otros conceptos matemticos como los vectores, polinomios, etc. Por ejemplo, para la representacin en ordenadores de nmeros reales, se emplea el concepto de coma flotante que dista mucho del empleado por la matemtica convencional.

[editar] Aplicaciones

En general, estos mtodos se aplican cuando se necesita un valor numrico como solucin a un problema matemtico, y los procedimientos "exactos" o "analticos" (manipulaciones algebraicas, teora de ecuaciones diferenciales, mtodos de integracin, etc.) son incapaces de dar una respuesta. Debido a ello, son procedimientos de uso frecuente por fsicos e ingenieros, y cuyo desarrollo se ha visto favorecido por la necesidad de stos de obtener soluciones, aunque la precisin no sea completa. Debe recordarse que la fsica experimental, por ejemplo, nunca arroja valores exactos sino intervalos que engloban la gran mayora de resultados experimentales obtenidos, ya que no es habitual que dos medidas del mismo fenmeno arrojen valores exactamente iguales. Otro motivo que ha propiciado el auge del anlisis numrico ha sido el desarrollo de los ordenadores. El aumento de la potencia de clculo ha convertido en posibles y en eficientes a algoritmos poco dados a su realizacin a mano.

[editar] Problemas
[editar] Clasificacin segn su dimensin
Los problemas de esta disciplina se pueden dividir en dos grupos fundamentales:

Problemas de dimensin finita: aquellos cuya respuesta son un conjunto finito de nmeros, como las ecuaciones algebraicas, los determinantes, los problemas de valores propios, etc. Problemas de dimensin infinita: problemas en cuya solucin o planteamiento intervienen elementos descritos por una cantidad infinita de nmeros, como integracin y derivacin numricas, clculo de ecuaciones diferenciales, interpolacin, etc.

[editar] Clasificacin atendiendo a su naturaleza o motivacin


Asimismo, existe una subclasificacin de estos dos grandes apartados en tres categoras de problemas, atendiendo a su naturaleza o motivacin para el empleo del clculo numrico:

1) Problemas de tal complejidad que no poseen solucin analtica. 2) Problemas en los cuales existe una solucin analtica, pero sta, por complejidad u otros motivos, no puede explotarse de forma sencilla en la prctica. 3) Problemas para los cuales existen mtodos sencillos pero que, para elementos que se emplean en la prctica, requieren una cantidad de clculos excesiva; mayor que la necesaria para un mtodo numrico.

[editar] reas de estudio


El anlisis numrico se divide en diferentes disciplinas de acuerdo con el problema que resolver.

[editar] Clculo de los valores de una funcin


Uno de los problemas ms sencillos es la evaluacin de una funcin en un punto dado. Para polinomios, uno de los mtodos ms utilizados es el algoritmo de Horner, ya que reduce el nmero de operaciones a realizar. En general, es importante estimar y controlar los errores de redondeo que se producen por el uso de la aritmtica de punto flotante.

[editar] Interpolacin, extrapolacin y regresin

La interpolacin resuelve el problema siguiente: dado el valor de una funcin desconocida en un nmero de puntos, cul es el valor de la funcin en un punto entre los puntos dados? El mtodo ms sencillo es la interpolacin lineal, que asume que la funcin desconocida es lineal entre cualquier par de puntos sucesivos. Este mtodo puede generalizarse a la interpolacin polinmica, que suele ser ms precisa pero que sufre el llamado fenmeno de Runge. Otros mtodos de interpolacin usan otro tipo de funciones interpoladoras dando lugar a la interpolacin mediante splines y a la interpolacin trigonomtrica. Otros mtodos de interpolacin utilizando derivadas sucesivas de la funcin son mediante los polinomios de Taylor y la aproximacin de Pad. La extrapolacin es muy similar a la interpolacin, excepto que ahora queremos encontrar el valor de la funcin desconocida en un punto que no est comprendido entre los puntos dados. La regresin es tambin similar, pero tiene en cuenta que los datos son imprecisos. Dados algunos puntos, y una medida del valor de la funcin en los mismos (con un error debido a la medicin), queremos determinar la funcin desconocida. El mtodo de los mnimos cuadrados es una forma popular de conseguirlo.

[editar] Resolucin de ecuaciones y sistemas de ecuaciones


Otro problema fundamental es calcular la solucin de una ecuacin o sistema de ecuaciones dado. Se distinguen dos casos dependiendo de si la ecuacin o sistema de ecuaciones es o no lineal. Por ejemplo, la ecuacin 2x + 5 = 3 es lineal mientras que la ecuacin 2x2 + 5 = 3 no lo es. Mucho esfuerzo se ha puesto en el desarrollo de mtodos para la resolucin de sistemas de ecuaciones lineales. Mtodos directos, i.e., mtodos que utilizan alguna factorizacin de la matriz son el mtodo de eliminacin de Gauss, la descomposicin LU, la descomposicin de Cholesky para matrices simtricas (o hermticas) definidas positivas, y la descomposicin QR. Mtodos iterativos como el mtodo de Jacobi, el mtodo de GaussSeidel, el mtodo de las aproximaciones sucesivas y el mtodo del gradiente conjugado se utilizan frecuentemente para grandes sistemas. En la resolucin numrica de ecuaciones no lineales algunos de los mtodos ms conocidos son los mtodos de biseccin, de la secante y de la falsa posicin. Si la funcin es adems derivable y la derivada se conoce, el mtodo de Newton es muy utilizado. Este mtodo es un mtodo de iteracin de punto fijo. La linealizacin es otra tcnica para resolver ecuaciones no lineales.

[editar] Mtodos numricos para ecuaciones algebraicas polinomiales


Las ecuaciones algebraicas polinomiales poseen una gran cantidad de mtodos numricos para resolverse, entre ellos podemos enumerar los siguientes:

Mtodo de Greffe (o mtodo de Lobachevsky o de Lobachevsky-Dandelin-Greffe o del cuadrado de las races) Mtodo de Laguerre Mtodo de Bairstow (o mtodo de Lin-Bairstow) Mtodo de Bernoulli Mtodo de Horner Mtodo de Householder

Mtodo de Newton-Raphson especializado para polinomios Mtodo de Richmond especializado para polinomios Mtodo modificado de Richmond Mtodo de Newton-Horner Mtodo de Richomnd-Horner Mtodo de Birge-Bite Mtodo de Jenkins-Traub

[editar] Descomposicin espectral y en valores singulares


Bastantes problemas importantes pueden ser expresados en trminos de descomposicin espectral (el clculo de los vectores y valores propios de una matriz) o de descomposicin en valores singulares. Por ejemplo, el anlisis de componentes principales utiliza la descomposicin en vectores y valores propios.

[editar] Optimizacin
Artculo principal: Optimizacin (matemtica)

Los problemas de optimizacin buscan el punto para el cual una funcin dada alcanza su mximo o mnimo. A menudo, el punto tambin satisface cierta restriccin. Ejemplos de ,problemas de optimizacin son la programacin lineal en que tanto la funcin objetivo como las restricciones son lineales. Un mtodo famoso de programacin lineal es el mtodo simplex. El mtodo de los multiplicadores de Lagrange puede usarse para reducir los problemas de optimizacin con restricciones a problemas sin restricciones.

[editar] Evaluacin de integrales


Artculo principal: Integracin numrica

La integracin numrica, tambin conocida como cuadratura numrica, busca calcular el valor de una integral definida. Mtodos populares utilizan alguna de las frmulas de NewtonCotes (como la regla del rectngulo o la regla de Simpson) o de cuadratura gaussiana. Estos mtodos se basan en una estrategia de "divide y vencers", dividiendo el intervalo de integracin en subintervalos y calculando la integral como la suma de las integrales en cada subintervalo, pudindose mejorar posteriormente el valor de la integral obtenido mediante el mtodo de Romberg. Para el clculo de integrales mltiples estos mtodos requieren demasiado esfuerzo computacional, siendo til el mtodo de Monte Carlo.

[editar] Ecuaciones diferenciales


El anlisis numrico tambin puede calcular soluciones aproximadas de ecuaciones diferenciales, bien ecuaciones diferenciales ordinarias, bien ecuaciones en derivadas parciales. Los mtodos utilizados suelen basarse en discretizar la ecuacin correspondiente. Es til ver la derivacin numrica. Para la resolucin de ecuaciones diferenciales ordinarias los mtodos ms utilizados son el mtodo de Euler y los mtodos de Runge-Kutta.

Las ecuaciones en derivadas parciales se resuelven primero discretizando la ecuacin, llevndola a un subespacio de dimensin finita. Esto puede hacerse mediante un mtodo de los elementos finitos. Nociones bsicas de errores Introduccin. En una situacin real lo que se requiere no es muchas veces una respuesta exacta a un problema, sino ms bien una respuesta aproximada con una precisin prescrita; que es justamente lo que se da en el planteamiento numrico de un problema. Usaremos el trmino algoritmo para describir un procedimiento que requiere de un nmero finito de pasos para resolver un problema. Un mtodo numrico es un algoritmo diseado para dar respuesta numrica a un problema con una precisin prescrita. El clculo numrico evala los mtodos numricos diseados. Este proceso de tratamiento de la informacin que se vislumbra en el prrafo anterior, se puede resumir en el siguiente cuadro:

Es posible disponer de varios algoritmos para un problema dado, y si nuestro inters es elegir el mejor debemos considerar como criterios de seleccin la rapidez y la precisin. Por otro lado, es normal que los errores estn presentes en cada una de las etapas del proceso esquematizado en el cuadro anterior, es decir, es probable que exista error en la entrada, en el algoritmo y por ende en la salida. Es necesario, por tanto, revisar cada una de las fuentes de error. Fuentes de error. a) Error en el planteamiento. En la mayora de los casos el planteamiento de un problema corresponde a un modelo idealizado de los fenmenos reales debido a que, en general, nos vemos forzados a suponer condiciones que simplifiquen el problema real. b) Error del mtodo. En la prctica, ante la dificultad que significa resolver un problema en forma analtica, o ante la imposibilidad de hacerlo, se opta por reemplazar el procedimiento por uno que ofrezca una solucin aproximada a la del problema original. c) Error en la entrada de datos. Las imperfecciones de los medios utilizados para recopilar datos, provocan errores en las entradas numricas de un problema. d) Error de truncamiento. Por ejemplo, la evaluacin de funciones mediante desarrollos en series infinitas, obliga a considerar en el clculo slo un nmero finito de sumandos, truncando el resto de la sumatoria. e) Error de redondeo. La casi totalidad de los nmeros reales requieren, para su representacin decimal, de una infinidad de dgitos. En la prctica, para su manejo slo

debe considerarse un nmero finito de dgitos en su representacin, procedindose a su determinacin mediante un adecuado redondeo. Un caso tpico lo presentan los computadores que, en su memoria, almacenan slo representaciones finitas de los nmeros reales. En este caso hablamos de redondeo inherente. f) Error de propagacin. Al operar aritmticamente con cantidades aproximadas, los errores asociados a stas son propagados al resultado de la operacin. A veces estos errores pueden ser tan significativos que el resultado carece de sentido. g) Error de discretizacin. Muchos problemas de clculo aproximado se resuelven por discretizacin del problema original. Es as como integrales definidas se aproximan por sumas finitas, derivadas se aproximan por cuocientes de diferencias, etc. Computadores y error de redondeo.El error de redondeo es resultado directo de las limitaciones de los computadores: la aritmtica de la mquina slo comprende valores con un nmero finito de dgitos; as que cuando se combinan valores a travs de una operacin aritmtica los errores son automticos. Los nmeros se almacenan en la computadora como una secuencia de dgitos binarios o bits (unos o ceros), pero para analizar los efectos de los errores de redondeo, se supone que los nmeros se representan en la forma normalizada decimal de punto flotante

La secuencia de dgitos se conoce como la mantisa y el ndice n como el exponente. El manejo finito que hace el computador de los nmeros implica que existe un nmero mximo, digamos k, de dgitos por medio del cual puede representarse un valor; esto es, la mantisa slo debe contener k dgitos. Cualquier nmero real puede escribirse en la forma:

La forma de punto flotante mencionada anteriormente, y denotada por fl(x), se obtiene finalizando la mantisa de x despus de k dgitos. Hay dos formas de hacerlo. a) Corte o truncamiento: los dgitos se cortan de la mantisa para dar:

b) Redondeo : Si , entonces el dgito se mantiene sin cambio, truncando luego para dar finalmente:

Si , entonces el dgito se aumenta en 1 y luego se trunca el nmero x. Tambin hay restricciones respecto al tamao del exponente; n debe satisfacer la desigualdad

donde M y m son enteros positivos que pueden variar segn la mquina en que se trabaje. Si n llega a ser mayor que M, entonces se dice que el nmero se ha desbordado (overflow); es decir, es demasiado grande para representarlo en la mquina. Por otro lado, si n es menor que - m, entonces se dice que se ha producido un vaciamiento (underflow); en este caso algunos computadores reajustan el valor del nmero a cero y continan el clculo, y otros dan un mensaje de error. Error absoluto, error relativo y dgitos significativos. Durante un clculo, la acumulacin de errores de redondeo puede descomponer por completo el resultado, de modo que es esencial poder identificar las operaciones tendientes a producir grandes errores de redondeo. Pueden utilizarse dos medidas para cuantificar estos errores. Definicin: Si es una aproximacin a x, entonces se define el error absoluto como

, y el error relativo como siempre que x no sea cero. Observaciones: A partir de esta definicin, se observa que la representacin de punto flotante de x tiene un error relativo igual a:

Si se dispone de k dgitos, entonces se encuentra que un lmite de error relativo de

por truncamiento y por redondeo.

Definicin: Se dice que los nmeros x y coinciden hasta s dgitos (cifras) significativos si s es el mayor nmero entero no negativo para el cual

Cifras Significativas y Redondeo 1. Cualquier dgito diferente de cero es significativo. 1234.56 6 cifras significativas 2. Ceros entre dgitos distintos de cero son significativos. 1002.5 5 cifras significativas 3. Ceros a la izquierda del primer dgito distinto de cero no son significativos. 000456 3 cifras significativas 0.0056 2 cifras significativas 4. Si el nmero es mayor que (1), todos los ceros a la derecha del punto decimal son significativos. 457.12 5 cifras significativas 400.00 5 cifras significativas 5. Si el nmero es menor que uno, entonces nicamente los ceros que estn al final del nmero y entre los dgitos distintos de cero son significativos. 0.01020 4 cifras significativas 6. Para los nmeros que contengan puntos decimales, los ceros que se arrastran pueden o no pueden ser significativos. En este curso suponemos que los dgitos son significativos a menos que se diga los contrario. 1000 1, 2, 3, o 4 cifras significativas. Supondremos 4 en nuestros clculos 0.0010 2 cifras significativas 1.000 4 cifras significativas 7. Supondremos que cantidades definidas o contadas tienen un nmero ilimitado de cifras significativas

NOTE: Es mucho ms fcil contar y encontrar las cifras significativas si el nmero est escrita en notacin significativa. CIFRAS SIGNIFICATIVAS La exactitud de los datos obtenidos en un experimento depende tanto de los instrumentos de medida como de la calidad del experimentador. Por cuanto todo instrumento de medida tiene un lmite de sensibilidad, es lgico pensar que al medir, por ejemplo el tiempo, con un reloj de pulsera, es imposible obtener una exactitud de milsimas o millonsimas de segundo. El correcto manejo de los datos obtenidos en un experimento, en cuanto a su precisin se refiere, se trabaja con las cifras significativas. Al afirmar que la medicin de cierta longitud dio como resultado 15,4 cm , se quiere decir que sobre el valor de 15 cm tenemos plena certeza, mientras que el 4 decimal es un tanto ambiguo y est afectado por cierto error. Lo nico que se puede decir con seguridad es que el valor obtenido est ms cerca de 15 cm que de 16 cm de 14 cm . Acerca de las centsimas no se dice nada. No sabemos si el resultado de la medicin es 15,42 cm 15,38 cm , pero si que este valor se encuentra entre 15,35 cm y 15,45 cm, presentndose entonces una incertidumbre total de 0,1 cm . Como vemos no es lo mismo escribir 15,4 cm que escribir 15,40 cm ya que en este caso estamos afirmando que conocemos la longitud con una exactitud de hasta una centsima, (que es diez veces ms exacto que en el caso anterior) y as, la incertidumbre es ya de una milsima de centmetro, es decir el valor de la longitud se encuentra entre 15,395 cm y 15,415 cm . Las dos cifras 15,4 cm y 15,40 cm implican mtodos e instrumentos de medida que pueden ser diferentes. De esta manera:

Todo este bloque de cifras contiene la misma informacin desde el punto de vista experimental. Se dice por lo tanto que todas ellas tienen el mismo nmero de cifras significativas que en este caso es de tres (3), compuesta de dos dgitos ciertos (15) y uno afectado por la incertidumbre (el 4 decimal). Sin embargo el nmero total de dgitos no representa necesariamente la precisin de la medicin. Por ejemplo la poblacin de una ciudad se reporta con seis cifras como 260 000 . Esto puede significar que el valor verdadero de la poblacin yace entre 259 999 y 260 001 los cuales tienen seis cifras significativas. En realidad lo que significa es que la poblacin est ms cerca de 260 000

que de 250 000 de 270 000 . En notacin decimal:

Coma flotante
Se ha sugerido que Tipo de dato real sea fusionado en este artculo o seccin (discusin).

Una vez que hayas realizado la fusin de artculos, pide la fusin de historiales aqu.

La representacin de coma flotante, es una forma de notacin cientfica usada en los CPU, GPU, FPU, etc, con la cual se pueden representar nmeros reales extremadamente grandes y pequeos de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritmticas. El estndar para la representacin en coma flotante es el IEEE 754.

Contenido
[mostrar]

[editar] Notacin cientfica


Artculo principal: Notacin cientfica

Como la representacin en coma flotante es casi idntica a la notacin cientfica tradicional, con algunos aadidos y algunas diferencias, primero se describir la notacin cientfica para entender cmo funciona, y luego se describir la representacin de coma flotante y las diferencias.

[editar] Representacin
La notacin cientfica, es usada para representar nmeros reales. Siendo r es el nmero real a representar, la representacin en notacin cientfica est compuesta de tres partes:

c. El coeficiente, conformado por un nmero real con un solo dgito entero seguido de una coma (o punto) y de varios dgitos fraccionarios. b. La base, que en nuestro sistema decimal es 10, y en el sistema binario de los computadores es 2. e. El exponente entero, el cual eleva la base a una potencia

[editar] Coeficiente

Un signo en el coeficiente indica si el nmero real es positivo o negativo. El coeficiente tiene una cantidad determinada de dgitos significativos, los cuales indican la precisin del nmero representado, mientras ms dgitos tenga el coeficiente, ms precisa es la representacin. Por ejemplo, lo podemos representar en notacin cientfica, con 3 cifras significativas, 3,14 x 100, o con 12 cifras significativas, 3,14159265359 x 100, teniendo la segunda representacin mucho ms precisin que la primera.
[editar] Base y exponente

El coeficiente es multiplicado por la base elevada a un exponente entero. En nuestro sistema decimal la base es 10. Al multiplicar el coeficiente por la base elevada a una potencia entera, lo que estamos haciendo es desplazando la coma del coeficiente tantas posiciones (tantos dgitos) como indique el exponente. La coma se desplaza hacia la derecha si el exponente es el positivo, o hacia la izquierda si es negativo). Ejemplo de cmo cambia un nmero al variar el exponente de la base:

2,71828 x 10-2 representa al nmero real 0,0271828 2,71828 x 10-1 representa al nmero real 0,271828 2,71828 x 10 0 representa al nmero real 2,71828 (el exponente cero indica que la coma no se desplaza) 2,71828 x 10 2,71828 x 10
1 2

representa al nmero real 27,1828 representa al nmero real 271,828

[editar] Ejemplo
Un ejemplo de nmero en notacin cientfica es el siguiente:
-1,23456789 x 103

El coeficiente es -1,23456789, tiene 9 dgitos significativos, y est multiplicado por la base diez elevada a la 3. El signo del coeficiente indica si el nmero real representado por la notacin cientfica es positivo o negativo. El valor de la potencia nos indica cuntas posiciones (cuntos dgitos) debe ser desplazada la coma del coeficiente para obtener el nmero real final. El signo de la potencia nos indica si ese desplazamiento de la coma debe hacerse hacia la derecha o hacia la izquierda. Una potencia positiva indica que el desplazamiento de la coma es hacia la derecha, mientras que un signo negativo indica que el desplazamiento debe ser hacia la izquierda. Si la potencia es cero, la coma no se desplaza ninguna posicin. La razn de la denominacin de "coma flotante", es porque la coma se desplaza o "flota" tantos dgitos como indica el exponente de la base, al cambiar el exponente, la coma "flota" a otra posicin. En el nmero representado en la notacin cientfica anterior, -1,23456789 x 103, el exponente es 3 positivo, lo que indica que la coma del coeficiente -1,23456789 debe ser desplazada 3 posiciones hacia la derecha, dando como resultado el nmero real equivalente:
-1234,56789

Abajo, una tabla con ejemplos de nmeros reales de tres dgitos significativos y su representacin en notacin cientfica:
Nmero real Notacin cientfica

1230000000000000000 1,23 x 1020 00,0 123000000,0 1230,0 123,0 12,3 1,23 0,123 1,23 x 108 1,23 x 103 1,23 x 102 1,23 x 101 1,23 x 100 1,23 x 10-1

0,0123 0,00123 0,0000000123

1,23 x 10-2 1,23 x 10-3 1,23 x 10-8

0,00000000000000000 1,23 x 10-20 00123

Como puede verse en la tabla, la representacin en notacin cientfica de los nmeros reales es mucho ms compacta cuando los nmeros son muy grandes en magnitud, o cuando son de magnitud muy pequea (cercanos a cero), es por eso que es muy usada en ciencia, donde hay que lidiar con cifras enormes como la masa del sol, 1,98892 1030 kg, o muy pequeas como la carga del electrn, -1,602176487 10-19 coulomb, y tambin es por eso que se usa, en forma de coma flotante, para la representacin de nmeros reales en el computador.

[editar] Representacin en los computadores y las calculadoras


Para la entrada y el despliegue de nmeros en notacin cientfica, los computadores y las calculadoras pueden representarlos de diferentes maneras. Por ejemplo, dependiendo del sistema, la velocidad de la luz, 2,99792458 x 108, puede representarse como sigue:
Notacin Comentario

2,99792458 Notacin cientfica estndar usada en ciencia y tecnologa x 108 2,99792458 Usada generalmente en los computadores y en calculadoras, a e8 veces la "e" va en mayscula Usada en el lenguaje BASIC para representar nmeros de doble 2,99792458 precisin (15 dgitos significativos). Quedando la "e" del ejemplo d8 anterior para nmeros de simple precisin (6 1/2 dgitos significativos) Usada en calculadoras. El exponente de 10, (la expresin x 108), 2,99792458 es ingresado usando una variedad de teclas dependiendo de la x 108 calculadora, como 10x o EXP

[editar] Sistema binario


Artculo principal: Sistema binario

Un valor real se puede extender con una cantidad arbitraria de dgitos. La coma flotante permite representar solo una cantidad limitada de dgitos de un nmero real, solo se trabajar con los dgitos ms significativos, (los de mayor peso) del nmero real, de tal manera que un nmero real generalmente no se podr representar con total precisin sino como una aproximacin que depender de la cantidad de dgitos significativos que tenga la representacin en coma flotante con que se est trabajando. La limitacin se halla cuando

existen dgitos de peso menor al de los dgitos de la parte significativa. En dicho caso stos suelen ser redondeados, y si son muy pequeos son truncados. Sin embargo, y segn el uso, la relevancia de esos datos puede ser despreciable, razn por la cual el mtodo es interesante pese a ser una potencial fuente de error. En la representacin binaria de coma flotante, el bit de mayor peso define el valor del signo, 0 para positivo, 1 para negativo. Le siguen una serie de bits que definen el exponente. El resto de bits son la parte significativa. Debido a que la parte significativa est generalmente normalizada, en estos casos, el bit ms significativo de la parte significativa siempre es 1, as que no se representa cuando se almacena sino que es asumido implcitamente. Para poder realizar los clculos ese bit implcito se hace explcito antes de operar con el nmero en coma flotante. Hay otros casos donde el bit ms significativo no es un 1, como con la representacin del nmero cero, o cuando el nmero es muy pequeo en magnitud y rebasa la capacidad del exponente, en cuyo caso los dgitos significativos se representan de una manera denormalizada para as no perder la precisin de un solo golpe sino progresivamente. En estos casos, el bit ms significativo es cero y el nmero va perdiendo precisin poco a poco (mientras que al realizar clculos ste se haga ms pequeo en magnitud) hasta que al final se convierte en cero.

[editar] Ejemplo
Emplearemos varios ejemplos para describir la notacin de coma flotante. Abajo tenemos 3 nmeros en una representacin de coma flotante de 16 bits. El bit de la izquierda es el signo, luego hay 6 bits para el exponente, seguidos de 9 bits para la parte significativa:

[editar] Signo

El signo es expresado por el bit de la izquierda, con 0 indicando que el nmero es positivo y 1 indicando que el nmero es negativo. En los ejemplos de arriba, el primer nmero es negativo y los dos siguientes son positivos.
[editar] Exponente

El exponente indica que tanto se debe desplazar hacia la derecha o hacia la izquierda la coma binaria de la parte significativa. En este caso, el exponente ocupa 6 bits capaces de representar 64 valores diferentes, es decir, es un exponente binario (de base 2) que va desde -31 a +32, representando potencias de 2 entre 2-31 y 2+32, indicando que la coma binaria se puede desplazar en hasta 31 dgitos binarios hacia la izquierda (un nmero muy cercano a cero), y hasta 32 dgitos binarios hacia la derecha (un nmero muy grande). Pero el exponente no se almacena como un nmero binario con signo (desde -31 hasta +32) sino como un entero positivo equivalente que va entre 0 y 63. Para ello, al exponente se le debe sumar un desplazamiento (bias), que en este caso de exponente de 6 bits (64 valores), es 31 (31 es la mitad de los 64 valores que se pueden representar, menos 1), y al final, el

rango del exponente de -31 a +32 queda representado internamente como un nmero entre 0 y 63, donde los nmeros entre 31 y 63 representan los exponentes entre 0 y 32, y los nmeros entre 0 y 30 representan los exponentes entre -31 y -1 respectivamente:
-31 0 32 <-- Exponente binario real +-------+-------+-------+-------+ 0 31 63 <-- Representacin en coma flotante del exponente de 6 bits (Es el exponente binario ms un bias de 31)

[editar] Parte significativa

La parte significativa, en este caso, est formada por 10 dgitos binarios significativos, de los cuales tenemos 9 dgitos explcitos ms 1 implcito que no se almacena. Esta parte significativa generalmente est normalizada y tendr siempre un 1 como el bit ms significativo. Debido a que, salvo ciertas excepciones, el bit ms significativo del significante siempre es 1, para ahorrar espacio y para aumentar la precisin en un bit, este bit no se almacena, y por ello se denomina bit oculto o implcito, sin embargo, antes de realizar los clculos este bit implcito debe convertirse en un bit explcito.
[editar] Nmeros reales representados

La notacin genrica para la coma flotante descrita arriba, representa respectivamente los siguientes nmeros reales (expresados en binario). El color rojo indica el bit ms significativo, que cuando se almacena es implcito (ver arriba la parte significativa en la representacin de coma flotante), pero cuando se hacen los clculos, o cuando se muestra la informacin se vuelve explcito:
(La coma se desplaza 4 posiciones binarias (bits) a la derecha)

(La coma se desplaza 4 posiciones binarias a la izquierda)

(La coma se desplaza 10 posiciones binarias a la derecha) (con todos los valores expresados en representacin binaria)

[editar] Comparacin con la coma fija


Para un tamao determinado de bytes, la notacin en coma flotante puede ser ms lenta de procesar y es menos precisa que la notacin en coma fija, ya que adems de almacenar el nmero (parte significativa), tambin debe almacenarse el exponente, pero permite un mucho mayor rango en los nmeros que se pueden representar.

[editar] Coprocesador numrico y bibliotecas de coma flotante

Debido a que las operaciones aritmticas que se realizan con nmeros en coma flotante son complejas de realizar, muchos sistemas destinan un procesador especial para la realizacin especfica de este tipo de operaciones, denominado unidad de coma flotante o tienen especializados incorporados componentes. En los casos donde no exista esta facilidad, o que el hardware de coma flotante no pueda realizar determinadas operaciones, se utilizan bibliotecas de software para realizar los clculos.

INSTITUTO TECNOLGICO DE CD GUZMN Mtodos numricos Profr. No. C. 01290188 Ing Elctrica 3er semestre MTODOS NUMRICOS Anlisis numrico. Una definicin de anlisis numrico podra ser el estudio de los errores en los clculos; error aqu no quiere decir un disparate, equivocacin u omisin, sino ms bien una discrepancia entre el valor exacto y el calculado, que es consecuencia de la manera con que se manejan los nmeros o frmulas. Otra definicin de anlisis numrico podra ser el diseo, uso y anlisis de algoritmos, los cuales son conjuntos de instrucciones cuyo fin es calcular o aproximar alguna cantidad o funcin. Un especialista de anlisis numrico se interesa en la creacin y comprensin de buenos mtodos que resuelvan problemas numricamente. Una caracterstica importante del estudio de los mtodos es su variacin. El anlisis numrico consiste en procedimientos que resuelven problemas y realizan clculos puramente aritmticos. Pero hay que tomar en cuenta las caractersticas especiales y limitaciones de los instrumentos de clculo (como las computadoras) que nos ayudan en la ejecucin de las instrucciones del algoritmo. Si bien no nos interesa la construccin de tal dispositivo o la manera en que funciona, si nos importarn los sistemas numricos de mquinas en contraposicin con nuestro sistema de nmeros reales, y los errores resultantes de cambiar de uno a otro sistema. Una buena razn para estudiar el anlisis numrico es mejorar nuestra comprensin de los conceptos de las matemticas (puras) observando como algunos de ello deben modificarse necesariamente en las matemticas computacionales.

Despus de todo, el anlisis numrico es importante porque es necesario en la solucin de muchos problemas del mundo real. Mtodos numricos. Los mtodos numricos son tcnicas mediante las cuales es posible formular problemas matemticos de tal forma que puedan resolverse usando operaciones aritmticas. Hay muchos tipos de mtodos numricos, y comparten una caracterstica comn: invariablemente se deben realizar un buen nmero de tediosos clculos aritmticos. Los mtodos numricos son herramientas muy poderosas para a solucin de problemas. Pueden manejar sistemas de ecuaciones grandes, no linealidades y geometras complicadas, comunes en la ingeniera. Tambin es posible que se utilice software disponible comercialmente que contenga mtodos numricos. El uso inteligente de estos programas depende del conocimiento de la teora bsica de estos mtodos; adems hay muchos problemas que no pueden plantearse al emplear programas hechos, conociendo bien los mtodos numricos se puede disear programas propios y as no comprar software costoso. Al mismo tiempo se aprende a conocer y controlar los errores de aproximacin que son inseparables de los clculos numricos a gran escala. Los mtodos numricos son un medio para reforzar la comprensin de las matemticas, porque profundizan en los temas que de otro modo resultaran obscuros, esto aumenta su capacidad de comprensin y entendimiento en la materia. Cifras significativas. Cuando se emplea un nmero en un clculo, debe haber seguridad de que pueda usarse con confianza. El concepto de cifras significativas tiene dos implicaciones importantes en el estudio de los mtodos numricos. 1.- Los mtodos numricos obtienen resultados aproximados. Por lo tanto, se debe desarrollar criterios para especificar que tan precisos son los resultados obtenidos. 2.- Aunque ciertos nmeros representan nmero especficos, no se pueden expresar exactamente con un nmero finito de cifras. Exactitud y Precisin. La exactitud se refiere a que tan cercano est el valor calculado o medido del valor verdadero. La precisin se refiere a qu tan cercano est un valor individual medido o calculado respecto a los otros. La inexactitud se define como un alejamiento sistemtico de la verdad. La imprecisin, sobre el otro lado, se refiere a la magnitud del esparcimiento de los valores. Los mtodos numricos deben ser lo suficientemente exactos o sin sesgos para que cumplan los requisitos de un problema particular de ingeniera. Error. En general, para cualquier tipo de error, la relacin entre el nmero exact9 y el obtenido por aproximacin se define como: Error = Valor real -valor estimado En ocasiones, se sabr exactamente el valor del error, que denotaremos como Ev, o deberemos estimar un error aproximado.

Ahora, para definir la magnitud del error, o que incidencia tiene en el clculo el error detectado, podemos normalizar su valor : Ea = Error relativo (fraccin) = error estimado I valor verdadero Como el valor de Ea puede ser tanto positivo como negativo, en muchos casos nos interesa saber ms la magnitud del error, caso en el cual usaremos el valor absoluto de este. Un caso muy interesante es una investigacin que realiza Scarborough, en que determin el nmero de cifras significativas que contiene el error como:

Si reemplazamos Es en la ecuacin. Obtendremos el nmero de cifras significativas en que es confiable el valor aproximado obtenido. As, si queremos que nuestro clculo tenga un error menor al criterio para dos cifras significativas, debemos obtener nmeros que correspondan a menos de: Es=(0.5x 102-2)%=0.5% Esto nos servir para determinar cuntos trminos sern necesarios en un clculo aproximado para tener la certeza que el error se encuentra bajo el margen especificado en Es ERROR DE REDONDEO Muchas veces, los computadores cortan los nmeros decimales entre e17 y 12 decimal introduciendo as un error de redondeo Por ejemplo, el valor de "e" se conoce como 2.718281828... hasta el infinito. Si cortamos el nmero en 2.71828182 (8 cifras significativas luego del punto decimal) estamos obteniendo u error de E = 2.718281828 -2.71828182 = 0.000000008... Sin embargo, como no consideramos que el nmero que segua al corte era mayor que 5, entonces nos convena dejar el nmero como 2.71828183, caso en el cual el error sera solo de E = 2.118281828 -2.11828183 = -0.000000002.. , que en trminos absolutos es mucho menor que el anterior. En general, el error de corte de las computadoras ser muy inferior al error introducido por un usuario, que generalmente corta a un menor nmero de cifras significativas. Dependiendo de la magnitud de los nmeros con los que se trabaja, el error de redondeo puede tener una incidencia muy grande muy pequea en el clculo final. As por ejemplo, si tenemos un producto de 502,23 m y un precio en dlares de US $ 7,52, el precio total nos dar US$ 3.776,7696 (que en pesos chilenos, con 1 dlar = $500 nos da $1.888.384,8). Ahora, si introducimos una variacin del 0.1% en los metros del producto y calculamos el total, obtenemos 502,23 * 0.1 % = 507, 54 , que en US$ equivalen a US$3.816,7008 ( o sea, $1.908.350,4 pesos chilenos, una diferencia de $19.965,6) lo que no deja de ser importante, ya que una variacin de 0.1% en el metraje del producto nos da un error superior a 1.5% en el precio final

ERRORES DE TRUNCAMIENTO. Los errores de truncamiento tienen relacin con el mtodo de aproximacin que se usar ya que generalmente frente a una serie infinita de trminos, se tender a cortar el nmero de trminos, introduciendo en ese momento un error, por no utilizar la serie completa (que se supone es exacta). En una iteracin, se entiende como el error por no seguir iterando y seguir aproximndose a la solucin. En un intervalo que se subdivide para realizar una serie de clculos sobre l, se asocia al nmero de paso, resultado de dividir el intervalo "n" veces. ERROR NUMERICO TOTAL El error numrico total se entiende como la suma de los errores de redondeo y truncamiento introducidos en el clculo. Pero aqu surge un gran problema. Mientras ms clculos se tengan que realizar para obtener un resultado, el error de redondeo se ir incrementando. Pero por otro lado, el error de truncamiento se puede minimizar al incluir ms trminos en la ecuacin, disminuir el paso o proseguir la iteracin ( o sea mayor nmero de clculos y seguramente mayor error de redondeo). Entonces, qu criterio utilizamos? ...lo ideal sera determinar el punto en que los errores de donde empiezan a ocultar la ventaja de considerar un menor error de truncamiento. Pero como dije, es lo ideal; en la prctica debemos considerar que hoy por hoy los computadores tienen un manejo de cifras significativas mucho mayor que antes por lo que el error de redondeo se minimiza enormemente, aunque no se debe dejar olvidar su aporte al error total. Expansin en Series de Taylor Una especial atencin tiene la aproximacin de funciones por la utilizacin de series de expansin de Taylor. As, si una funcin es continua y diferenciable dentro del intervalo de inters, puede ser escrita como una serie de potencia finita, o serie de Taylor.

Este mtodo no puede, sin embargo, usarse para ajustar datos experimentales [Xi , f(xJ], sino que para transformar funciones ya conocidas y diferenciables a unas de ms fcil manejo. Existen ciertas observaciones que deben conocerse al aplicar esta frmula. Por ejemplo, para tener una mejor aproximacin de la funcin a un intervalo [a, b], el valor de Xo debe elegirse lo ms cercano posible al centro de dicho intervalo. De esta manera se minimiza la contribucin mxima del trmino (X-Xo)n+l del residuo en el clculo de R(x) entre a < = x < = b. Otra forma de minimizar el valor del residuo es elevar el grado del polinomio de ajuste, o sea incluir ms trminos en la serie y reducir as el exponente de R(x).

CONCLUSIONES El estudio de los mtodos numricos, de la manera en que lo veo, es muy til y por ende importante para quien quiera que necesite herramientas para resolver operaciones, las cuales se saben que pueden resultar complicadas, y por ms que se dominen los mtodos tradicionales, estos muchas veces pueden no ser suficientes, sin embargo no esto no quiere decir que la operacin sea imposible de solucionar, y es ah donde los mtodos numricos se aplican, y facilitan es trabajo de cierta manera. El hecho de que se tomen tan en cuenta los errores, no nos deja cerca de la perfeccin pero al considerarlos,. al menos no da una idea de con que contamos y con que no, as podemos tomar decisiones informadas y por lo tanto pienso yo que mejores. Adems pasando a la parte prctica, su estudio nos puede ayudar a modificar, entender e incluso simplificar algn tipo de software que los maneje, esto resulta mucha ventaja para el usuario, pues si conoces lo que haces lo puedes usar con ms provecho y optimizacin. En pocas palabras las aplicaciones de los mtodos numricos son muy variadas y necesarias, especialmente parta las ingenieras como ya lo expres anteriormente, con esto, puedo concluir que me interesa su estudio, y sobre todo aprenderlos y manejarlos bien, porque ahora veo que en un futuro no muy lejano es muy probable que los necesite aplicar.

El Rincn del Vago, en Salamanca desde 1998 - Condiciones de Uso - Contacto INTRODUCCIN En la prctica de la ingeniera y ciencias es frecuente tener la necesidad de resolver un sistema de ecuaciones lineales. Estos sistemas aparecen en muy diversos problemas, ya sea como la solucin completa de un problema al menos como parte de ella. Dada esta necesidad frecuente, se requiere resolverlos en forma eficiente. Los mtodos numricos que resuelven los sistemas se pueden clasificar en directos e indirectos. Los mtodos directos son aquellos que determinan la solucin en un numero determinado de pasos. Los mtodos iterativos son aquellos que obtienen la solucin aproximndose a ella en un numero finito, pero no definido de pasos. La siguiente entrega pretende encontrar la solucin de un sistema de ecuaciones lineales por los mtodos anteriormente mencionados. Como los algoritmos de los mtodos ya estn disponibles en la mayora de los libros de texto sobre la materia, se explicara en la medida de lo posible, detalles de implementacin(personales)de los mtodos directos(que son mas difciles de programar). El lenguaje de programacin idneo para tal fin ser matlab 6.0

SISTEMAS LINEALES DE ECUACIONES Antes de empezar con los detalles de implementacin de los mtodos directos resulta conveniente determinar con que sistema o sistemas vamos a trabajar. Para los mtodos directos se preferir un sistema cuya matriz de coeficientes sea simtrica y definida positiva; la razn de tal decisin radica es que con este tipo de matrices trabaja el mtodo directo de "Cholesky", a diferencia de Doolittle y Crout. Puesto que se utilizar un W(factor de relajacin) dado : W = (raz cuadrada(5)+1)/2 = 1.61803398874989aprox. No ser necesario tener un sistema tridiagonal para hallar dicho valor. Como consecuencia de lo anteriormente expuesto, se utilizar el mismo sistema para los mtodos directos e iterativos. Una matriz A es simtrica si su transpuesta es igual a A. Es decir: A = [a(i,j)] es simtrica si y solo si [a(i,j)]=[a(j,i)]. Una matriz simtrica A es positiva definida si y solo si los eigenvalores(valores propios) de A son positivos. Toda matriz simtrica se puede descomponer como: A = L*Lt (transpuesta) Para construir de manera fcil la matriz en cuestin, basta con utilizar las siguientes instrucciones en matlab: >>L=tril(ones(10)); %construye L >>A=L*L'; %construye L*Lt >>A%matriz simtrica A= 1111111111 1222222222 1233333333 1234444444 1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 Si se quiere comprobar que efectivamente se trata de una matriz positiva definida, basta con teclear:

>>eig(A)%calcula los valores propios de A Que obtendr: ans = 0.2557 0.2738 0.3080 0.3662 0.4652 0.6431 1.0000 1.8730 5.0489 44.7661 Y todos los valores propios de A son positivos Para evitar problemas de convergencia en los mtodos iterativos es necesario que el esquema convergente quede determinado. Para el mtodo de Jacobi basta teclear: >> S=diag(diag(A));%crea la matriz diagonal >> T=S-A; >>B=inv(S)*T; >>eig(B) Que arroja: ans = -6.2572 -0.3709 0.4470 0.7060 0.8199 0.8800 0.9156 0.9386 0.9545 0.9666 Como cada uno de los valores propios es menor que ("<1"),entonces el esquema de convergencia "A", sirve para obtener las ecuaciones iterativas del mtodo de Jacobi. Para el mtodo de Gauss-Seidel:

>> L=tril(A,-1); >>D=diag(diag(A)); >> S=D+L; >> T=S-A; >>B=inv(S)*T; >> eig(B) Que arroja: ans = 0 0.5000 0.6667 0.7500 0.8000 0.8333 0.8571 0.8750 0.8889 0.9000 Como cada uno de los valores propios es menor que ("<1"),entonces el esquema de convergencia "A", sirve para obtener las ecuaciones iterativas del mtodo de Gauss-Seidel. Como ya se ha determinado la matriz de coeficientes del sistema, ahora slo resta elegir el vector de trminos independientes y determinar la solucin del sistema(para ayudarnos a ver mejor el comportamiento de los mtodos). Como todo sistema se puede escribir como Ax=b, utilizaremos a matlab para resolverlo por x = (inversa de A)*b.(solucin por la inversa) Entonces se teclea: >>b=[11;2;9;20;5;6;7;0;1;3];%vector de trminos independientes >> x=inv(A)*b;%solucin por la inversa El resultado obtenido ser: x= 20 -16 -4 26 -16 0

8 -8 -1 2 Que es el vector solucin que se presumir obtener por los mtodos a evaluar. Nuestro sistema quedar entonces de la siguiente manera:

Que es la forma matricial Ax=b. METODOS DIRECTOS Puesto que ya se determin el sistema con el cual se trabajar, ahora se centrar la atencin en la programacin de los mtodos directos. La lgica de los algoritmos(procedimientos no ambiguos que resuelven problemas),sugieren que el cuerpo de la implementacin sea: 1)Captura de los datos de entrada. 2)Implementacin de un mtodo directo. 3)Implementacin de los procedimientos progresivos y regresivos que llevan a la solucin. 4)Salida y presentacin de los resultados. Se explicara solo los detalles del mtodo de Doolittle, cuya lgica es aplicable a los restantes mtodos directos respecto a los itenes 1. y 3). DOOLITTLE (Captura de los datos de entrada) Que es lo que necesita un mtodo directo para poder empezar? Resulta lgico pensar que necesita A y b (Ax=b), pero si esto se hace pidindole al usuario que digite A y luego b, se corre el riesgo que digite mal los datos, adems resulta muy cansado hacerlo. Podra adems digitar un tamao de matriz que no corresponde a la matriz. Para aminorar un poco el riesgo, se le pedir al usuario que ingrese la matriz aumentada del sistema, de la cual se sacar la informacin necesaria para que el mtodo funcione.

Como el tamao de A es n*n, el tamao de la matriz aumentada es n*n+1, puesto que se incluye a "b"(una columna mas). El algoritmo de captura quedara como: 1. Lea matriz
2. Tam=tamao(matriz)

3. Para i=1, n haga b(i)=matriz(i,n+1) (determinar "b") Para j=1, n haga A(i,j)=matriz(i,j) (determinar "A") Finpara Finpara 4- b1=transpuesta(b) ("b" es un vector columna) DOOLITTLE (Implementacin de los procedimientos progresivos y regresivos que llevan a la solucin.) Se utilizar un sistema de 3*3 y 4*4 para ver el comportamiento de "c" en L*c=b, y de "x" en Ux=c. L*c=b

c(1)=b(1) c(2)=b(2)-[l(2,1)*c(1)] c(3)=b(3)-[l(3,1)*c(1)+l(3,2)*c(2)]

c(1)=b(1) c(2)=b(2)-[l(2,1)*c(1)]

c(3)=b(3)-[l(3,1)*c(1)+l(3,2)*c(2)] c(4)=b(4)-[l(4,1)*c(1)+l(4,2)*c(2)+l(4,3)*c(3)] Es facil observar, que lo que se esta efectuando entre corchetes([]), es una sumatoria. Tambin se observa que en L(i,j) , i<>j y i>j Adems, de c(2) a c(n) se tiene que para L(i,j), i=2,n y j=1,n-1 Entonces el esquema para c quedaria como: c(1)=b(1) c(i)=b(i)-Sumatoria(L(i,j)*c(i)), i<>j y i>j para todo L(i,j) con i=2,n y j=1,n-1 El procedimiento que resume este comportamiento es: c(1)=b(1) Para i=2,n haga z=0 Para j=1,n-1 haga Si i<>j y i>j entonces z=z+L(i,j)*c(j) Finsi Finpara c(i)=b(i)-z Finpara Ux=c

x(3)=c(3)/u(3,3) x(2)={c(1)-[u(2,3)*x(3)]}/u(2,2) x(1)={c(1)-[ u(1,3)*x(3)+u(1,2)*x(2) ]}/u(1,1)

x(4)=c(4)/u(4,4) x(3)={c(3)-[u(3,4)*x(4)]}/u(3,3) x(2)={c(2)-[u(2,4)*x(4)+u(2,3)*x(3)]}/u(2,2) x(1)={c(1)-[u(1,4)*x(4)+u(1,3)*x(3)+u(1,2)*x(2)]}/u(1,1) Es facil observar, que lo que se esta efectuando entre corchetes([]), es una sumatoria. Tambin se observa que en U(i,j) , i<>j y i<j Adems, de x(n-1) a x(1) se tiene que para U(i,j), i=n-1,1 y j=n,2 Entonces el esquema para x quedaria como: x(n)=c(n)/u(n,n) x(i)=c(i)-Sumatoria(U(i,j)*x(j)), i<>j y i<j para todo U(i,j) con i=n-1,1 y j=n,2 El procedimiento que resume este comportamiento es: x(n)=c(n)/u(n,n) Para i=n-1,1 haga Para j=n:-1:2 haga Si I<>j y i<j entonces z=z+U(i,j)*x(j) Finsi Finpara x(i)=(c(i)-z)/U(i,i) Finpara A continuacin se da el cdigo fuente con algunos comentarios sobre las instrucciones donde es conveniente. CODIGO FUENTE DE DOOLITTLE matriz=input ('TECLEE LA MATRIZ AUMENTADA DEL SISTEMA, por ejemplo: [5 -4 2 20;2 -3 4 19;1 1 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar: %A(matris de coeficientes) y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz(tamao de A) for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A" end end b1=b';% "b" es un vector columna

L=eye(n);%inicializa la "L" de doolittle(le da el tamao de A),y evita crear sus unos y ceros for k=1:n-1 %factorizacion de doolittle''''''''''''''''''''''''''''' for i=k+1:n %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' L(i,k)=A(i,k)/A(k,k); %(se determina la "L")'''''''''''''''''''''' ''''''''''' for j=1:n %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' A(i,j)=A(i,j)-A(k,j)*L(i,k);%(se determina la "U"(A se transforma en U)) end %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' U=A;%cambio de variable c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b"(se determina c(1)) for i=2:n %procedimiento para hallar "c"(progresivamente) z=0; %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' for j=1:n-1 %''''''''L*c=b''''''''''''''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i>j %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' z=z+L(i,j)*c(j);%'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' c(i)=b1(i)-z; %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" x(n)=c(n)/U(n,n);%se determina x(n)(ultima solucion del sistema) for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) z=0; %''''''''''''''''''''''''''''''''''''''''''''' for j=n:-1:2 %''''''U*x=c'''''''''''''''''''''''''''''''''' if i~=j & i<j %''''''''''''''''''''''''''''''''''''''''''''' z=z+U(i,j)*x(j);%''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' x(i)=(c(i)-z)/U(i,i); %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' L%muestra la matriz triangular inferior de doolittle U%muestra ''''''''''''''''''''''superior '''''''''''' LU=L*U%muestra la factorizacion de doolittle x%vector solucion del sistema

clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura) %copyright 2004 %ESVEN MORALES CODIGO FUENTE DE CROUT matriz=input ('TECLEE LA MATRIZ AUMENTADA DEL SISTEMA, por ejemplo: [5 -4 2 20;2 -3 4 19;1 1 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar %A(matris de coeficientes)y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A" end end b1=b';% "b" es un vector columna U=eye(n);%inicializa la "U" de crout(le da el tamao de A),y evita crear sus unos y ceros for k=1:n-1 %factorizacion de crout''''''''''''''''''''' for j=k+1:n %''''''''''''''''''''''''''''''''''''''''''' U(k,j)=A(k,j)/A(k,k); %(se determina la "U")'''''''''''''''''''''' for i=1:n %''''''''''''''''''''''''''''''''''''''''''' A(i,j)=A(i,j)-A(i,k)*U(k,j);%(se determina la "L"(A se transforma en L)) end %''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''' L=A;%cambio de variable c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b" c(1)=b1(1)/L(1,1);%se determina el primer elemento de c for i=2:n %procedimiento para hallar "c"(progresivamente) s=0; %'''''''''''''''''''''''''''''''''''''''''''''' for j=1:n-1 %'''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i>j %'''''''''''''''''''''''''''''''''''''''''''''' s=s+L(i,j)*c(j);%'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''''

c(i)=(b1(i)-s)/L(i,i); %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) s=0; %''''''''''''''''''''''''''''''''''''''''''''' for j=n:-1:2 %''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i<j %''''''''''''''''''''''''''''''''''''''''''''' s=s+U(i,j)*x(j);%''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' x(i)=c(i)-s; %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' L%muestra la matriz triangular inferior de crout U%muestra ''''''''''''''''''''''superior '''''''' LU=L*U%muestra la factorizacion de crout x%vector solucion del sistema clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura) %copyright 2004 %ESVEN MORALES CODIGO FUENTE DE CHOLESKY matriz=input ('TECLEE LA MATRIZ AUMENTADA DEL SISTEMA, por ejemplo: [5 -4 2 20;2 -3 4 19;1 1 3 10]\n'); tam=size(matriz);%sacar el tamao de la matriz para determinar A(matris de coeficientes) % y b(vector de terminos independientes) n=tam(1);%saca el numero de filas de la matriz for i=1:n b(i)=matriz(i,n+1);%determinar "b" for j=1:n A(i,j)=matriz(i,j);%determinar "A" end end b1=b';% "b" es un vector columna for k=1:n %Algoritmo de cholesky for i=1:k-1 %''''''''''''''''''''' sum=0; %'''''''''''''''''''''

for j=1:i-1 %''''''''''''''''''''' sum=sum+A(i,j)*A(k,j); %''''''''''''''''''''' end %''''''''''''''''''''' A(k,i)=(A(k,i)-sum)/A(i,i); %''''''''''''''''''''' end %''''''''''''''''''''' sum=0; %''''''''''''''''''''' for j=1:k-1 %''''''''''''''''''''' sum=sum+A(k,j)*A(k,j); %''''''''''''''''''''' end %''''''''''''''''''''' A(k,k)=sqrt(A(k,k)-sum); %''''''''''''''''''''' end %''''''''''''''''''''' for i=1:n-1 %Aade los ceros de la L de cholesky for j=1:n %''(puesto que el algoritmo solo ''' if j>i %'''altera los elementos de''''''''' A(i,j)=0; %'''la diagonal principal de A'''''' end %''''y por debajo de esta)'''''''''' end %''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''' L=A;%cambio de variable Lt=L';%Lt sera la U de cholesky(transpuesta de L) c=b1;%se inicializa el vector "c", que tiene el mismo tamao de "b" c(1)=b1(1)/L(1,1);%se determina el primer elemento de c for i=2:n %procedimiento para hallar "c"(progresivamente) s=0; %'''''''''''''''''''''''''''''''''''''''''''''' for j=1:n-1 %'''''''''''''''''''''''''''''''''''''''''''''' if i~=j & i>j %'''''''''''''''''''''''''''''''''''''''''''''' s=s+L(i,j)*c(j) ;%'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' c(i)=(b1(i)-s)/L(i,i); %'''''''''''''''''''''''''''''''''''''''''''''' end %'''''''''''''''''''''''''''''''''''''''''''''' x=c;%se inicializa el vector "x", que tiene el mismo tamao de "c" x(n)=c(n)/Lt(n,n);%se determina x(n)(ultima solucion del sistema) for i=n-1:-1:1 %procedimiento para hallar "x"(regresivamente) z=0; %'''''''''''''''''''''''''''''''''''''''''''''

for j=n:-1:2 %''''''Lt*x=c'''''''''''''''''''''''''''''''''' if i~=j & i<j %''''''''''''''''''''''''''''''''''''''''''''' z=z+Lt(i,j)*x(j);%''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' x(i)=(c(i)-z)/Lt(i,i); %''''''''''''''''''''''''''''''''''''''''''''' end %''''''''''''''''''''''''''''''''''''''''''''' L%muestra la matriz triangular inferior de cholesky Lt%muestra ''''''''''''''''''''''superior '''''''' LLt=L*Lt%muestra la factorizacion de cholesky x%vector solucion del sistema clear all%elimina las variables del espacio de trabajo(evita que el programa se cargue de basura) %copyright 2004 %ESVEN MORALES RESULTADOS CON LOS METODOS DIRECTOS DOOLITTLE L= 1000000000 1100000000 1110000000 1111000000 1111100000 1111110000 1111111000 1111111100 1111111110 1111111111 U= 1111111111 0111111111 0011111111 0001111111 0000111111 0000011111 0000001111

0000000111 0000000011 0000000001 LU = 1111111111 1222222222 1233333333 1234444444 1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 x= 20 -16 -4 26 -16 0 8 -8 -1 2 CROUT L= 1000000000 1100000000 1110000000 1111000000 1111100000 1111110000 1111111000 1111111100

1111111110 1111111111 U= 1111111111 0111111111 0011111111 0001111111 0000111111 0000011111 0000001111 0000000111 0000000011 0000000001 LU = 1111111111 1222222222 1233333333 1234444444 1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 x= 20 -16 -4 26 -16 0 8 -8 -1 2

cholesky L= 1000000000 1100000000 1110000000 1111000000 1111100000 1111110000 1111111000 1111111100 1111111110 1111111111 Lt = 1111111111 0111111111 0011111111 0001111111 0000111111 0000011111 0000001111 0000000111 0000000011 0000000001 LLt = 1111111111 1222222222 1233333333 1234444444 1234555555 1234566666 1234567777 1234567888 1234567899 1 2 3 4 5 6 7 8 9 10 x=

20 -16 -4 26 -16 0 8 -8 -1 2 Nota: como ste trabajo solo fue realizado por una sola persona, no tuvo tiempo para implementar los mtodos iterativos(a pesar de que son mas fciles de implementar). No obstante el trabajo de escritorio que si realiz, y las investigaciones personales que hizo, dieron pie para poder Sacar las prximas conclusiones. CONCLUSIONES Ventajas y desventajas de los mtodos iterativos comparados con los mtodos directos. Ventajas *Probablemente ms eficientes que los directos para sistemas de orden muy alto. *Mas simples de programar. *Puede aprovecharse una aproximacin a la solucin ,si tal aproximacin existe. *Se obtienen fcilmente aproximando burdas de la solucin. *Son menos sensibles a los errores de redondeo(valioso en sistemas mal condicionados). *Se requiere menos memoria de mquina.Generalmente, las necesidades de memoria son proporcionales al orden de la matriz. Desventajas *Si se tienen varios sistemas que comparten la matriz coeficiente, esto no representar ahorro de clculos ni tiempo de mquina, ya que por cada vector a la derecha de A tendr que aplicarse el mtodo seleccionado. *An cuando la convergencia este asegurada, puede ser lenta y ,por lo tanto, los clculos requeridos para obtener una solucin particular no son predecibles. *El tiempo de mquina y la exactitud del resultado dependen del criterio de convergencia.

*Si la convergencia es lenta, los resultados deben interpretarse con cautela. *No se tiene ventaja particular alguna(tiempo de mquina por iteracin) si la matriz coeficiente es simtrica. *No se obtiene la inversa de A ni el determinante de A.

Anda mungkin juga menyukai