Você está na página 1de 11

C alculo Num erico I

Introducci on. N umeros y operaciones num ericas


La mayor parte de las funciones que aparecen en matem aticas son dif cilmente evaluables. No solamente aquellas que aparecen como soluciones de algunos problemas y no pueden expresarse algebraicamente en t erminos de funciones elementales, sino que estas mismas funciones elementales incluyendo entre ellas las funciones trigonom etricas, la exponencial, y sus inversas son dif ciles de evaluar. Recordemos que sus valores se obtienen com unmente de tablas ya calculadas o por medio de m aquinas calculadoras. Para calcular estas tablas, para programar estas calculadoras, para estimar valores num ericos relacionados con aquellas funciones, necesitamos t ecnicas que nos permitan, a partir de la denici on de la funci on, aproximarnos al valor real que queremos estimar controlando en todo momento la magnitud del error que estamos cometiendo. Estas t ecnicas, reglas, m etodos, junto con su justicaci on te orica, y por tanto control de su error, es lo que constituye el c alculo num erico. Desde la aparici on de las calculadoras electr onicas incluyendo entre ellas los ordenadores, grandes y peque nos el panorama del c alculo num erico ha cambiado enormemente. Ya no se trata de buscar m etodos y reglas que en unas pocas operaciones nos faciliten el valor buscado; ya no tiene tanta importancia el n umero de operaciones necesario para realizar un c alculo, es m as importante la estabilidad de ese c alculo a pesar del gran n umero de operaciones, el control del error que produce la aritm etica del ordenador. No signica esto que no haya problemas en los cuales sea necesario 1

lculo Nume rico I Ca

Introducci on

buscar m etodos que limiten el n umero de operaciones. Son por lo general problemas que antes de la aparici on del ordenador eran totalmente inabordables debido a su magnitud pero que con la nueva tecnolog a son f acilmente programables. Estamos pensando en particular en los problemas de inversi on de matrices y resoluci on de sistemas lineales de gran tama no, aunque no sea este el u nico caso.

Sistemas de numeraci on

Las reglas aritm eticas que hemos aprendido en la escuela est an basadas en el sistema num erico de base diez (sistema decimal). Hemos aprendido de memoria unas tablas que contienen la suma y el producto de los diez primeros n umeros naturales (que utilizamos como d gitos) y a partir de ellas sabemos como operar con n umeros de cualquier magnitud siempre que est en expresados en t erminos de estos diez d gitos. La expresi on de cualquier n umero natural N en t erminos de estos diez d gitos viene dada por la concatenaci on de los restos que resultan de dividir por diez el n umero N y sus sucesivos cocientes. Es decir, la primera cifra que situamos a la derecha es el resto R1 de dividir N entre diez, con cociente N1 ; la segunda cifra que situamos inmediatamente a la izquierda de aquella es el resto R2 de dividir N1 entre diez, con cociente N2 ; iteramos este proceso hasta que obtenemos un u ltimo resto Rk que situamos inmediatamente a la izquierda de la concatenaci on de restos obtenidos hasta el momento al obtener por cociente cero. As la expresi on decimal del n umero N es la concatenaci on de restos Rk Rk1 . . . R2 R1 todos ellos n umeros entre cero y nueve que representamos usualmente por las cifras 0, 1, . . . , 9. Esta es la representaci on num erica que todos conocemos desde nuestra m as tierna infancia descrita en t erminos un tanto sosticados con el n de observar la arbitrariedad contenida en la elecci on del n umero diez en este proceso arbitrariedad seguramente debida al hecho de ser este el n umero total de dedos, lo que nos permite utilizar las manos como un abaco natural. Una vez observada esta arbitrariedad nada nos impide cambiar los t erminos y jugar a reconstruir nuestra aritm etica elemental en una base distinta. Puede ser esta cualquier n umero positivo b mayor que uno. Necesitaremos para esta aritm etica un n umero b de cifras que representen los b primeros n umeros naturales incluido el cero. El proceso 2

lculo Nume rico I Ca

Introducci on

