Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cond
Cond
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
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
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