Está en la página 1de 4

Machine Translated by Google

1.2  Aproximaciones  en  computación  científica 13

Entonces,  para  x  =  1,  tenemos

y  =  f(1)  =  cos(1)  ≈  0.5403,

2
yˆ  =  ˆf(1)  =  1  −  1   /2  =  0,5,

xˆ  =  arccos(ˆy)  =  arccos(0.5)  ≈  1.0472,

Error  directo  =  ∆y  =  ˆy  −  y  ≈  0,5  −  0,5403  =  −0,0403,

Error  hacia  atrás  =  ∆x  =  ˆx  −  x  ≈  1,0472  −  1  =  0,0472.

El  error  hacia  adelante  indica  que  la  precisión  es  bastante  buena  porque  la  salida  está  cerca  de  lo  
que  queríamos  calcular,  mientras  que  el  error  hacia  atrás  indica  que  la  precisión  es  bastante  buena  
porque  la  salida  que  obtuvimos  es  correcta  para  una  entrada  que  solo  está  ligeramente  perturbada.  
A  continuación,  veremos  cómo  el  error  hacia  adelante  y  hacia  atrás  se  relacionan  entre  sí  
cuantitativamente.

1.2.6  Sensibilidad  y  condicionamiento
Una  solución  imprecisa  no  se  debe  necesariamente  a  un  algoritmo  mal  concebido,  sino  que  puede  
ser  inherente  al  problema  que  se  está  resolviendo.  Incluso  con  un  cálculo  exacto,  la  solución  del  
problema  puede  ser  muy  sensible  a  las  perturbaciones  en  los  datos  de  entrada.
La  noción  cualitativa  de  sensibilidad  y  su  medida  cuantitativa,  llamada  condicionamiento,  se  ocupan  
del  error  de  datos  propagados,  es  decir,  los  efectos  sobre  la  solución  de  perturbaciones  en  los  datos  
de  entrada.
Se  dice  que  un  problema  es  insensible  o  está  bien  condicionado  si  un  cambio  relativo  dado  en  
los  datos  de  entrada  provoca  un  cambio  relativo  razonablemente  proporcional  en  la  solución.
Se  dice  que  un  problema  es  sensible,  o  mal  condicionado,  si  el  cambio  relativo  en  la  solución  puede  
ser  mucho  mayor  que  el  de  los  datos  de  entrada.  Cualquiera  que  haya  sentido  una  ducha  pasar  de  
congelación  a  escaldado,  o  viceversa,  con  el  más  mínimo  toque  del  control  de  temperatura,  ha  tenido  
experiencia  de  primera  mano  con  un  sistema  sensible  en  el  que  el  efecto  es  desproporcionado  con  
respecto  a  la  causa.
Más  cuantitativamente,  definimos  el  número  de  condición  de  un  problema  como  la  relación  entre  
el  cambio  relativo  en  la  solución  y  el  cambio  relativo  en  la  entrada.  Un  problema  está  mal  condicionado,  
o  es  sensible,  si  su  número  de  condición  es  mucho  mayor  que  1.  Usando  la  notación  de  nuestro  
ejemplo  anterior  de  evaluación  de  una  función,  tenemos

|(f(ˆx)  −  f(x))/f(x)|  |(ˆx   = |(ˆy  −  y)/y|  | = |∆y/y|  |


Número  de  condición  = .
−  x)/x| (ˆx  −  x)/x|   ∆x/x|  

Reconocemos  el  numerador  y  el  denominador  en  esta  razón  como  los  errores  relativos  hacia  adelante  
y  hacia  atrás,  respectivamente,  por  lo  que  esta  relación  se  puede  reformular

|Error  de  reenvío  relativo|  =  número  de  condición  ×  |error  hacia  atrás  relativo|.