ser a an alogo al descrito m as arriba para b =diez y tendremos que construir las correspondientes tablas de operaciones para estos b primeros n umeros. Estudiemos por un momento qu e sucede en base ocho. Usaremos los ocho primeros d gitos con su signicado habitual: 0, 1, 2, 3, 4, 5, 6, y 7. El n umero natural siguiente, ocho, se representar a como 10, que signica, expresado en base diez, 1 81 + 0 80 . Los n umeros siguientes ser an 11, 12, etc., hasta llegar al n umero 17, cuyo siguiente es el 20. Ejemplo. Dado el n umero 341(10 cu al ser a su expresi on en base ocho? Calculamos operando en base diez, que es en la que estamos entrenados a operar los restos de dividir este n umero y los sucesivos cocientes por ocho: 341(10 = 42 8 + 5; 42 = 5 8 + 2; 5 = 0 8 + 5; por tanto 341 = 5 82 + 2 81 + 5 80 = 525(8 . Ejemplo. Dado el n umero 1202(8 hallar su expresi on en base diez. Simplemente tenemos que escribir en base diez el signicado de su expresi on en base ocho y operar: 1202(8 = 2 + 0 8 + 2 82 + 1 83 = 642(10 . La base m as sencilla de todas aparte de la base uno que es la que utiliza la representaci on por medio de palotes es la base dos que solamente utiliza dos cifras: 0, 1; y a la que se puede dar por tanto cualquier signicado dicot omico: sino; abiertocerrado; encendidoapagado. Esto hace que la base dos sea la adecuada para las operaciones internas de cualquier operador electr onico o incluso mec anico. Todo n umero se representa en base dos simplemente se nalando con un 1 qu e potencias de dos aparecen en su representaci on (y con un 0 las que no aparecen): 1001011101(2 signica, expresado en base diez 20 + 22 + 23 + 24 + 26 + 29 . Existe un juego bastante conocido que consiste en adivinar un n umero a partir de seleccionar de entre una serie de tarjetas con listas de n umeros, aquellas en las que el n umero en cuesti on se encuentra. La soluci on se halla sumando los primeros n umeros que aparecen en estas tarjetas seleccionadas, que son las potencias en base dos contenidas en el n umero dado, es decir los unos del desarrollo en base dos. Algunas botellas de bebidas se nalan el mes y el d a de llenado de 3

lculo Nume rico I Ca

Introducci on

la botella por medio de marcas en la serie de n umeros 1, 2, 4, 8, 16, y 1, 2, 4, 8. Es particularmente interesante la forma de indicar el d a del mes ya que con estos n umeros se cubren exactamente los 31 d as posibles. Ejercicio. Escribir en base dos los n umeros en base diez siguientes: 521, 473, 1024. Escribir en base diez los n umeros 1000101(2 , 121212(3 , 54321(6 . Otras bases especialmente importantes aparte de dos y diez son las bases ocho y dieciseis, que por ser potencias de dos tienen una traducci on especialmente f acil de unas a otras, siendo las expresiones de cualquier numero m as cortas cuanto mayor es la base que se utiliza. Para convertir un n umero de base dos a base ocho o dieciseis o viceversa basta tener una tabla de los d gitos de estas u ltimas en base dos: Base 8 000 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 Base 16 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 5 6 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F

Cualquier n umero en base dos 100010001110101101 se transforma a base ocho o a base dieciseis separando desde la derecha bloques de tres o cuatro d gitos respectivamente, y sustituy endolos por el d gito en la base correspondiente: 100 010 001 110 101 101(2 = 421655(8 10 0010 0011 1010 1101(2 = 223AD(16 Los n umeros en bases dos, ocho, diez, y dieciseis se denominan binarios, octales, decimales, y hexagesimales respectivamente. Muchas calculadoras digitales est an preparadas para operar en cualquiera de estas bases. Hasta ahora hemos hablado de la representaci on de n umeros enteros. Para representar n umeros fraccionarios podemos utilizar en 4

lculo Nume rico I Ca

Introducci on

cualquier base m etodos an alogos a los utilizados en base diez. Qu e signica la expresi on decimal 31 27? Expresado en fracciones quiere 2 7 decir 31 + 10 + 10 2 . Esta idea para representar la parte fraccionaria de un n umero puede utilizarse en cualquier base b: la parte fraccionaria de un n umero se expresa como suma de fracciones cuyos numeradores son enteros entre 0 y b 1 y cuyos denominadores son las potencias de b. Ejemplo. 0 13265(8 = 181 + 382 + 283 + 684 + 586 . Sabido esto, como representaremos un n umero fraccionario x en una base dada b? Supongamos que a1 , a2 , a3 , . . . son las cifras del desarrollo: x = 0 a1 a2 a3 = a1 b1 + a2 b2 + a3 b3 + . . . . Observemos que bx = a1 + a2 b1 + a3 b3 + . . . y, por tanto, a1 es la parte entera de bx; b(bx a1 ) = a2 + a3 b1 + . . . , de forma que a2 es la parte entera de b(bx a1 ), etc. Ejemplo. Expresar en base 3 el n umero 0 31(10 . 031 093 079 037 011 033 etc. x x x x x x 3 3 3 3 3 3 = = = = = = 093 su parte entera es 279 237 111 033 099 0 2 2 1 0 0

Obtenemos 0 31(10 = 0 022100 . . .(3 . Hasta cu ando debemos continuar el c alculo? Dado que el n umero cuyo desarrollo fraccionario estamos calculando es racional, las cifras deben repetirse de forma peri odica a partir de alg un lugar. Esto ocurrir a en cuanto la parte fraccionaria en base 10, que siempre tiene el mismo n umero de cifras en nuestro ejemplo 2, se repita por primera vez; a partir de este punto todos los c alculos se repiten.

Representaci on de n umeros en el ordenador

Al calcular num ericamente con una m aquina debemos considerar principalmente dos tipos de n umeros: enteros y de coma otante (en ingl es,oating point). Por medio de los segundos tratamos de

lculo Nume rico I Ca

Introducci on

reproducir en el ordenador los n umeros reales. Sin embargo solamente utilizamos un cantidad nita de n umeros racionales con una aritm etica particular. La idea es la siguiente. Todo n umero real x, expresado en base diez, se escribe de la forma

x=
k=1

xk 10k

10N

donde es el signo, N es un exponente entero y los xk son los d gitos 0, 1, . . . , 9 de su desarrollo decimal, con la u nica restricci on x1 = 0. Por ejemplo, = (+1) (3 101 + 1 102 + 4 103 + ) 101 . La representaci on de coma otante consiste en truncar (o redondear) la expresi on anterior limitando la suma hasta un n umero jo de sumandos t.
t

FLO(x) =
k=1

xk 10k 10N

=x 10N
FLO

El n umero x recibe el nombre de mantisa de FLO(x). En la representaci on de coma otante tenemos dos restricciones: la longitud t de la mantisa y el tama no del exponente N : N0 N N1 , con N0 y N1 enteros positivos (que suelen ser iguales o diferir en una unidad). Es importante conocer como funciona la aritm etica con coma otante. Curiosamente, no se verica una propiedad elemental de la aritm etica de n umeros reales: la propiedad asociativa, seg un la cual, por ejemplo, x(yz ) = (xy )z lo que nos permite escribir sin ambig uedad xyz . La raz on es que el resultado de una multiplicaci on de n umeros con coma otante es otro n umero con coma otante que se obtiene por medio de un redondeo o de una truncaci on. Veamos un ejemplo, supongamos que utilizamos representaci on en coma otante con una mantisa de longitud 2 y queremos hallar el producto de los tres n umeros 024; 031; y 093. El producto 0 24 0 31 resulta 0 074 que multiplicado por 0 93 da 0 069; el producto 0 31 0 93 resulta 0 29, que multiplicado por 0 24 da 0 068. Al calcular con coma otante hay que tener en cuenta dos errores 6

mantisa

lculo Nume rico I Ca

Introducci on

importantes que pueden producirse. El primero de ellos es el de llegar a un exponente por encima de N1 , se produce entonces un error que la m aquina detecta inmediatamente y que anuncia como overow . El segundo es el de bajar del exponente N0 ; en este caso la m aquina puede no anunciar el error y poner en la variable correspondiente el valor cero (el error aparecer a si, por ejemplo, tratamos de dividir por esa cantidad. Sabido lo anterior es f acil experimentar con nuestra m aquina (por ejemplo, con nuestra calculadora) para determinar los valores de N0 y N1 . Este tipo de error se conoce con el nombre de underow . En el entorno Matlab que vamos a utilizar existe una constante llamada eps que es el mayor n umero que sumado a 1 no produce efecto alguno.

overflow

underflow

Error

En todo c alculo num erico debemos esperar un error: los m etodos que utilizamos en nuestros c alculos son generalmente aproximados; los datos de partida proceden de medidas de precisi on limitada; las operaciones a que sometemos estos datos producen valores intermedios cuyo n umero de cifras debe reducirse; los valores num ericos que tratamos de calcular son generalmente reales y por tanto raramente expresable en t erminos nitos; etc. No debe por tanto preocuparnos el que en nuestros c alculos acarreemos un cierto error sino el controlar en todo momento ese error y mantenerlo por debajo de un extremo prejado. Llamaremos error de un resultado xa a la diferencia entre este y el valor x que tratamos de determinar. M as concretamente E (xa ) = xa x. Con esta denici on del error en xa estamos adem as estableciendo un signo en este, criterio que mantendremos en el resto de estas notas. El error E que acabamos de denir es el que llamaremos error absoluto . M as importante a la hora de determinar la validez de nuestros c alculos es el error relativo : Er (xa ) = xa x E (xa ) = x x 7
error absoluto error relativo

lculo Nume rico I Ca que est a denido siempre que x = 0.

Introducci on

El error en un c alculo nunca podr a determinarse con exactitud (ello equivaldr a a poder determinar el valor exacto de x) simplemente se acotar a. Una forma de referirse al error relativo en un sistema de numeraci on de base b es por medio del n umero de cifras signicativas en un resultado. Diremos que xa contiene n cifras signicativas de x si la diferencia entre las mantisas de xa y x es menor de b/2 unidades en su cifra m +1. Con esta denici on la expresi on n cifras signicativas pudiera en alg un caso querer decir algo ligeramente distinto de lo que coloquialmente pudiera entenderse. (Ejemplo: 31416 tiene 5 cifras signicativas del n umero = 3 14159 . . . .)
cifras significativas

Procedencia del error


1. Equivocaciones. 2. Desviaci on del modelo con la realidad. 3. Errores de observaci on en los datos num ericos. 4. Errores debidos al funcionamiento de la m aquina. 5. Errores intr nsecos de los m etodos num ericos.

El error en un c alculo puede proceder de diversas causas. Hemos de se nalar en primer lugar el error de c alculo, es decir el error que comete el calculista por equivocaci on. Incluimos aqu los errores de programaci on. La forma de evitar este tipo de error es la vericaci on de los c alculos y la comprobaci on de los programas. El vericar un programa completo puede resultar una tarea compleja y poco agradable. Tal vez la mejor estrategia sea la de dividir el programa en partes (subrutinas) y comprobar separadamente cada una de ellas experimentalmente con datos sencillos de los que es f acil deducir el resultado esperado. Al resolver problemas f sicos suelen darse dos tipos de errores. Primeramente aquellos que proceden de la medici on de los datos. Los sistemas de medida nunca pueden ser exactos en realidad, seg un nuestros modelos, tratamos las m as de las veces de medir algo que consideramos un n umero real y por tanto ya tendremos una nma desviaci on de partida. En segundo lugar debemos tener en cuenta que el modelo f sico que utilizamos las ecuaciones que modelan el experimento suele obtenerse a trav es de aproximaciones que simplican las propiedades f sicas linealizaci on, ... y que por tanto producir an desviaciones respecto de la realidad. Tanto unas como otras desviaciones no ser an objeto de estudio por parte del C alculo Num erico sino que de ellas se ocupa el estudio de la estabilidad del modelo ecuaciones diferenciales, algebra li8

lculo Nume rico I Ca neal. . . .

Introducci on

Tambi en debemos considerar los errores debidos al funcionamiento de la m aquina, entre los que debemos destacar los errores de redondeo, la p erdida de signicaci on, el ruido al evaluar una funci on, y los llamados overow y underow. De los errores de redondeo y del overow y underow ya hemos hablado m as arriba. En cuanto a los errores debidos a la p erdida de signicaci on en el n umero de d gitos, suelen aparecer al restar dos cantidades muy pr oximas. Supongamos que queremos evaluar la funci on f (x) = x[ x + 1 x] y lo hacemos utilizando una aritm etica de seis d gitos. Obtenemos los siguientes resultados, donde f es el valor calculado directamente con la expresi on dada de f . (x) x f f (x) 1 041421 0414121 15434 15434 10 499 100 1000 158 10 000 50 100 000 100 158114 1 000 000 0 499999 El error procede de los dos valores relativamente de la diferencia muy pr oximos x + 1 y x entre los que coinciden cada vez m as cifras de las seis utilizadas en los c alculos. Una forma de evitar el error es la de utilizar un n umero mayor de d gitos en los c alculos. Otra forma es la de evitar la diferencia se nalada por medio de una expresi on equivalente de la funci on, por ejemplo f (x) = x x+1+ x

rdida de significacio n pe

Ejercicio. Halla una expresi on equivalente a 9

lculo Nume rico I Ca

Introducci on

1 cos x x2 que evite la diferencia entre dos n umeros pr oximos que aparece en el numerador cuando x est a pr oximo a cero. Por ruido al evaluar una funci on nos referimos a la indeterminaci on que puede aparecer en los valores de una funci on cuando se trata de analizar experimentalmente una propiedad cualitativa. Por ejemplo, si tratamos de ver donde est a el cero del polinomio P (x) = x3 3x2 + 3x 1 dando valores y utilizamos aritm etica de seis d gitos P (0 999) = 0, P (1 001) = 0
n ruido al evaluar una funcio

Incluso, con aritm etica de siete d gitos P (0 9998) = 0 0000001 > 0 cuando en realidad P (0 9998) < 0. Supongamos que queremos evaluar una funci on f , derivable, con derivada continua, en un punto x y que para ello disponemos de una aproximaci on x de forma que lo que calcularemos es f ( x). Cu al es el error? Para evaluarlo podemos utilizar el teorema del punto medio (o, lo que viene a ser lo mismo, la denici on de derivada), |f ( x) f (x)| f ( x)|x x|. Es decir, el error se multiplica por el valor de la derivada de f (que ser a aproximadamente la misma en x que en x . Al sumar un n umero grande de t erminos los errores de redondeo se acumulan. Veamos como proceder para conseguir que este error de redondeo sea lo menor posible. Queremos hallar S = a1 + a2 + + an donde cada ai es un FLO. Al realizar la suma debemos operar n 1 veces:
sumas n error al evaluar una funcio

10

lculo Nume rico I Ca

Introducci on

...

S2 = FLO(a1 + a2 ) = (a1 + a2 )(1 + 2 ) S3 = FLO(S2 + a3 ) = (S2 + a3 )(1 + 3 ) ... ... ... ... ... Sn = FLO(Sn1 + an ) = (Sn1 + an )(1 + n )

donde los i son los errores relativos de redondeo. Si S es la verdadera suma de a1 + a2 + + an entonces Sn S = Sn (a1 + + an ) = Sn1 (1 + n ) + an n (a1 + + an1 ) = ... = a1 (2 + + n ) + a2 (2 + + n ) + + an1 (n1 + n ) + an n . Para que este t ermino sea lo menor posible, la mejor estrategia es la de escribir a1 + a2 + + an en orden creciente de los |an |, es decir sumar de menor a mayor. Debemos mencionar nalmente los errores debidos a los m etodos num ericos utilizados. Lo que calculan no es en general lo que se quiere calcular y por tanto el mismo m etodo num erico debe hacer un estudio de cu al es el error que lleva asociado. Este estudio es parte fundamental de las t ecnicas analizadas en el presente curso.

11

Você também pode gostar