Você está na página 1de 45
‘Testo: Métodos Numéticos ue Dr. Hugo Rojas CAPITULO 1: REPRESENTACION DE NUMEROS REALES EN COMPUTADORA Y ERRORES: PROBLEMA: Uno de los requistos para utilizar propiadamente una computadora pare realizar clcalos matemiticos, es entender eérmo ésta representa los mimeros reales; este conocimiento permite comprender en particular, las limitaciones dela representscién y los errores que podrian result. EI proceso de representacin de nimeros resles en computadora comprende, principalmente, la conversin sistema decimal ~ sisteme binario y la representacin o escritura — lectura en el soporte fisico dela compuiadars. 1.1 SISTEMAS NUMERICOS Un sistema mumérico para representar nimeros reales esti caracterizado por una tase b y un conjunto de digitas d. Algunos sistemas relacionados con la representaci6n numérica en computadora son: SISTEMA, BASE _[DIGITOS decimal 10 0123456789 binario 2 OF etal © o1a3es67 aexagestmal 16 (0123456709 AB CDEP, Nota: en todos los sistemas, por farliardad, los digits se representan en el sister Secimal; sn embargo, el sistema hexagesimal necesita mis digios de los que posee el sistema decimal por lo que se utiliza ls letas A,B, C,D, Ey F para completa el conjnto de digits, ellos corresponden alos nimers 10, 11.12, 13, 14y 15 del sistema. decimal, respectivamente. [Notaeidn: los mimeros eseritos en un determinado sistema serén representados entre paréntesisy la base seré indicada en subindice .. (.. BI sistema mis uilizado es e! sistema decimal, se cree que el uso de los 10 dedos paralaaritmética es el origen de esa preferencia. Naturalmente. el sistema decimal ‘serdufilizado como sistema de referencia, Las computadoras usan el sistema binario para representar los nimeros reales, el primer problema que se consideraré entonces es la operacién de conversién mis ‘general de un sistema cualquiere al sistema decimal y vieeverse 1.2 CONVERSION ENTRE SISTEMAS NUMERICOS, 1.2.1 Conversién al Sistema Decimal Para entender la representacidn de un nimero en un sistema numérico, es ti] recordar que ésts no es mas que uns forma condensada de escribir los mimeros, ‘que se basa en la utilzacién del cero y en a ssignacién de un peso a la posicién del cigito en la representacién e.g. el niimero 354.69 escrito en el sistema ecima represent: (s4549),, =3°10" +4e10! +5410" 464107 294 ee ade Texto: Métodos Numéricos a 2 = ———— Dr Hugo Rojas Se observa que, « partir del punto decimal «la igquierda, cada digito debe multiplicarse por uns potencia de base 10 positiva que corresponde a su posicién caleulads desde el punto decimal disminuids de una unidad:« la derecha, eaiadigito debe mutiplicarse por una potencia negative de base 10 que corresponde a su posiidn caleulada desde el punto decimal Por lo que precede y dado que los digitos y base de wn sistem Tes productos de ls digitos por potent 1 estin exrtas en decimal, la conversién de cualquier sistem al decimal se reduce & sumar cde la base de sistema en considerecin utilizanco la regla sefilada anteriormente e.& (101.101), #1929 +1922 +02) 1029 1927 e002? e182 4+44041+05+0+0:125 = (13.525)i9 (6056.12) <4 008? 5a! se009 steal 2087? = 2058 +05 40-+6+ 0.125 +008125 = (2084. 15625}g (BcAs)g -Brtet +co1e? #Aste! 8615 I aoet6? +10°16! 1716 +8167? =176+12+ 0.625 +0.03125 = (188.65625))9 41.22 Conversién del Sistema Decimal a Otro Sistema La operaciin de convertr del sistema decimal a otro sistema se realizaen ‘os partes, se convierte la parte enteray la parte decimal por separado. © Parve entera: bésicsmente, parciendo wn la parte enieia com dividcndo, se reslizn In conversién efectsando divisiones enteras sneesivas del cociente centce la base del sistema hasta que el cociente sea nulo. La parte entra en el nuevo sistema se obtiene eseribiendo los residuos en orden iaverso al que fueron caleulados. (a (dada Al) P dy P tonto n= en, ory 92% dy Wad, 82+ ediedy +d, tenon 28d, 2nd, FI edie, +, guy” gHn 22 yd) 0g 4 ‘ ee yay = 2 Hg 28g $d ng 240+", =, + Parte decimal: comenzando eon la parte decimal del nimero, e eftctia Ia conversion realizando multiplicaciones suctsives de la parte decimal por la base del sistema, para cade maltiplicacin se debe separar la parte entera de Ia parte decimal, hasta que el producto sea milo o se haya obtenido la precision nimero de digitosrequerdos. La parte decimal en el nuevo sistem se cbtieneeseribiendo las partes enteras de las multiplicaciones en el oréen en que feeronealeuledos. Komprornise de Ercalencia aaaADAAADG me RAREAAMEAMAAMOOREHS SO BBE EO BU BOY BU GBH FGI IIIIOS re pee ee Cours ae ae dt dy tttdag mata adtdg Ded gt Tsay gala gd) 29 0.deo, =m, +O.dec, ad. +d t2 + ad 2PM + jd gary \ Ejemplo 1.1: se trate de conventr (74.38) los diferentes sistemas mencionados, ) binario: parte entera parte decimal e337 4 0382 =0.76+ vers 4 076% = 052+ 1-209 + 05242 =0.04+ ga + nse? =0.08+ 4272 4 o.08e2 = 0.16 + a=21 + 162 =032~+ 1-20 + 03242 =0.64+ 0692 =0.08-+ 8. (ha (1001010), (0:38)= (.01100001..2 (74:38)9= (1001010.01100001.). 1 octal: part enter parte decimal Tene 94] O88 = 0.04 + 98s nase =0.32+ 1=80 + 032%8=056+ 0368 =048-+8. (74)iy = (112), (0.380 = (0.3024...) (74.389 (1123024.35 ii) hexagesimal: parte entern parte decimal eee 0.3816 = 0.08 + 4a 1604 o0ee16= 0.28 + 02816088 + Campoomite de Ereeloncia Fo Nears @urn Se ane (T4)0= A} (0.38)i¢~ (0.614..)y6 (7438)07 4AS14. hie "Nota: Ia parte entera siempre tiene un nimero finito de digitos, en cambio la parte decimal puede tener una infinidad. 1.23 Conversién de Binario a Octal o Hexagesimal, y Viceversa La conversion de decimal a binario o viceverss, puede ser bastante tediosa per cuanto el ndmero de operaciones de divisin © multiplicacién puede ser bestante clevado, Sin embargo, se puede simplificar el proceso realizando primeramente la conversién a octal 0 henagesimal y luego a binario; obviamente, este procedimiento es vlido siesta iltima operacién es inmediat, lo que es el cas. 4) Binario a Octal o Hexogesimal ‘+ Peta obiener Ia parte entra, se agrups los digitos de la parte entera del nimero escrito en binario en grupes de 3 (octal) 0 4 (hexagesimal) partiendo de la coma haca la iquierda y cada grupo se convierte a decimal para obtener el cigio del sistema al que se quiere convert. Para Ia parte decimal, se agrupa los digtos de la parte decimal del nimero escrito en binario en grupos de 3 (octal) 0 4 (hexagesimal partiendo de le coma hacia fa derecha y cada grupo se converte a desimal para obtener e digite del sistema al que se quiere convert. Ejemplo 1.2: Se trata de convertr a octal y hexagesimal el niémero escrito en binario (100101010011,001010101 1): (100101010011.0010101011},= (100 101 010 OL. O04 010 101 10D), (4523. 1254). (10010101001 1.0010301011),= (1001 9101 0011. 9040 1019 1100): = (9 53.2 A Che "Nota: cuando es necesario, se puede aumenta ceros a Ja inquierda de la parte entea 0 ls derecha de a parte decimal para completar los grupos, esta operacion no altera obviamente ef nimero 1) Octal o Hexagesimal a Binario Pere convertir un nimero escrito en octal o hexagesimal al sistema binario, es suficiente convertir cada digito en un nimero binario escrito con 3 digitos (cctal) 04 dighos (hexagesimal). Ejemplo 1 trata de convertir al sistema binario los nimeros (7 3 21.63 0 1jpy (3.A7F.2B Che (732 1.630 N= (LLL O11 910 001, 110 01 000 001), GA7F.2B Che (QOL 1010 0111 J111. 0010 1011). ‘Chvota de lass >490999009 COARSE OOEAMEDHHEADEODDODOE PECCOCC CCC CSU OSU YEE HEU UUUUIUwS €2)UPB ‘Texto: Métodos Numéricos = Dr. Hugo Rojas 1.3 REPRESENTACION EN COMA FLOTANTE (FLOATING-POINT) La representacién en coma flotante (estindar) x un método que permite escribi un niimera en cualquier sisteme de manera tinica. En esa representacién, se scribe el nimero dela siguiente forma: 70.dydy..d, #8784 con J #0 onde © y * son los signos del niimero y el exponente, respectivamente, d a d, son los digitos de Ia mantisa, 6 es le base del sistema y ¢ 8 é— Son los digitos de! exponent, ese dltimo debe ser entero, La condicién d, = 0 asegura que la representacién de cada nimero es tinica Ejemplo 1.4: se trate de escribir iimeros escitos en los diferentes sistemas utilizendo la representacién en coma flotame, (732 1.630 y= 0.72216301 * 8 GAF.2B O)e=+03AP26C * 167 (1001010.011001), = +0,t001010011001 * 2°" 1.4 ALMACENAMIENTO DE NUMERO REALES EN LA COMPUTADORA. De manera resus, Is computadora manea como unided bisica para slmacenar informacién Ia palabra (word) que coresponce a un certo nimero de bits (Binary digi); un bir representa la uniad sia bsica que permit la computador almacenar una variable que iene dos esiados, enerlmenteescritos 150 En a acualdad, précticamente es uso comin as palabras a 32 bts, sin embargo, pr comodidad. en lo ue sigue se utlizarin palabras 2 16 bis. Nota: el ndimero de bits también se contabiliza en byes = 8 bits 114.1 Almacenamiento en Coma Flotante (FIOATING-POINT) Para almacenar un aero real eon el método de Ia coma flotate, se debe primeramente convertir él nimero al sistema binario, representario en coma fatante 1s Finalmente, almacenar el nimero en una palabra utilizando une determiaade comvencién fijada por el constructor de ls computadora. Enel caso de una computadora que trabaja con palabras de 16 bits una disposicién posible es: Enel primer Arse almacena el signo del nimero @ (se puede utiliza | size positive y 0 si es negativo) Enel segundo birse almacena el signo del exponente 0” (se puede utiliza | si es positive y 0 si es negativo) Del tercero al octavo bi se uilzan para esebir el exponente (si el exponente tiene menos de 6 bts ste se completa con ceras a la izquierda) Los titimos 8 bits sirven para representat le mantisa (si la mantisa tiene renos de 8 bits, éste se completa con ceros 2 Ia derecho) Enqueméticamente una palabra se representa entonces como 16 espacios, cada espacio corresponde aun bit donde se puede escribir un 10 un 0, Compromia de Esvalencia Cours E eagre 1a eres es eo ee i eae ei Exponente ‘Mantise ‘Nota: Con palabras de 32 (64) bie, generalmente se utiliza 1 bit para el signo del niimero, 23 (52) bits para la mantisa y 8 (11) its para el exponente, ‘Ejeruplo 1.5: Se trata de determinar la representaciGn del niimero real x = 74.26 que almacena la maquina. <= (74.260 (44.428... 16 (0100 1010.0100 0010 1000...);=~0. 1001 0100 1000 0101 000... * 2°", ‘como no se tiene espacio para almacenar todos los digitos de la mantis, se decide ignorar aquellos para los cuales no existe espacio, entonces: su= +0, 1001 0100 #2"! Dileep Pele [oppo le Nota: Se constata que el nimero que slmacena la computadora noes exactamentex sino, 44£ 40. 1001 0100 *2°""= (0100 1010):= (Alie= (#hie Propledades det Atmacenamtent: + Redondeo: courte frecuentemente que la mantisa posee mis de 8 digitos y slo existen 8 bits para almacenar todos los dgitos de 1s mantisa; enese caso, s¢ debe decidir sobre cémo toma en cuenta los digtas que no pueden ses elmacenades. Se puede proveder de dos maneras, 4) Operacién de truncado o cortado: se ignoran todos los digitos a partir del Sno, il) Operacién de redondeo: se considera el valor del noveno digit, si éste es 1, se eserben Jos primeros 8 digitos con el 8vo digito incrementado de una tuidad, sin embargo, si es 0 se escriben los primeros 8 digitos sin singuns modifcacién [Ejemplo 1.6: Para el ejemplo anterior se tendtia, por truncado y redondeo,respectivamente, x= (74.26),.™+0. 1001 0100 1000 0100 010... * 2°!" Truncado: x4=+ 0.1001 0100 #2"! = (74) emp prema mfr gg apy trem eran tng asin TDL lelt Lelie pol ft lle 0 Po PP a rire nncocoenane SE CCC CCCP C GCE VEU FEE EU VUIBVIIES urs ‘Texto: Métodos Numeéricos Smee Dr. Hugo Rojas Redondeo: x4 +0. 1001 0101 *2"!"= (74:5) if eka Be aN gy peg UA Sl RP sae DS ali ltlalelelililt [ll [°[: ! nimero limitado de bis para almacenar la mantise hace que no sea posite representsr exactamente el nimero, ¢s asi que ene! ejemplo 1.6, e! nimero {que almacena la computadars con la téenica dl truncedo es (74) y con la Wenica del redondeo (74.5), Esta situacién es una primera fuente de error en el céleulo matemstico con compotadoras; sin embargo, se puede atenuar ese probleme aumentando el riimero de bits para la mantisa, fc meyorie de las computadoras trabajan actualmente con palabras de 32 bits, pera célculs cue requieren gran precisin se puede trabajar incluso con palabras de 64 Bits Goble precisién en realidad se utilzan 2 palabras de 32 bits para representr un nimero real). Como se mencioné enterormente, con palabras de 32 (64) bie, se wiliza 23 (52) bits para la mactisa or otra parte, es también obvio que la computadora representaré el conjunto de nimeres reales no como un conjunto continuo de nimer0s sino como un conjunto disereto de puntos eg. en el ejemplo numérico anterior. suponiendo que se utiliza ls téenica del redondeo, la computadora no representard cexactamente (74.26, los nimeros mas prdximos que representaré exactamente seran (74)o y(74.Shn y no existe ningin ndmero real entre esos valores aque la computador peda representar exactamente. Nota: en Matlab se prioriza la precisin respecto a la rapidez ya que utiliza nalabras de 64 bits. Se puede constatar que (74.26)io representa con el niimero 714.260000000000008. es decir que pesar de los 64 bits no representa exactammente dicho niimero, ‘© Nimero Positivo Mas Grande y Mis Pequefio No Nulo Davis ls caractrsticas descrts para el almacenamiento de un niimeno real por la computador, ésta no puede almacenar un nimero posiivo axbitrariamente grande como ‘ampoco un nimeo no nulo postive abiaciamentepeqveto. El mimero positive ms grande y el mimero postive no nulo més pequefi que puede almacenar ina computadora que trabaja com palabras de 16 Bits, tienen las representaciones siguientes, respectivamente: 1203 4 5 6 7 8 8 ho eB 6 Dit eae |e eke wilt tae ed |e tee ta et). (eewteGNoef Oe i os oe ie is eee te 1foTs[t[it[#l[i[a[:[o[ol[o]olofoja ave coresponden ayg=+0. 1011 1111 #2"! =9.18734524%10" y ye = +0. 1900 0000 * 2°" = 5.421010862410™ respectivamente u n urs ‘Texto: Métodos Numéricos a —— = Dr. Hugo Rojas Por lo tanto, esta propiedad es otra limitacién de la computadora ya que, por una parte, no se puede escribir nimeros positivos mis grandes que 9.18734324"10", de intentario se tendria una situaci6n de overflow y a somputadora sejaria de calcular (esta situacién se presenta por ejemplo cuando se realiaan por inadvertencia divisiones por nimeros muy pequeBs), En Matlab se tiene un mensaje con la palabra NaN (Nor a Number). Por oira parte, no se podrian tampoco escribir nimeros positivos no nules més pequetos que $.421010862*10™, En este se caso de tiene una situacién de underflow, en ese caso la compuradora ssimila el mimero a cero y sigue calculando, Nora: en Matlab, el nimero positivo mis grande se denomina renimax y el mis pequefio no ‘nulo realmin y tienen los valores, respectivamente, 1,797693134862316*10" y 2.225073858507201*10™. Unidad de Redondeo Este parimero representa la sensiblliged 0 precsién dé Ia computadora para almacenar los miimeros reales. Se define como el nimero real positivo mis perucho 6a gure mero que sr cbtee al afar aun, (I=), 8 representa por a computor como on nimero mayor 2 ue. ipo tant ent m bee! ‘tet porinncado iat por tuned serrconacy ” 3 rednden Not: En Man, pret se det ps ene el valor mundo opr 2.204" 10%, * Optimizacién de la Represemiacién ‘Se puede optimizar de dos maneras el almacenamiento de los nimeros reales para mejorar esos limites: 4) Mandise; Como ex la representacién en coma flotante el primer digits después de in coma debe ser siempre 1, eso se treduce en que el primer digito de | mantis almacenada por la eompuladora siempre ser, la idea es entonces no almacenarlo, tomarlo en cuenta implicitamente y utilizar exe bit pera escribir un digto adicional de la mantisa Le. se representaria 9 digitos de la mantisa en 8 bits asignados. Con este cambio el mimero més grande reptesentado por la computadore sumentay la unidad de redondeo disminuye de un factor 0.5, aumentando la precisibn dela representa ugg" +0. WAL 111119 2° = 9.20555763,..10" > 9.18734523...*10!" 6 058 por truneado 0 |at 20.55 porredondeo i) Exponente: La representacién del exponente utlizando un bir part el signo no es la mis eficiente, debido @ que el cero es representado por dos configuraciones, +0 y ~0,respectivamente: ‘alk en iki a a en nian adn ane nena © eo eae ® BOCES CEC CCC CUCU USE DOGG EGU VIIIIISGS (urn Teo: Mods Nunc Dr, Hugo Rojas Bee OY 4 cern 2 4 Lele [ee] a j-o 23 5 (ileal e[alé [el 0 La idea es evitar esa redundanciay utilizar una de las configuracionés para representar un niimero adicional: cuando se utiliza e! segundo bir para ‘ecrbir el signo del exponent, las valores que se puede almacenar en el exponeate son los enteros que van de (-63)0 a (+63)io, + Bios para potencia mis pequefis Si seaflade a cede termino de ese secueneie +64 (lan), se genera una nueva secuencia que va de (+1)io 8 (+127). como estos némeros son todos positivos no se necesita almacenar e! signo y, edemi, todos ellos pueden ser epresentados con 7 bits, justo los asignads para almacenar el Exponente. La optimizacién de la representacion resulta del hecho de que con 7 bits se puede generar 128 configuraciones, de éstas 127 pueden ser ‘llizadas para representar la secuencia de (+1)ie @ (+127)ig y queda tna configuracién que representa el cero, que corresponde a. los 7 Bits con valores de cero Le. ahore se puede representar con Ios 7 bits asignados al exponente le secuencia (0) a (127). Para obtener el exponents original. te debe sustracr a ia secuencin 64 (bias) con lo que se obtendria la aweva secuencia que se puede representarefectivamente en el exponente. de (~ G)g @ (463). Al poderse almacenar en el exponente (-64)c, ahora el nimero positive no rulo més pequeio que se puede escribir es 2.710505431* 10". Esquemiticamente: coal, ieetara Expensnih | | CExponenehe | Afade |] Exponeieh | Exponente, |] Exyonenehe | Sisbae |] (Exponeniehe con signa Bias |_| ‘madifeado” modiisdo || madifado’ | Bias como Thi |=, ese tei +? | -@ [=| +a { a Tosca [=| +0 ar f= eS +e ro00000 =| +6 | -6 [-| 0 oui =| eh ESI Tooonor [= [+7 =a_[ =] oumn00 f= [0 [6 b= | 8 De manera general, i el exponente consta de m bits, enfonces el bics es igual s 2~* para optimizar hacia los exponentes mas pequefios. ‘Blas para potencias més grandes Enel caso de la maquina a 16 bits, donde se dispone de m = 7 bits para el exponent, el bias seria 63 y el rango del eyponente va de -63 2 +64, el ‘némero mis grande que se puede representar es 1.857468648410", En la tabla que sigue de muestran las operaciones en detalle. B Nrpret Tooke @u Texto: Métodos Numéricos = = ne SEES : ——— Dr. Hugo Rojas ‘Exponeniehs| | (Esponeniehe] Atade | | (Exponeniehe | Exponeniels] | (Exponentehe | Susrae | | (Exponentehe consigno Bias |_| modificade’ | modiicado |_| modificado | Bias coneeio tn fet +7 1-63 +6 Tan [=| +8 [ee [=] 6 ne =] 6 = Ta000 [=| soe : fae t+ | +e | om [-| +8 | - ° om [=| es eT Toon f= [=a ~8 [= [8 (ee os almacenamiento lectura De manera general, para optimizas hacia fos exponentes mas grandes si se dispone de n bits para el exponente, se utiliza como bias 2"/-1, Nota: (1) El mimero real positive mds grande y mds pequeito no nulo que puede representar Matlab son realmax = 1.797693134862316*10°%™ = {0-2)-2") y reaimin = 2.225073858507201*10% (2), rexpectivamente. Se constata que realmax resulta de optimizar el exponente al valor més grande ive. nlimero de bits exponente =11, bias =2-1=1023. Entonces, el exponente varia en el rango de los enteros [-(2'*-1)=-1023, 2'°=1024]. El mimero real positive mas grande seri entonces, con la mantisa optimiza, xyug =(2"+...+2%42%)*2"™% = (1-2) #27 @ realmax, (2) Se puede calcular el nimero total de mimero reales NR que la computadora representa exactamente, sim es el nimero de bits para la rmantisa (sin tomar en cuenta el bt pare el signo del nimero) y eel nimero total de brs para el exponente, * Sin optimizacin: MoE} I-2*2 2°02", ‘M2 es el nimero de valores que puede tomar la mantis, £=2*(2"!-1}+1 (el | corresponde al valor cero del exponent se euente una sola vez) EI producto se debe a que cada valor de la mantisa puede ser escrito con cada valor que puede tomar el exponente. El factor 2 se debe a ue el nimero puede ser posiivo 0 negativo, El valor I toma en cuenta del cero que necesita una representacién especial. ara el caso de Ia mquina a 16 bits, a8 y e=7 éntonces NR = 32513. ‘© Con optimizacién: R= 24122002" 41)}4, ‘ie, umentan de una unidad la mantisa y el exponenie, Para el caso dela méquina a 16 bits, m=8 y e~7 entonces Nik = 66049. La Recta Real La Recta Real segiin Ia computadora Rrc ay &Z “ a79999- SR anna amenaanananhaananaaé aan SOCCOCC CCE C ECE YUU eee EUEN UYU Ves dueS Ejemplo 1. ‘Testo: Métodas Numéricos Dr. Hugo Rojas Se trata de determinar la representecin del mimero real ={-74.390625);p- en binatio con la técnica del bias que favorece los exponentes——— ‘pequefios, optimiza In mantss y redondes. Calculer igualmerte el riimero decimal correspondiente «Para determinar Ia represeniaciSn binaria con bias de un numero decimal, ls etapas 2 seguir son: convertr et nimero a binario pasando por hexagesimal y esr + El célculo del exponent & ser almacenado utilizando el bias seri io en representacién en come flotante, La cenversién & = (74.390625)0 (-44.64),6= (0100 1010.01 10 0100).=-0.1001 0100 1 1001*2", #7 et Bias” 7464 =71 = (47e™= (100 01911, ‘+ El mimero escrito en coma flotante con las tHenicas de optimizactin y por redondeo seri: = 0.1001 0100 114001928" > x¢-0.1003 0101 0 «240%, 1 23 4 5 6 7 8 9 © N 2 8 MM 1 6 0 Plelelsy;i #l[tf[o[ol:[o]:tojfite + Elmimero almacenado converte a decimal esx¢"-(2" +24 +74+2%)* 2°7 = 74,5, donde al exponente almacenado se le ha sustraido el bias. Ejemplo 19: 2 trata calcularel nimero decimal almacenado utilizando tienicas de optimizacin (con bias de 64 para el exponente) como sigue, TLELELeLelelele lt) (lt ielt ‘Para convertir a decimal el exponente: se convierte el exponente al sistems decimal y se sustrac el bias para obtener el verdadero exponent, Exponente = (0001111}2" (1She —> Exponente comesto = 15-64 = 49 Por Io tanto se tiene el nimero: x= (OB010101°7 p= Qe 2242? #78427 +22) 2 = (1.6271 70H SOs ‘Se trata de calcular el mimero justo més grande y justo més pequefio que w =-6.2945*10" que Ia computadora que trabsja con palabras de 16 bits (que utiliza In tEonica del redondeo e incorpora tedes las técnicas de optimizacién. para el exponente hacia los exponentes mis grandes), puede representar exactamente: 1s Cempromiso ds Ercole 16 Cours Texto: Métodos Numéricos eee = Dr. Hugo Rojas, ‘Ww =46.2945*10° = (-0,0062945);¢ © (0.019C8...jg (1.0000 0001 1001 1100 1000... 0.1 1001 1100 1000 ...«24=108 CCuya representacin seria: w= -0.1 1001 1101 2%" (ole ite lila i Pepey ts fifo Justo més pequefto: como el nimero es negativo,e] nero justo mas pequefio es més grande en valor absoluio (se puede ver ficilmente que ste se obtiene aumentando una unicad el iltimo digito que se puede almacenar de la mantsa) Wy 0.1 1001 1101 #29" w 0.1 1001 1101 #248? =(-0,0000 0001 1001 1101), = (40.0 1 9D)is™ (-0.006301879882813)j0 Justo més grande: como el imero es negativo, el nimero justo més pequeflo es mas pequefo en valor absolute (se puede ver ficilmente que ste se obtene truncando en el iltime digit que se puede almacenar de la mantisa) Bg 0. 1001 1100 #282 = 0,1 101 1103 *28""= (0.0000 0001 1003 1100): = (0.0 19 Che = (-0.006286621093750) 9 ‘Ejemplo 1.10: Se trata de caleular con una computadora que trabaja con palabras de 16 bits, tiliza la tenia del redondeo ¢ incorpora todas las téenicas ‘de optimizaciGn (para el exponente hacia los exponentes més grandes), la operacién: = uv, donde u= 6.294510" y v= 5.4115*10". * Primeramente, se converte esos nimeros al sistema binario pasando por el sistema hexagesimal ‘w= 6.2945*10" = (0.0062945);¢ = (0.019C8...)ie™ (0.0000 0001 1001 1100 1000...),* 0.1 1001 1100 1000 ...*2°** 1ucm 0.1 1001 1101 #2" con mantss optimizads j bias +63 ‘Representacin almacenada: 1 ,e[ecelelelelels[ef[o[s[+[ foe Ese ndmero en decimal es: ue = 0.1 1001 1101 #2%! #87 = (6,9900 0001 1001 1101}; (0.019D) = (0.006301879882813)i¢ De la misma manera, s tiene para v 1p 541157107 = (0.00054115)i9 = (0.002673...)e (0.0000 0000 0010 0110 0111 0011 40.0110 0111 G11 ...22"er-S-aHe1 vc 0.1 0011 0100 #2" con mantise optimizada y bias +63 Representacién almacenada: t [alee late ele fofe [ifs ols folo neeeneansana PAOD OCORORADOROOANADAADAD COCO BCC CC GCC OEE FEU EEE FUUVUIBINGES (urs ‘Texto: Métodos Numéricos Dr. Hugo Rojas En decimal se tiene: y= 0.1 0011 0100 #21" = 10,0000 0000 0010 0110 1000), = (0.00268), = (0.00058746337890625).¢ ‘© Segundo, para caleula , la computadora reali la sustraccin requerida en binaro (ls algoritmos para realizar las operaciones elementales de sum, rests, multiplicacin y divisin son similares alas decimales) 1.0000 09011001 1101 0000 Fete ve > -0:0000 0000 0010.C110 1000 = =e ~v-™ 0.0000 0901 0111 0110 1000 10,0000 90010111 ¢110 1000 ‘Eee nlimero, la compatadora debe almacenar en su memoria antes de presentarlo como resultado (con mantisa optimizada y bias +63): Se Hie “c= 0.1 LLL OT LAZO Representacin almacensda: i] W]) €) 3. a] 6] 8] a] op ol tt tt of tf tt Finalmente le computadora debe convertir a decimal para dar e resultaco en la pantalla: (0.1 0111 0111 #285 = (@,9900 000] 0111 0111); = (0.0177)y« = 0.008722045898438 (resuttado que da el PC). Et resultado enacto ex: 2 = v= 0.00575335, de manera que el erro relativo (ver més adelante) es: 10” 0.544% de error relativo Nota: una manera aterntiva de realizar este cdleulo, sin recurir a la oferacién de resta en binerio (lo que no ocurre en la realidad), eonsiste en, Caleta directameste en decimal: = ne ~¥¢“0.006301879882813- 0.0058746337890625-0.00571 4416503907 ‘© Convertir ese niimero a binario: F = ue —¥e = (0.01768...}is= (0.0000 0001 0111 0110 1000...)s= 0.1 0111 0110 100027 Elim alacenado en binario seria entonces: sc = 0.1 OU11 O111%*2"=0.1 011 O111*#2%*=0.1 0111 01114028"! i] a a] a] 8] Ba] af of aft] sf of tf at _que es idéntco al cbtenido realizando ta operacin de resta er binario. ” Tarn Rome Teno Mldes Nandi Sours San —_—— —--- —— ———— ‘Dr. Hugo Rojas 1.42 Almacenaulento de Niimeros Enteros Los nimeros enteros se representan de a misma manera que los exporentes de os nimeros reales, slo que utlzando el otal de bits esignados para la palabra. Sse ienen N bitsy se iz el Basel rango denimeros enterosn seria [oo snsz'—1 con bias=2" #8 5-2147483648 5 ns 42147483647 2" 41sns2" con bias=2"!-1 —* 52147483647 < ns 42147883648 Matlab el entero posiivo més grande y pequefio son inrmax = 2147483647 e inmin ~2147483648. Segiin la anterior aplicacidn, se consiats que ‘Matlab utiliza palabras de N32 bits para representa los niimeros enters y que optimiza larepresentacién uilizando coma bias 2™* 1.43 Almaceonmiento en Coma Fija (FIXED-POINT) Esa tdcnica consiste en representat un mero real x ajo la forma: FeO td, Ppt td td 2 tt dig Dt g 2) donde o ¢s el signo de x y los ndmeros de digitos my m son fijosy stitacen ntm=N-2, 1V es ndrnero total de bits de Is palabra. En esta representacién, los _nimeros son representados con el mismo ertorabsoluto (igual a2"), pero el error relativo es raucho mayor para los aumeros pequedos (en valor absoluto) To que hace, entre otras cosas, que esta representaciSn no sea muy utilizeda 1.5 CONCEPTOS SOBRE ERRORES ¥ PROPAGACION DE ERRORES 15:1 Solucion Numériea, Problemas El proceso de resolver tn problema de ingenieri con la ayuda de una computadora consiste normalmente en las siguientes etapas: ' Modeliaciu: se formula el problema en términas matemitioos ie. se constuye un modelo matemético que impic a formilacién & ecuaciones ‘FProgramacin: se eige un lenguaeo software para realizar los eiluls se escriben los cédigos qu se requieren en ese lengusle + Th Elecei de algoritmos numérieos - biblioteca numérica: se elige los métodos numérico que Se van 8 utilizar para resolver Ins ecuaciones del modelo, se esrben los edigoso se reeue a biblioieeas muméricas eg. GNU — GS. (software libre). NAG Library, IMSL Fortran Numerical Library + Validacin: se realzan las prucbas de validacia dels programas, es decir, se realizancileulospreliminares pare casos simples cuyasolucién se conoce y se ‘erin que los resultados con el ogo desuolado coincide con los resutados exacios + Céleulos: se efestian os coulos que requiere la slucia del problems, + Interpretacin de resultados: se verifia la coberencia de ls resultados y, eventualmente, se realizaneileulossuplementaros ses nesesaio 18 Compromise de Eroslencia raeenrrnanenenmnaananaAtADA SECC CCC C CCC EEUU O UV OEE IS BUUEIBIIUES e Teno: Mods Nudins AEB 3 De Hop Rees eho eee tlle tv caer ska trai pein ear eg * Modelo: por la segunds ley Newton, se puede considerar el cuerpo sometido a Ia fuerza de gravedad y ala fueran de resistencia del aire. Como esta iltima se ‘opone al movimiento y suponiendo que depende con alguna potencia a ce Ja velocidad: iflve + Sofware: debido a que #1 parimetro a no se conoce con exactitud (depende ror ejemplo de la ‘densidad del aire que varia con la situa), ls ecuacidn diferencial no se puede resolver analitcemente en el caso general, y es neceserio recurs una computadore. En particular, de podria decidir trabajar con Matab. in matt) = me bv" () + Lat =¢- i) = me — bv" (> HO =e. * Algoritmo mumérico — biblioteca numérica: como Matlab tiene una bibliotec: numérica muy buena para resolver ecuaciones diferencia, se puede utilizar unos de ls programas que oferta eg. ODEZ3 0 ODE4S, que esté basado en el método de Rungs-Kuta, bom * Validaciém: se conoce exactamente Is solucin para dm, 21) = ¢, +c, ex{-—i) + 8°51 donde Iss m b » : ara (0) = O(m)y 0) = O(m/2), =(0)= g~-(exp{——1)-1) + g-71;entonces se puede resolver muméieamente el problema y compara los ° ™ resultados con los que se obtiene por la relucin exacta, si hay un acuerdo significa que el cbdigo escrito es correcto. * Céleulos: wilizando el digo se puede ahora calcular la posicién en funcién del dempo para el cuerpo que se estudia. Bn la figura se muestra las curvas para los casos a = 1, 1.25, 1.5, 1.75 y 2, cuando bvm=0.1 y g=10. Para el cas0 = 1 se muestra la solucién exacta, =(t) = 1000(exp(-0.10) ~1)+ 100rla ‘misma que valida el céleulo con el c6digo elaboredo. * Interpreracién: observando ls resultedos se puede concluir de qué manera el cuerpo cae, en efecto, se observa que s medida que « aumenta la distancia secorrida en el mismo tiempo es menor, lo cuales razonable ya que entonces la resistencia del aire es mayor. Los resultados de un problema resuelto en computadora no son estictamente exacios debido a que se cometen erroreso simplifcaciones en las diferentes etapas smencionadas anteriormente. Se podrian mencionar por ejemplo: ‘+ Errores de modelado matemiico: sproximaciones consideradas en el momentc de formolar las ecuaciones del modelo matcmitico e.g. en el ejemplo anterior to se toma en cuenta que la gravedad vara con la ature 0 Ie fuerza de Coriolis debido a le rotacin dela Tierra; los errores que resultan no pueden ser climinados por un método numérico. ‘+ Errores de truncado:matemitico: se deben al carcter aproximativ de las expresiones mateméticas © algoritmos numéricos uilizados para aproximar telaciones exactas u operaciones eg. en el ejemplo anterior se uflind un programa para resolver ecuaciones difeenciales basado en el método de Runga- ‘Katte, como se trata de un método numérico no es exacto. En algunos casos, la eleccién de otto algoritmo numérico puede atenuar el error. Corea ee Bonen 19 0 Cours Texto: Métodos Numéricos Sra - ‘De. Hugo Rojas ‘+ Exrores de programaciém: se refiere a los errores que se cometen al escribir los programas © oécigos; generalmente los diferentes lenguajes permiten detectarlos y corregirlos través de instrumentos (debbugers) que los mismos lenguajes disponen; debido a estos errores, se sugiere escribir cédigos ‘compuestos de pequetas unidades lo que failta la deteccin de dichos erores. ‘+ Exrores de redondeo: solos erores que resultan de las imitaciones de ls computadora para representa o almacenar nimeros reales. ‘= Errores experimentales: se deben & que los datos de entrada son inexactos e.g. en el ejemplo anterior no se tiene una estimacin exacta de} pardmetto a. Una combinacion de estos errores puede estar presente implictamente en les célculos. Como el proceso de cileulo implica muchas operaciones, eses errores ‘pueden amplificarse dramiticamente Le, los errores se propagan incluso invalidando el resultado. Pate ese charac scat aca tes ol : ee te ai Eterna ex * Niner Digi Soon md lentes pms gr pil qe sie dia |? s3#10m™ Nota: Permiteestimarcel nimero de digitos de x, , a partir del primer digit» no mulo, que son exactos ie. al mejorar Ia aproximacién, e80s digitos no cambian, 001229 , se trata de calcula los diferentes errores de x4. Bjemplo 1.12: seael valor exacto x = ~0.001234 y su valor aproximado x © Brror(z,) 22-2, =-0.000005 = 0.004052 , se puede interpretarindicando que tiene un 0.4% de error, + Rela [Bjemplo 1.13: Sixes el aimero a almacenar en la memoria de la computador y x, el valor almacenado, el error relative de este diimo obedece las relaciones, XA, om + muncado: 0s st Compromisn de Ecolenaia >aOADRDAADDAG DARAHOHODRADMAAANRAANRAARAAD weVrVeussuIUUUEuwE SeveveueeEeynvuuYvuEL ‘Teno: Métodos Numéricos Cours . Dr. Hugo Rojas fp oe : ae os { POSH x, $000, dyyp ee?! S00 Dl Mac?! #2722 082-2, $2 Enefecto, gen, 27 , josae2™ peta pee [x20.10..0, 2 =242° dng yahygo 9 E Odd *F Sidgye F(T =00. guy) 2 $¥~¥, $00 00g ye Oddy tE*)*E sidyay el [E7004 ) 42! 54-5, $00.00, Lat PAE EMD Sang, STE AP Sam 2, $2 | donde se tomé en cuenta que: 0.0..lyqgMIu.= 2742" rota [como: +20.10..0, NOTA: En problemas reales, no es simple la estimacin del error de un valor apraximado porque se desconoce el valor exacto x, en esa situaciOn, Se recure 0 estimacin mis exacta posible (calenlado quizi coa otros medio). En el caso de problemas results con algoritmos iterativos, iecuentes en métodos rhuméricos, si el proceso converge, a cada iteracidn el resultado que se ottiene es generalmente més exacto que el anterior, entonces es posible estimar el error ala iteracidn mésime recuriendo 2 as dltimas dos iteraciones y ulizando las relaciones: Error 3) = ya —Fy+ REI) = 1.8.2 ERROR PROPAGADO Y ERROR DE REDONDEO En el marco del andlisis numéro, se hace una diferencia entre lo que se denomnina el error de propagacién y el error de redondeo de uns operacih; el primero esti relscionado con el error debido a la operacién y el segundo con el error que surge de ls imitaciones de representacién de In computadora. 2 Bompromiio de Excelencia n Texto: Métodos Numéricos Dr. Hugo Rojas Defiici6n: ean x,y los valores exaios, x,y, fos valores aronimados ola epreseotaciones de los nimeros por la computaors, 9 Ia operat exacta a reaizarse entre fos mimeros (ales como +, - * y )y 3 la operacién aproximade o tal coma la realiza {a computadors en el momento de almacenar el resulado, 2 = x8y sera el resilado exact y =, = x,y, el resutado caleulado por Ia computadora,Entonces, el eror de puede esribise bj la forma: Brov (24) = 294,34 = (38-4494) + (54994-24994) eee ee donde se detinen el errr propagado y el error de redondeo. Nota: 1) Bl tkemino 2,89, 8 alor ales por a somputdore antes de alnacenciy =, fy, elvaloramacenndo iy El enor de edondeo no es fete de muchos problemas porque la compuiadoa tiene mecacismos quel permiten minimizao, come smear e rime de ls para slnacenar ls nimeres, en cambio los ects de propagacion pueden dat hgar& resultado incocecoe y son el objeto de cstiia del ands sumerco. se tata de calcular z = a6 con una PC que trabaja con words de 16 bits (redondea) Ejemplo 1.14: sean los nimeros a = 3.2789*10~, 8 = 4.07546*10" y 1 determinar los errores de redondea y propagado. se determina la representa lo vlores que almacena el PC = 52789*10 = 000032788 =(000187D..),, = (2 60000600 0900101 OIL 1101.) coma flotante (a), = (0.10101 0151 1101 .*2°*"), -»(a,), = 0.10101100* (0.0000 0000 0000 0010 1010 1011 1011..), ay, = 3.2806396484975 "10 b= 4.07546*10" = 00000407546 = (O.00N2ABB.., ~coma flotante (6), = 0.101010 1011 1011 ..2°™™" -» (6,), = o.10101011#2""" + b, = 4.0769s7702636719* 10 © Fea,rb, =1337s02000027268"10" + (2), += 01000000387..» (2), = 00000 6000 CG00 0000 000 0000 o011 1001 tt coma lotane (=), = 0.1110010117 o.1n1aor10r2"™" +z, =a, *, b, =1.338776201009750...10° Los erores serlan entonces: = realeulado exactamente seria 336302579410" Compocmnie de Erceloncia et at ae ee fost aatfan anus lanl Gn ae aaa maeneeenane Come 6 & BUC ECO CCE SEC UEEEEUVUUFTEVFUIIGIGES UPB ‘Texto: Métodos Numéricos +b, = tznszensizasza3o +10 2.473621609750433 "10" racibn de una Fancién: se quiere evaluar la fumcién fx) utlizando una computadora, Sea fx) el valor de la foneiin que se quire evaluar y_f,(x,) el valor que ealcula 1a computadore, donde x, es el valor de In variable efetivamente caleulads por la computadora. error propagado = f(x)- f(z,) eror de redondeo = f(,)— 1,(2,) S0)- F,(2,) =UGI- fa M4,)- 4) donde Fl error de redondeo de 1a funcién, conocido también como ruido (su representacin grifica ya no seria una lines continua sino un conjunto de puntos aleatorios distibuidos al interior de una banda), se debe a que en cada operacién que se realiza para calcula ls funcin, la computadora comete un error en ‘Cl momento de almscenar el reultade de es8 operscign, remitada que probahemente deherd recuperar para cilcules posteiores. Por naturaleza, el eror de ‘edandeo de la funcién es aletorio y generalmente pequefio en las computado-ss modernas, [El error propagado puede ser estimado utilizando teorema del valor medio: F)-JE,)* FE) e-4,) Modelo de una Computedora - Computadora Decimal a7 Dits Para simular el funcionamiento de le computador, se considera un modelo de computadora decimal a7 dt, (un ait seria el equvalente de un bit con la diferencia de que puede almacenar los 10 digits del sistema decimal), de los que 2 son destinados 2 los signos del nimero y el exponente en la epresentacin ‘en come flotante, 4 divs para Ja mantisay 1 para el exponente. Este modelo serd uilizado para mostrar ejemplos relacionados con los errors y su propagacién ‘Ejemplo 1.18: Se trata de calcular f(x) = VF y x= a utilizando la maquina 8 7 dies Como: + = 3.141592654.. x, = +0.3142*10"" error propagado =/(2)~ f(x,) = Vr Jt 772453,..-1.772568...= -0.0001149... ror de redondeo =f(x,)~ f,(x,) = 1.772568 - 0.1773*10" = ~0,000432... B Compromise de Ercelancia ‘Texto: Métodos Numéticos Dr. Hugo Rojas Con larelacién que permite estimar el error propagado se tend: ec pan = Pte) ga: 6342"10") 0 i mayb el rrp ae Bjemplo 1.16: Sean los valores exactos a = 3.2789*10™,b = 4.07546*10™ , el problema es caleular ls divisién de esos nimeros con la computadora a7 dts {y determinar el error y los erores de redondeo y propagado. Los valores que slmacena Is computadora serian: a, = 0.3279*10".5, =0.4075*10~ = -0.001527832441001, |.$98995614738759°10" 0.02% y me cts sigifieaivas -0,001153599512167 =, =-3.742331288343337°10" ‘a/b = 8.045472167559000 0MG62S7668T1166. = Fea,/b, 0,1, = 08047 *10" [Ejemple 1.17; algunos casos tipicos que dan lugar a ervores numérico burdos son los siguientes, 1) La mutiplicacién no ex conmutativa en a computador Sean los valores exactos a =1.2789*10",6 = 2.07546*10 yc=0,99917°10" el problema es calcular el producto de los mimeros con la ‘computadora a7 dis” ‘Esos valores son almacenados por la caleuladoraa7 dits como: a,=0.1279°10", 2, =0.2075*10~ y ¢, =0.9992"10% ‘Como se sabe, en la multipticacién de nimeros reales, el orden de Ios factores no tiene importancia, sin embargo sumeéricamente sila tiene: = sisecaleula = =(a*8)*e setiene, d= a,*b, =26539,.010 +d, =a, *,b, =02554°10" +d, =0 la méquna da el mensaje de underflow 14" by)*Ey dy Eq =O =, =U 4% yy = es decir, el resultado segin la miquina es cero. + sisecaleula = a"(b*c) sertiene, aeP2VAaAADADS rmenarennnanaAnAsAAAAAOS eefee COC CCC CCRC CEB EU BUY EEE GUNG VIIIIIES PB Texto: Métodos Numéricos ure el aed fd =b, cq = 2073349 d, =b,*, 04 =0.2073"10" E= a, "(by %y4)= 4 dy = 2651367910 > 2, = 04%, 4, = 0.2651°10 ‘un resultado no nulo. El valor exacto es z = 0.26521"10™ y el enor rlativ de este tito resultado es pequeBo, 0.04%. Este ejemplo muestra ‘que ls operacidn de multplicaién deja de ser asocitiva en fa computadora. 2) Cleo de fe norma de un vector ‘Sea un vector en el plano = xi + yj = 1.2789* 10'%7 «2.07546 10", se trata de caleular su norma con la computadora a7 dit Dichas ccordenads son slmacenadas por ls computadora a7 dts come x, = 0.127910", y= 0.2075410% 1) una primera reac pra caleuar Ye norms seria: [y= +9" sin embargo, con extn celaién la méguina simplemente no logra exer porque se presenta un problema de overflow cuando trata de caleular x7 = x, *, x, = 0.163610", 1 cent gest wines = + ( ) eta cao la, dyn%% moreno vu, =d,,4, 20260000" faa ( “uj =0:1000"10" +f, = fe, , = 0.100010" =f], =x,%, f, = 0.1279°10" 1a eomputedora noted entonces ninguna difeulad para efeciar ese cleo valor cleuledo es una buena apronimacin de valor exato, FF] = 0.1279068296693922 10", y el enor reativo es pequeto, 200534, Nota: Se constata Ja necesidad de tener cuidado en el momento de introdtcir las operaciones numésiess que s.computadora deberd efectuat. 3) Usilizacién del teorema de Taylor El teoreme de Taylor, ver Anexo, permite escribir relaciones altemativas para ciertas expresiones que son sensibles a la propagacién de errores, ‘Ejemplo 1.18: Se trata de caleuler f(x) para x=1.4°10% uttizando el PC 7 dts * Si se calcula directamente la fimcién se tendtia: 25 Compromise de Exceloncia i ‘Texto: Métodos Numéricos Dr. Hugo Rojas (> Fla) (0001400000980 y, =0.1000"20" fs A*10% + x, =0.14008107 y= cuyo error relativo serie 100% ya que el valor exacto es 1,000070003256883, ** Si se calcula utlizando el torema de Taylor: ‘Como x es pequeso, la serie de Taylor de la funcidn exponencial permite aproximarla por uns relacinalterativa quent falter es 142 ef mltr4 > Sl = Unlizando esta relacin se puede calcula con el PC a7 alts: =0.07*10" — 1, =0.7000*10~% > f(2,)=1+52 =1.00007 + f,(x,) = 0.100010" 2 el error relativo porcentual de este resultado es 7.0°10" %, que es bastante pequelto, ‘Ejemplo 1.19: Se trata de caloular f(x) = para x=14*10" utlzendo el PC a 7 dit. ‘+ Sise calcula directamente la funcin se tenia: [x=14*104 +x, =0.1400%107 Srey eae y= sen(x,)= 1.3999999954266679104 + y,=0.14007109 x de error reltivo 100%, el valor exacto es -2,333333345398816*10". ‘Si se calcula utlizande el teorema de Taylor: genes OPO sensyex-E flel= Utilizando esta relacin se puede caleular con el PC 2 7 alts: ” Bompsooie co Cecelia >2999DADS aeadmeaeeenbatbsaneonde nmnceore COC CCC OEE CCC VEEL EU YUSEUYEBUIGIIIIIES ‘Texto: Métodos Numéticos ‘Dr. Hugo Rojas Hs,)= 7B = 25" > Fay) 0.238910" cl error relativo porcentual de este resultado es 5.2*10° %, también bastante pequetio. 1.6 PROBLEMAS DE ESTABILIDAD MATEMATICA De manere general, existen varios problemas de mateméticss que son sumamente sensibles 2 pequefios errores de célculo como los errores de redondeo. Para ccuantificar esa sensibilidad se uilizan conceptos como estabilidad y nimera condicién DDefinicién: se considera un problema que puede ser representado por una eeuacién de forma, F(x) 20 onde y es la vetiable dependiente # determinar y x la variable independiente, Entonces, se dice que el problema es estabe sila solucién y depende de manera continua de Is variable + cuando se realizan aproximaciones sucesivas més precisas i lims, =7= tiny, =» «280 contaro, se dice que el problema es instal. Nota: i Esta definicin implica que s el problema es estable, pequeRos cambios en x deben dar lugar a pequefios cambios en y (el término pequefio se euantifica a través del eoncepto de norma; en cambio, si el problema no es estble entonces pegueitos cambios en x darn lugar a grandes cambios en. li Se dice también de un problema estable que es un problema bien condicionado, y de un problema inestable que es mn problems mal condicionado. Los problemas inestbles son sumamente diffciles de resolver numéricamente. F © F xe +o ¥ x wtoxe- soyiby xt estable~ bien condicionado Iinestable ~ mal condicionado Tmypromiso de Brceloncia »UPB ‘Texto: Métodos Numéricos Dr. Hugo Rojas Ejemplo 1.20: este ejemplo muesica que la resta de mimero cercanos es una operacin delicada numéricamente debido a ls errores de redondeo. Se tata de calcular, utilizande la compucadora a7 dts, las raices de la ecuacién de segundo grado siguiente: xP 26075 +0.99917 =0 nose? — sae 2a cuyas soluciones son de la forma x: « donde a= 1, 6 = -26.075 pc = 0.99917 Las soluciones exactas de esta ecuacién son: x, = 26.036624441669140 y 2, = 0.038375558330861 (calculadas con Matlab uiizando.15 decimales) Para calcuar con la mciguina decional descritaanteriormente se debe tener en cuenta que los coefcientes escrits anteriormente van a ser almacenados uilizando los 1 alts: a= 0.100010". b, = -0.2608"10 y ¢, = 0.9992*10". Enionces los diferentes términos que aparecen en las fermulas serian ealeulados come: d,=b,%, b, = 06802710" 844g eq =0.4000 "107 #0,9992 "10" = 0.676210 0.260810" seoneio" f igyD, 050810" = Sandy 24 —Ba~4 Dy ~ 0.800010 0.400010" D, =, =0.2600°107 + Errores Pau % = -0.000129647 + 0.01% | =1,29647*10" Rela, fEron(,.) =x ~x, =~0.00357586 WEror(x,,)=%,-%,=—Doo1eas * 25 Relirs,) m4) =3 > Nts) = 4.330066+10" AA = -9,04330066 + 4.306 > = ‘Se observa que la primera raiz tiene 3 digitos significatives y la segunda solarnente uno, es decir la segunda ratz es mucho menos inexacta que la primera, Para ‘entender, el origen de este hecho es necesario analizar la precisi6n con la que fueron almacenados los coeficientes dela ecuacién: 8 aa Oa9NAAADAS alata aa alee ee en nl i een altel aaa eno an COCO COC OE CECE Ye GEC EEYUUFEIFEUUFUIUIIIGS ‘Texto: Métodos Numéricos Dr. Hugo Rojas cen el caso de la primera raiz, se ve que la raiz tiene el mismo grado de error que los coeficients eseritos por Ia computadora, sin embargo. para la segunda raiz ‘ocurre como si las operaciones intermedias hubiesen propagado los erores empeorsndo el resultado. ‘Nota: la situacié que se observa con la segunda raiz se conoce también como una périda de cifras significativas. que consiste bésicamente en que el resultado de la operecién tiene un némero de cifas significatives netamente menor al némero de cifras signiicativas de los valores iniiales; esa situacién es una de las tmanifestciones de a pérdida de precisién en los cileulos que estérelacionade ye sea con la propagacin de errores, una operacién particular o la forma de caloular una determinada operacién. En el coso anterior, a pérdid de cifas significativas se debe a la operacién de susraccién que se debe realizar cuando se calcula Ia segunda ratz y que influye negativamente en Is previsién del resultado: en efecto, se puede utilizar Ia siguiente rlacin que evita efectuar dicha reste: Arie sate ,-belitots 2a ale 4ac wo eae + Entonces, (age tgtgdy = 0600210" egg ta Mg eq = 0.4000"10 #0,9992*10" = 0.3997°107 6762 "10° = 0.2600*10 maby Dy = 05208"107 => { 2t4e4 _ 0.1998*10" F724 - -4,000405466 0. 19 fF = a % de-ese manera, el resultado del célcalo de ls segunde rai tiene el mismo grado de presisi que el resultado para la primera raiz. Este ejemplo muestra efectivamente {gue Ia esta de dos niimeras cercanas es una operacién delicada numéricamente porque amplifice los errore. = = 0.3836*10 000001556, Rellx, = 405466410 > m(x,4)=3 Resolviendo le ecuacién exactamente para a, = 0.1000*10", 12608%10% y c, = 0.9992"10, los valores de los coeficientes almacenados, se obtiene wilizando Metab: {fe rsonmmasnt |i, = cosssess041336 de onde ene es ores propaga de ednde siete 4 = 0.001630866958661 -» 0.006% {erorprop,) =x, ~f, = -0005006225288520-+0.019% enor redo enor redo (E) =F, ~ r= 0.000009333041336 + 0.024% error prop (2) = x, -% = 0.000006725280525 + 0.016% 7 Compromise de Excelencia ~ UEB Texto: Métodos Numéricos be) Dr. Hago Rojas De nieién:E mero ondicion € de una eperccién matemitica como la expresads por larelacién F (yx) = 0. se define por larelasion, gle “El donde. simbolo Je las bacras representa algune norms matemétice, 1.Supt upremam » es ener real postive més pequeto que es més grande que todes los valores obtenios tomando culquis valor para 2. En mero co icin K permite ned ia sensiiidad de la solucién de un probleme, variable depencientey, a perurbaciones pequetas en le variaiie dpe ete, 0s probl ss elles 0 blencondelgnados tienen mimeras concn del orden de 10 ls problemas quc een valores de X ms andes ‘debe ser rota os con micho cuidado, Sin embargo, de manera general noes ficil determinar K para un problema cualquiera. Bj mplo 1.2: se cons fre p blade calcula Ia fanciénpotenca y = a dende a sun mero postive diferente de 1s ata de caleulerX: toe ye Pays synal™ tna = Kefshd con a!” =1+5sin0(ursriesde Tan) estas oeraclones se supon que 8x es ifintesimal Este resultado significa que el cleulo de potencias para valores de a variable grandes en vtorabsolito ar $1 pO sjenpl K= 10% yo arr alaiv de evar debido a enoes de edondeo dea miguina es = 107, extonees el enor oes esta Ie; en eft as ! devo dread sels 22 w 2 n107, Elevor relative del resutdo es mucho mayor gue el eorlativo de [avaiable de un factor 10™. Si @ 8 muy cd eget, +tendra seal prictcumente pr foo dbid last dea uci oar en ceo, 1.7 CCNCEPT( DE ES1 \BILID/ D NUMERICA. El oncepto + estab ‘ad rumes ‘a se reflereexpeiiamene ala eiabildad de un algortmo para resolver tn problems en pacar he. us lgorne pt 6 ear ee 8 ifercoc!, del concepto de esblidad matemitica en queuna operecin matemitica que es inesable siempre lo ser independientemente del Tig smo cme indo p raealzaro; del misma manera, si un operscin es esble matemateament sempre se puede encontrar um algorimo numérico 3 ambignsaresable Cuando” lige un algoritmo numérico, es importante que no tenga un grado etiidad menor an estabiidad matemitca dele operacion. 30 Conpromin de Escola OOOO AERO OOSHOD2HD2GDHOTOGHDEHHRODHOMDME BCOCECORP CECE GEE UYECUGEUYUFGUUIUIUIIEES ‘Texto: Métodos Numéricos Dr, Hugo Rojas ANEXO: TEOREMA DE TAYLOR ! teorema de Taylor establece que sina funcidn (x) es continua al igual que las (r-+1)-ésimas derivadas en un itervalo J alrededor de x, . entonoes en dicho intervalo, la funcién puede ser representada por una serie de potencias. La sere de Taylor centrada en xy al orden n esti dads por la elacién, 42)=F Temas +R = (ron) con fentres, vx GD oaterativamente, con = x +8 F158) - ZEB 60) «R09 st relacin fr apigada ala fneibn (3) = "para 3,0 en el ejemplo anterior y retrngiendo l sma al primer oven en potenias de Bx, vido pare dx 0, Pea 82)% Ha) M6395 f65)= FO)» sa"F * of wleinards _Ejemplo 1.22: Algunas funciones expresadas utilizando el teorema de Taylor, 2,2 Calter E ter eR@) ema COR) amine ir cone) sen(a)=2- 242424 RG) conRe)= CI —cosle) a1” 31 Gai Gam aay ate(“ lee Z Panel 2b eR ort tee, Me Mela md, avarafe (Ole eadJrencreiere ry SELAH coaniel © tte y (2) a@attamten aor-[ (ae “() 31 Cempromie de Erenoncia eu Texto: Métodos Numéricos a Dr. Hugo Rojas PRACTICA CAPITULO #1 1. Considere los siguientes nimeros y una computadora a 16 bits (que redondes, optimiza la representacién de la mantsa y el exponente hacia los valores rayores: bias 63) x= 0.21123"10" y= 7546329107 1.1) determine las representaciones en binario que almacenaré le computadora, 1.2) caloule los valores x, ys que efectivamente almacena la computador, 1.3) ealeule el eror, error relativo y nimero de cifras significativas de xs ¥ Ys Respuestas: 1) T1110 10 [i Jo 71 [1 [¢ JO Toyo ji Jo Jo Jo) y= oe ee oo L2)xqm 2112, ya=-7.5469 13) Error(x4) = 03, Errony,) =-5.55%10%, ‘Rel(x,) = 1.4203*10* (-0.01%), Rel(ya) =-7.3543%10* (-0.007%), a(n) — 3, ma) = 3 2. Escrba en el sistema decimal, los mimeros representados en palabras a 16 bit, cptimizado para la mantisa y con bias para escribir el exponente (bacia los ‘valores menores: bias 64): = 7 2.1) x | 22)¥0 Gen fo eT Ti Te ye Tri yo Ti to To} Respuestas: 21) xq =+ 59.6250 2.2) yq=-2.868473...*107 43, Determine Jos nimeros decimales justo més grande y jusio més pequeflo que la computadora a 16 bits puede representar exactamente de los mimeros (no considere ningiin tipo de optimizacién): 3.1) 40012412 3.2)-0.000568 32 Compromise de Eecelancica PROAADORDOAADAODANDAANDADIIDDADAAADAAADASLS BB YU BBUF BUI OGG IGBUIIIOE ‘Texto: Métodos Numéricas Dr. Hugo Rojas, Respuestas: 3.1) Justo mas Pequetio =+ 399360, Justo mas Grande =+ 401408 3.2) Justo mas Pequetio =+-0,00056838989..., Justo mas Grande =-0.000564575... 4. Considere los siguientes nlimeros y una computadora a 16 bits (que redondea, no se considera los procesos de optimizacién) x= 21123107 0.754"10° 4.1) caleule con dicha computadora z= x*y, 4.2) calcule el error del resultado, el error propagado y el de redondeo. Respuestas: 4.1) 2zq=-15.9375 4.2) Error (za) =+0.010758, Error Propagado (za) =+0.0254064375, Error de Redondeo (24) =-0.0146484375. 5. Calcule el nero mis grande postiv y el nimero mas pequefio positive no nulo para (optimizan Ia mantisa y optimizan el exponente hacia los valores més srandes): 5.1) méquina a 32 bits (1 bits para el signo, 8 para el exponente, 23 para la mantisa) '5.2) méquina a 64 bcs (1 bits para el signo, 11 para el exponente, 52 para la mantisa), '5.3) Sino se optimiza la mantisa ni el exponcnte, calcule el nimero N de nimeros reales que puede representar exactamente un computadora que trabaja con ‘mits para la mantisay » bits para el exponente (comprendido el sign. Sa 402823466385289"10", Mis Pequeto = 2.938735877055719" 10" 5.2) Mas Grande = 1.797693134862316*10', Mas Pequefio ~ 5.562684646268(04* 10° 53) )) N= 2"4(2"-1) +1 si se optimiza seria N=2*2"*2"+ 1 6. Efeetive los siguientes eéleulos con una maquina decimal a 7 digitos (4 2ara la mantisa, 1 pura el signo lel nimero, 1 para el signo del exponente y 1 para el exponente) y calcul el error relativo: 6.1) x= (236.476 -236411) /(0.93115- 0.93131) 62) =» 11020 -(10000/0.9) Respuestas: 6.1) x4=-0.1000910", Rel(x4) 6.2)2,=-0.9000°10", Rel(2,) 7. Determine el error propagado y el error de redondeo si calcula con Ia maquina decimal a 7 digitos les fonciones siguientes en los valores indicados. Ta) faye, xen 72) f(a)=In(a), x= 0 Romp veanite co Erredaese . 3 Texto: Métodos Numéricos Dr. Hugo Rojas. Respuestas: 1491*10%, Error de Redondeo = -4.3124*10* 2965*10", Error de Redondeo = -1.4046*10* 7.1) Error Propagado = 7.2) Error Propagado 8. Se trata de calcula la soluciones de la siguiente ecuacién de segundo grado con una maquina decimal a 7 digitos, caleue: 8.1) los errores relativos de los coeficientes, 8.2) los valores exactos de las raices, 8.3) las raices utlizando la maquina decimal a 7 digits y sus errores relativos, 8.4) compare los erroresrelativos de los coeficientes con los de las soluciones. 2.11982x* -100.2561 +0.0014567 = 0 Respuestas: 8.1) Reliag) = -8.4913°105, 8.2) x)= 0.47295%10", 14731*107, 1453¢104, Rel(o,) = 4.3888¢10%, x4" 0.14530*10" Rel(xjq) = -3.263110% (0.03%) Rel(xz,) =-1.3203410" (0.001%) Rel(cq) = 20594410" 9. Calcule el mimero condiciém de las siguientes operaciones: 9.A)y=sentx) Respuestas: 9.1) x= roots 10. Caleule con una caleuladora y= 10.1) directamente, 10.2) utilizando la formula de Taylor para aproximar &: e = 14x + Respuestas: 10.1), 10.2) ¥4 92) yor Hl parax= 1.4°10°, (valor exacto hasta *! !2avo decimal, y=1,000000000700) 92) x= 0.99999924137 con Matlab, Rel(y,) = 7.6563*10" (004006000700 (la fdrmula de Taylor permite evitar la resta en el numerador). Rel(y,) = 0 Cempromiso de Exrcleneia amaaneece MYO eee ele eevee dveuUECU EEUU UUUUUuUuUuUeNUd Texto: Métodos Numéricos ups Dr. Hugo Rojas 11. Encuentre una manera de evita la pérdida de precisin en los siguientes casos: LI) log(x+1)-log(x) para x grande 11.2) senfe+bx)-sen(x) para x pequtio 11.4) 47-1 para x pequetio Verifique su respuesta utilizando una maquina a 7 “ 0.08% error 11.3) ealeular como 1/{1+cos(x)} Ej, parax=0.001, onl méqunaa 7 ds ya relacion P25 «9-5 100% eer con la maquina a7 ditsy la relacién 1/{1-+cos(x)] = 0.500010" — 0% error 114) caleularcomo 2/3 Bj. parax=0.001, con a maquina a7 dits y larelacion VI+x-1=0— 100% error con la méquina a7 dis ylarelacién x/3=03333*10" 0.02% ence 12, Usilizando la serie de Taylor para escribir cada funcién simple, determine las relaciones que permiten evitar la pérdida de precisién para x =: Cony romiin elo Crcelseie 35 ‘Texto: Métodos Numéricos Dr, Hugo Rojas 121) f(y 122) f(x) Respuestas: 121) fQ)1+E, 13, Calcul las operaciones elementales siguientes en binario: 13.1) x= 111010111 + 110011011 132) y= 101000100— 110011 133)2= 1110101 *1101 13.4) w= 1010100 /1001 Respuestas: 13.1) x= 1101110010, 13.2)y= 100010001, 13.3)z= 10111110001, 13.4) u= 1001 residuo=11 14, Considere una computadora que trabaje con “palabras” de 12 bits (1 para el signo, 6 para la mantisa y 5 para el exponente), que utiliza Ia téenica del Fedondeo¢ incorpora todas las ténicas de optimizacin (para el exponente hacia los exponentes mas grandes). Se considran los nimeros u =~-6.245*10" y¥ =6.415410" 14.1 calcule las representaciones en binario y decimal de w y v, que almacena la computadora, 142 calcule z= v con dicha computadora y determine su error porcentual y nmero de ctfas significativas, 143 determine la unidad de redondeo y los nimeros més grande y més pequefio no nulo, positives (expréselos tanto en binario como en decimal). Respuestas: 141 (uyhe= St Pe Liye ta Lity Ce ia ea (unio -61.5 a= oTiTovTii~TitTovTotTovToevToyo) (dio= 64 14.2 (¢4)io= +05, Re(=,)io = 0.2857 ~ 28.6%, m= 0 143 Mis grande: prune Benes yXAAAADG -nmennenore CORO CBC CU BEBE GG GE GIGI IGIIGISFIIGS Texto: Métodos Numéricos ——______—__—___— oe Dr. Hugo Rojas feta eo nef tw fe devo foes (uo= 65024 Mis pequeto: [a (uio= 1.52598108 ‘Unidad de redondeo = 5 = 2" = 0.0078 37 ups Texto: Métodos Numércos e se ao ee Dr. Hugo Rojas : MATLAB CAPITULO 1: INTRODUCCION A MATLAB + Ventana de Comandos ¢ ‘Cuando se ingresa a Matlab, normalmente se accede directamente a la panralla de ccmandos (Figura 1), donde se ingresan los comandos u rdenes que se quieren ejecutar ceseribiendo después del simbolo >> y lanzando Ia orden con Ia tecla de fin linea (rerun) ¢ ; , ¢ A Brompromise de Eavcleneia . é COCO OCCU CEU FOU GE OYE GOSFIVIIGIIIGE Texto: Métodos Numéricos Dr. Hugo Rojas, Q ew tran wach des ane Rena or red ena Rte x Figura 2 [Ejemplo: Se podria calcula la suma de la tangente de 5 (radianes) mis la raiz cuadrada de 4 y almecenar en le variable 2 (de los ejemplos anteriores, es0s valores ya estan almacenados en y ¥ X, respectivamente) Figura 3 ‘* Con el comando clear se puede bortar de la memoria todas las variables creadas en la pantalla de comandos, el comando cle permite limpiar la pantalla pero sin borrar las variables feo » ‘Texto: Métodos Numéricos Dr. Hugo Rojas Nota: Matlab dispone del comando hie!p para acceder a informacién sobre las funciones implicitas que dispone. En la figura 4 se muestra la informacién sobre la funcién (square root). SorT square SORT(H) 9 the square root of rhe elements of Z. Complex a Feauits are produced af ¥ 4s not posit: Algunas funciones implicitas ities de Matlab 1. fplot ite graficar funciones. Por ejemplo para graficar la funciénf(x)=x*sen(x) entre los limites O y 2 se tendria que ingresar la orden >> fplot(x¢singx)’ {0 2*piD); ‘Nota: la funcion se declra entre comillas simples y los limites entre corchetes. Pi es una palabra reservada de Matlab que da el valor 3.141592... Si se quisiera incluir un cuadriculado en el gréfico, se introduce el comando grid on. (para desactivarla se utiliza grid off) >> grid on Para poder graficar una segunda funciGn en el mismo grfico en rojo (por ejemplo: a(x)=x+c0s(x)), se introduce Ias érdenes: >> hold on >> fplot(x+cos(x)'[0 2¢p)s Sin el comando hold on, se habria perdido el grafico de Ia primera funcién f(x) La extension ‘r',es la orden para graficar en rojo (res por red). Para desactivar la orden hhold on se utiliza la orden hold off, ver figura 5. Para introducir los ejes y los nombres de las fnciones, se utiliza Ia opcién insert de Ia barra de herramientas que aparece en la ventana grifica, donde se tiene entre otras, ‘opciones: X label (abscisa) Y label (ordenada), Title (titulo), Text Arrow (ingresartexio con una flecha) .. esas opciones se utilizaron para crear el gréfico de la figura 5 = Cificonstbe te Biceleons COG OGG CU BCU GUO UY OU YY FGGIIIIIIIOS : cxeiaigieeais (ours ee 2. plot Permite dibujar funciones definidas por conjuntos de puntos (x, = 0%) Para dibujar la funcién f(x) anterior como un conjunto de 21 puntos con abscisas equidistant, se necesitarian los siguientes pasos: Crear los puntos y dibujarlos. >>x=0: 2*pi/20 : 2*pi; +x serd un tablero linea que contendr las abscisas de 0 a 2x, distanciados de 1/10. D> y=x+ sings); ¥yserd un tablero Linea que contendré las ordenadus que corresponden a los valores c"eados en la etapa anterior. Ahora se puede dibujar Ia funcién con la orden: >> plotgxy.'"") Los simbolos entre comills, dan Ia orden de dibujar los puntos con asteriscos de coler rojo. En la figura 6 se muestra las érdenes que permiten obtener un grafico que ‘contiene la curva de puntos ¥ la funcién a la que corresponden esos puntos. En la figura 7 se muestra el grifico que se obtiene. Comp rewind Exendencia i a 2 Cours Texto: Métodos Numéricos Dskeaeclare © Mowtoadd Whats New (Des tonaTeah woth eis se Dance rend tn ae elses D> pexssinc |p> pioetn'e°) * b> meld ea 2 [p> splocirseainie! [0 Figura? 3. inline Permite defini funciones en la pantalla de comandos. Cnptromnie featiestaacllan'tenvani@n nian aataaliintin’ a a extes Gs a TS a ee a es i BO 666 CU CCU UU BUY FH GI FY IIIIIGIGS ©)UPB Texto: Métodos Numéricos “ : Dr. Hugo Rojas Por ejemplo para definir la funcién f(x) se deberia ingresar la orden: >> f = inline(-x-sin(x)); Si se tratase de una funcién a 2 variables, a(x,y) = x"+tan(y), se tendria: >> g= inline(‘x“2Htany)' x cen este caso es necesario especificar las variables entre comillas, ver figura 8. Una ver definidas las funciones, stas pueden ser utilizadas como funciones implicitas de Mate. Sse Bo claw ele (Q ver ori wa i amas ro Gat aad inline function: fix) © xeainan, Gey Figura 8 Compromise do Eared (urs ‘Texto: Métodos Numéricos ue Dr. Hugo Rojas, ESCRITURA DE CODIGOS EN MATLAB Para escribir un programa o cédigo en Matlab se debe crear fichero mombre.m, donde nomtre es el nombre del programa asignado por el creador del mismo y m es la extensién obligator Para escribir un programa, se debe abrir la ventana de edicién, para ello desde Ia barra de herramientas se elige la opcisn File, donde se escoge la opcién New, seguido de la opcién M-file. La ventana que se abe es como en la figura 9: = BOe sox “BO SOE B soe Figura 9 En la part superior izquierda se lee la palabra Editor — Untitled. Indica que se trata de la pantalla de edicién y que atin no se ha asignado un nombre al programa a escribirse. Un programa en Matlab es bésicamente un conjunto de médulos que se incian con la palabra function, seguido (aunque no necesariamente) de las variables de salida (output) separadas por comas y entre corchetes, el signo de igual (=), el nombre de la funcién, y las variables de entrada (input) separadas por comas y entre paréntesis. Por ejemplo, la primera linea del cOdigo podria ser: Fetion (a, 6} = test, 2) Las variables de salida (output) son ay b el nombre de la funcin test Tas variables de enrada (input) m y k En Matlab no necesario declarar los tipos de variables tampoco las dimensiones de ésas n caso de que se traten de matrices. 1) Input y outpat Una manera mas amical de ingresar las variables de entrada y obtener los resultados dela elecucién de un cédigo es uilzando los comands: ~ input, que permit introduir la variable y una descripcin dela variable Enel ejemplo que sigue, figura 10, se introduce la variable de entrada k 4 Tampraimie ae Cocslonie i antan ax aatna an cae sen i ane ae y » » » » , > » » » > » ’ > » » » ) > d > ) > ) > a > 2 a 2 , ) , , > , Texto: Métodos Numéricas 4k input(‘introduzca fa variable k\n’); ‘en el momento de la ejecucidn, Matlab escribe el texto entre comillas simples en la paatalla de comandos introduzca la variable ky espera que se introduzca un valor. Los simbolos \n es una orden para satar ale préxima lines, entonces el espacio donde se va a introducir el valor de seré en la prxima linea. {print, permite escribir el valo: de una variable y na descripcién dela isms En el ejemplo que sigue, figura 10, se calcula la variable m fprintf(‘el resultado es\n ¢4.2£ \n',m); 1 resultado es, pasa a a siguiente linea En el momento de la ejecucién, Matlab escribe el texto que se encuentra entre las conillas simples en la pantalla de comandos el resu , (Ca) imprime el valor de m en el formado indicado (%4.24) y salt a la proxima linea En el formato, el simbolo % significa que se va a definir el formato de salida del resultado, en el ejemplo significa que sera un nimero decimal con 2 espacio asignados ala parte decimal sobre 4 espacios. (EE Se a. opal En la figura 11 se muestra la ejecucién del programa rest.m. sero 4 2.00 4s emp tio de Eaeaenoia ‘Texto: Métodos Numéricos: ure nae Estructura while ... end hile permite repetir una serie de rdenes mientras una condicién dada se verfica. El final de la estructura while se indica ccn la palabra end. Forma general: while condicion, orden |; orden n; end La condicion se formula generalmente bajo la forma: expr op expr donde op es (igual), < (menor), > (mayor), <= (menor igual), >= (mayor igual), ~=(desigual) y exp es una expresién matemética Ejemplo. Neu AO; while N <= 10 & A <20, N=N+I; AZA+h end is anterior de variable A. La orden Se inicalizaW con el valor 1 y A con O, luego mientras N es menor o igual que 10 y A menor que 20, se inerementa 1 al contacor N y 4al valor anterior de variab break puede ser utilizada para terminar prematuramente el ciclo while. Estructura for ..end for permite repeti un conjunto de érdenes un nimero especifico de veces. El final de la estructura forse indica con la palabra end. La forma general de la estructura fores for variable = expr, orden; orden 46 Compromise de Eavelencia Texto: Métodos Numéricos Dr. Hugo Rojas end Generalmente, exp tiene la forma n1:m:n2 que significa que la variable tomard valores de nl n2 saltando de m i.e. los valores que tomara la variable son nl, n1+m, n1+2m, Ejemplo: for i=1:2:10 for =10:-05:1 A=20%-j;, B= Ati, end Estructura if ..elseif.. else ... end dela estructura if se indica con le palabra end, Fora general: Si hay dos posibilidades: Sihay 3 posibilidades: if condicién, if condic‘éni, orden I; ‘orden 1; orden n; ‘orden else elseif condition2, orden Las orden Ia; orden na; orden na; end else orden Ib; ‘orden nb; end asi sucesivamente. Tsirtestn ce Romance ‘Sim>0 la sucesién es reciente y n2 debe ser mayor # nl, si m <0 Ia sucesiGn es decreciente y n2 debe ser menor a nl. Sim=1, no es necesario indicarlo y se escribe nl:n2 La estructura if permite ejecutar un conjunto de érdenes si se cumple una condicién dada, si noes el caso (else / elseif se ejecuta otro conjunto de Srdenes, sino fuese an el aso (else) permite ejecutar otras Ordenes de ser necesario. Esta Gitima permite ejecutarciertos comandos cuando las anteriores condiciones declaradas no se cumplen. El final "7 > Texto: Métodos Numéricos 2 ani Dr. Hugo Rojas La condicién se formula generalmente bajo la forma: expr op expr donde op es igual), <(menor), > (mayor), <= (menor igual), > (tiayor igual), ~= (desigul) y exp es una expresion matematica Ejempio | Ejempio 2 ifN<10, ifN< 10, Aw A+d: AnAt+4: else elseif N<=20, A=A+5; A=A+8 end else A=A+I6; end CODIGO PARA CONVERTIR DE DECIMAL A BINARIO ‘Como aplicacién de las diferentes estructuras mencionadas anteriormente, a continuacién st presente el cédigo que permite realizar la conversion de un numero real del sisteme decimal al binario. ‘Algunas funciones suplementarias de Matlab que son utilizadas en el programa que sigue son: ~floor(x): permite obtener el nimero entero més préximo de x que se halla a su izquierda (e.g. floor(1.7)= 1 y floor(-1.7) ‘Oras funciones similares son: eel (x), que dael nimero enter> més préximo ala derecha de x, cei(1.7)=2y'ceil-1.7)=-1, round (x), que da el entero redondeado nbs(x): permite caleulr el valor absoluto de x += sign(x) esta funcién da el valor 1 si x es positivo y 0 caso contrario funetion convdecbin ‘% conversion decimal a binario °% lectura del nimero decimal y del nimero de decimales a caleular x=input(’x? 9; % se ingresa el niimero decimal ‘N=input(‘nimero de decimales? '); % se ingresa el ntimero de decimales requerido ‘% se separa la parte entera y la parte decimal xn = abs(x); % valor absoluto eS Bipesarniis vo Recromrts anaanad Tee ee oe ee oe ee oe ee eo pent floortxn); % parte entera Pdec=xn- pent; % parte decimal 6 se calcula la parte entera en binario y se almacena en pe nit=0; ifpem = 0, itl; pei(l)=0; else co = pent; nit = 0; peitnit) = coc - 2*div; ‘coc div; ‘% se invierte el orden de digitos calculados pe(i= peifnit+1); end % se calcula la parte decimal en binario for LN ‘mul = 2*pdec; pACi) = floor(mul); pdec = mul - pai); end ‘% escribiendo el nimero en binario {print ‘printf(x en binario: 9); ifsign) = 1, print); else ‘print; d en Aprintf(%2i',pe); fprintf(,’); fprintf{'%2i'pd); fprintf('\n’); Fompremise de Exrotoncia Texto: Métodos Numéricos Dr. Hugo Rojas

Você também pode gostar