Por  lo  tanto,  el  número  de  condición  puede  interpretarse  como  un  "factor  de  amplificación"  que  
relaciona  el  error  hacia  adelante  con  el  error  hacia  atrás.  Si  un  problema  está  mal  condicionado  (es  decir,  su
Machine Translated by Google

14 Capítulo  1:  Computación  científica

número  de  condición  es  grande),  entonces  el  error  relativo  hacia  adelante  (perturbación  relativa  
en  la  solución)  puede  ser  grande  incluso  si  el  error  relativo  hacia  atrás  (perturbación  relativa  en  
la  entrada)  es  pequeño.
En  general,  el  número  de  condición  varía  con  la  entrada  y,  en  la  práctica,  generalmente  no  
conocemos  el  número  de  condición  exactamente  de  todos  modos.  Por  lo  tanto,  a  menudo  
debemos  contentarnos  con  una  estimación  aproximada  o  un  límite  superior  para  el  número  de  
condición  máximo  en  algún  dominio  de  entradas  y,  por  lo  tanto,  la  relación  entre  el  error  hacia  
atrás  y  hacia  adelante  se  convierte  en  una  desigualdad  aproximada,

|Error  de  reenvío  relativo|  número  de  condición  ×  |error  hacia  atrás  relativo|,

que  limita  el  error  de  reenvío  del  peor  de  los  casos,  pero  no  necesariamente  se  realizará  para  
todas  las  entradas.  Con  base  en  esta  relación,  el  número  de  condición  nos  permite  acotar  el  
error  hacia  adelante,  que  suele  ser  de  mayor  interés,  en  términos  del  error  hacia  atrás,  que  
suele  ser  más  fácil  de  estimar.
Usando  cálculo,  podemos  aproximar  el  número  de  condición  para  el  problema  de  evaluar  
una  función  diferenciable  f:  R  →  R:

Error  directo  absoluto  =  f(x  +  ∆x)  −  f(x)  ≈  f ′ (x)∆x,
de  modo  que

Error  de  avance  relativo  =  
f(x  +  ∆x)  −  f(x) ′
≈ F (x)∆x   ,
f(x) f(x)
y  por  lo  tanto
F ′ (x)∆x/f(x)  ∆x/ = xf′  (x)  
Número  de  condición  ≈ .
x f(x)

Por  lo  tanto,  el  error  relativo  en  el  valor  de  la  función  de  salida  puede  ser  mucho  mayor  o  menor  
que  el  de  la  entrada,  según  las  propiedades  de  la  función  involucrada  y  el  valor  particular  de  la  
entrada.
Para  un  problema  dado,  el  problema  inverso  es  determinar  qué  entrada  produciría  una  
salida  dada.  Pues  el  problema  de  evaluar  una  función,  y  =  f(x),  la  inversa  (y),  es  determinar,  
por  x  =  f  tal  que  f(x)  =  y.  De  la  definición,  
−1 para  uvn  
emos  
valor  
qdue  
ado  
el  yn,  
úmero  
un  problema  
de  condición  
de  valor  
del  
xp ,  
roblema  
denotado  
inverso  es  el  recíproco  del  problema  original.  En  consecuencia,  si  el  número  de  condición  es  
cercano  a  1,  tanto  el  problema  como  su  problema  inverso  están  bien  condicionados.  Sin  
embargo,  si  el  número  de  condición  es  mucho  mayor  o  menor  que  1,  entonces  el  problema  o  
su  inverso,  respectivamente,  están  mal  condicionados.

Recordamos  del  cálculo  que  si  g  es  la  función  inversa  g(y)  =  f −1 (y),  y  x  (x)  
e  y  son  valores  tales  que  y  =  f(x),  entonces  g ′ (y)  =  1/f′  (x),  siempre  que  f ′ =  0.
Por  lo  tanto,  el  número  de  condición  de  la  función  inversa  g  es

y  g′  (y)   = f(x)(1/f′  (x)) = f(x)  


Número  de  condición  ≈ ,
g(y)   X xf′(x)

que  es  el  recíproco  del  número  de  condición  de  la  función  original  f.
Machine Translated by Google

1.2  Aproximaciones  en  computación  científica 15

Ejemplo  1.7  Número  de  condición.  Considere  la  función  f(x)  =  √  x.  Como  (x)  =  1/(2√  x ),  tenemos
F′

xf′  (x)   x/( 2√x )   1
Número  de  condición  ≈ = = .
f(x) √x 2

Esto  significa  que  un  cambio  relativo  dado  en  la  entrada  provoca  un  cambio  relativo  en  la  salida  
de  aproximadamente  la  mitad  de  ese  tamaño.  De  manera  equivalente,  el  error  relativo  hacia  
adelante  es  aproximadamente  la  mitad  del  error  relativo  hacia  atrás  en  magnitud,  como  vimos  
para  este  mismo  problema  en  el  ejemplo  1.5.  Por  lo  tanto,  el  problema  de  la  raíz  cuadrada  está  
bastante  bien  condicionado.  Tenga  en  cuenta  2 , de  
que  condición  
el  problema  
de  |y  
inverso,  
g′  (y)/g(y)|  
g(y)  
==  |  y(2y)/y2  
y  tiene  u|n  
  =n  2úmero  
,  que  
es  el  recíproco  de  la  raíz  cuadrada,  como  se  esperaba.

Ejemplo  1.8  Sensibilidad.  Considere  la  función  tangente,  f(x)  =  tan(x).  Como  (x)  =  sec2  (x)  =  1  
F ′ +  tan2  (x),  tenemos

xf′  (x)   x(1  +  tan2  (x))   1
Número  de  condición  ≈ = =  x +  tan(x) .  
f(x) tan(x) tan(x)  

Por  lo  tanto,  tan(x)  es  altamente  sensible  para  x  cerca  de  cualquier  múltiplo  entero  de  π/2,  
donde  su  valor  se  vuelve  infinito.  Por  ejemplo,  para  x  =  1,57079,  el  número  de  condición  es  
aproximadamente  2,48275  ×  105 .  Para  ver  el  efecto  de  esto,  evaluamos  la  función  en  dos  
puntos  cercanos,

tan(1.57079)  ≈  1.58058  ×  105 , tan(1,57078)  ≈  6,12490  ×  104 ,

y  observe  que,  de  hecho,  el  cambio  relativo  en  la  salida,  que  es  aproximadamente  1,58,  es  
aproximadamente  un  cuarto  de  millón  de  veces  mayor  que  el  cambio  relativo  en  la  entrada,  
que  es  aproximadamente  6,37  ×  10−6 .  Por  otro  lado,  la  función  inversa  g(y)  =  arctan(y)  tiene  
un  número  de  condición  de  |y  g′  (y)/g(y)|  =  |y(1/(1  +y ))/  arctan(y)|.  Para  y  2=este  
  1,58058  
número  
×  105,  
de  
, el  valor  c4orrespondiente  
condición  es  aproximadamente   ,0278  ×  10−6 ,  qdue  
e  xe.  s  
Por  
el  rlo  
ecíproco  
tanto,  ad
rctan(y)   , einsensible  
e  la  función  
es   xtremadamente  
tangente  en  
este  punto.

El  número  de  condición  que  hemos  definido  a  veces  se  denomina  número  de  condición  
relativo  porque  se  define  en  términos  de  cambios  relativos,  o  errores  relativos,  en  la  entrada  y  
la  salida.  Esto  suele  ser  lo  más  apropiado,  pero  no  está  definido  si  la  entrada  x  o  la  salida  y  es  
cero.  En  tales  casos,  el  número  de  condición  absoluto,  definido  como  la  relación  entre  el  
cambio  absoluto  en  la  solución  y  el  cambio  absoluto  en  la  entrada,  |∆y|/|∆x|,  es  una  medida  
adecuada  de  sensibilidad.  Tal  situación  surge,  por  ejemplo,  en  la  búsqueda  de  raíces:  dada  
una  función  f:  R  →  R,  buscamos  un  valor  x     tal  que  f(x    )  =  0  (ver  Capítulo  5).  Evaluar  
función  
la  
f(x)  cerca  de  tal  raíz  x  tiene  un  número  de  condición  absoluto

|∆y|  
≈  |f  |∆x|′ (x    )|,
Machine Translated by Google

dieciséis
Capítulo  1:  Computación  científica

y  el  problema  inverso  de  determinar  la  raíz,  es  decir,  encontrar  un  valor  de  entrada  x     para  x  que  produzca  y  =  
f(x    )  =  0,  tiene  el  número  de  condición  absoluta  1/|f  f ′ (x    )|,  siempre  que
′ (x    )  =  0.

1.2.7  Estabilidad  y  Precisión
El  concepto  de  estabilidad  de  un  algoritmo  computacional  es  análogo  al  condicionamiento  de  un  problema  
matemático  en  el  sentido  de  que  ambos  tienen  que  ver  con  los  efectos  de  las  perturbaciones.
La  distinción  entre  ellos  es  que  la  estabilidad  se  refiere  a  los  efectos  del  error  computacional  en  el  resultado  
calculado  por  un  algoritmo,  mientras  que  el  condicionamiento  se  refiere  a  los  efectos  del  error  de  datos  en  la  
solución  de  un  problema.  Un  algoritmo  es  estable  si  el  resultado  que  produce  es  relativamente  insensible  a  las  
perturbaciones  debidas  a  las  aproximaciones  realizadas  durante  el  cálculo.  Desde  el  punto  de  vista  del  análisis  
de  errores  hacia  atrás,  un  algoritmo  es  estable  si  el  resultado  que  produce  es  la  solución  exacta  de  un  problema  
cercano,  es  decir,  el  efecto  de  las  perturbaciones  durante  el  cálculo  no  es  peor  que  el  efecto  de  una  pequeña  
cantidad  de  error  en  los  datos.  entrada  para  el  problema  dado.  Según  esta  definición,  un  algoritmo  estable  
produce  exactamente  el  resultado  correcto  para  casi  el  problema  correcto.  Muchos,  pero  no  todos,  los  algoritmos  
útiles  son  estables  en  este  sentido  estricto.  Un  concepto  más  débil  de  estabilidad  que  es  útil  en  algunos  contextos  
es  que  el  algoritmo  produce  casi  el  resultado  correcto  para  casi  el  problema  correcto.

La  precisión  se  refiere  a  la  cercanía  de  una  solución  calculada  a  la  verdadera  solución  del  problema  bajo  
consideración.  La  estabilidad  de  un  algoritmo  no  garantiza  por  sí  misma  que  el  resultado  calculado  sea  preciso:  
la  precisión  depende  del  condicionamiento  del  problema,  así  como  de  la  estabilidad  del  algoritmo.  La  estabilidad  
nos  dice  que  la  solución  obtenida  es  exacta  para  un  problema  cercano,  pero  la  solución  de  ese  problema  cercano  
no  es  necesariamente  cercana  a  la  solución  del  problema  original  a  menos  que  el  problema  esté  bien  
condicionado.  Por  lo  tanto,  la  inexactitud  puede  ser  el  resultado  de  aplicar  un  algoritmo  estable  a  un  problema  
mal  condicionado,  así  como  de  aplicar  un  algoritmo  inestable  a  un  problema  bien  condicionado.  Por  el  contrario,  
si  aplicamos  un  algoritmo  estable  a  un  problema  bien  condicionado,  obtendremos  una  solución  precisa.

1.3  Aritmética  informática
Como  se  señaló  anteriormente,  un  tipo  de  aproximación  que  se  hace  inevitablemente  en  la  computación  científica  
es  la  representación  de  números  reales  en  una  computadora.  En  esta  sección  examinaremos  con  cierto  detalle  
los  sistemas  aritméticos  de  precisión  finita  que  se  utilizan  para  la  mayoría  de  los  cálculos  científicos  en  
computadoras  digitales.

1.3.1  Números  de  coma  flotante
En  una  computadora  digital,  el  sistema  de  números  reales  R  de  las  matemáticas  está  representado  por  un  
sistema  de  números  de  coma  flotante.  La  idea  básica  se  parece  a  la  notación  científica,  en  la  que  un  número  de  
magnitud  muy  grande  o  muy  pequeña  se  expresa  como  un  número  de  tamaño  moderado  multiplicado  por  una  
potencia  de  diez  apropiada.  Por  ejemplo,  2347  y  0,0007396  se  escriben  como  2,347×103  y  7,396×10−4 ,  
respectivamente.  En  este  formato,  el  decimal

También podría gustarte