C - Hallazgo de Raíz
( \newcommand{\kernel}{\mathrm{null}\,}\)
A este punto se han encontrado soluciones a ecuaciones casi exclusivamente por manipulación algebraica. Esto es posible solo para las ecuaciones artificialmente simples de conjuntos y pruebas de problemas. En el “mundo real” es muy común encontrar ecuaciones que no pueden resolverse mediante manipulación algebraica. Por ejemplo, encontraste, al completar un cuadrado, que las soluciones a la ecuación cuadráticaax2+bx+c=0 sonx=(−b±√b2−4ac)/2a. Pero se sabe que simplemente no existe una fórmula correspondiente para las raíces de un polinomio general de grado cinco o más. Afortunadamente, encontrarse con tal ecuación no es el fin del mundo, porque normalmente no se necesita conocer exactamente las soluciones. Uno sólo necesita conocerlos dentro de algún grado específico de precisión. Por ejemplo, rara vez se necesita saberπ a más de unos pocos decimales. Existe todo un tema, llamado análisis numérico, que se refiere al uso de algoritmos para resolver ecuaciones (y realizar otras tareas) aproximadamente, con cualquier grado de precisión deseado.
Ya hemos tenido, en los Ejemplos 1.6.14 y 1.6.15, y el previo a ellos, una introducción realmente rápida al método de la bisección, que es un algoritmo crudo, pero efectivo, para encontrar soluciones aproximadas a ecuaciones de la forma En brevef(x)=0. utilizaremos un poco de cálculo para derivar una muy eficiente algoritmo para encontrar soluciones aproximadas a tales ecuaciones. Pero primero aquí hay un ejemplo simple que proporciona una revisión de algunas de las ideas básicas del hallazgo de raíces y el método de la bisección.
Supongamos que se nos da alguna funciónf(x) y tenemos que encontrar soluciones a la ecuaciónf(x)=0. Para ser concretos, supongamos quef(x)=8x3+12x2+6x−15. ¿Cómo vamosf(x)=0? a resolver Para tener una idea aproximada de la disposición de la tierra, bosquejar la gráfica def(x). Primero observa que
- cuandox es muy grande y negativo,f(x) es muy grande y negativo
- cuandox es muy grande y positivo,f(x) es muy grande y positivo
- cuandox=0,f(x)=f(0)=−15<0
- cuandox=1,f(x)=f(1)=11>0
- f′(x)=24x2+24x+6=24(x2+x+14)=24(x+12)2≥0para todosx. Asíf(x) aumenta monótonamente conx. La gráfica tiene una tangente de pendiente0 enx=−12 y tangentes de pendiente estrictamente positiva en todas partes.
Esto nos dice que la gráfica def(x) parece
Dado quef(x) estrictamente aumenta 1 a medida quex aumenta,f(x) puede tomar el valor cero para como máximo un valor dex.
- Desdef(0)<0 yf(1)>0 yf es continuo,f(x) debe pasar a través0 comox viaja dex=0 ax=1, por el Teorema 1.6.12 (el teorema del valor intermedio). Entoncesf(x) toma el valor cero para algunosx entre0 y A menudo1. escribiremos esto como “la raíz esx=0.5±0.5” para indicar la incertidumbre.
- Para acercarnos a la raíz, evaluamosf(x) a medio camino entre0 y1.
f(12)=8(12)3+12(12)2+6(12)−15=−8
Desdef(12)<0 yf(1)>0 yf es continuo,f(x) debe tomar el valor cero para algunosx entre12 y1. La raíz es0.75±0.25. - Para acercarnos aún más a la raíz, evaluamosf(x) a medio camino entre12 y1.
f(34)=8(34)3+12(34)2+6(34)−15=−38
Desdef(34)<0 yf(1)>0 yf es continuo,f(x) debe tomar el valor cero para algunosx entre34 y1. La raíz es0.875±0.125. - Y así sucesivamente.
La estrategia de búsqueda de raíces utilizada en el Ejemplo C.0.1 se denomina método de bisección. El método de bisección se ubicará en una raíz de la funciónf(x) siempre que
- f(x)es continuo (no esf(x) necesario tener un derivado) y
- se pueden encontrar dos númerosa1<b1 conf(a1) yf(b1) siendo de signo opuesto.
Denotar porI1 el intervalo[a1,b1]={x | a1≤x≤b1}. Una vez que haya encontrado el intervaloI1, el método de bisección genera una secuenciaI1,I2,I3,⋯ de intervalos mediante la siguiente regla.
Denote porcn=an+bn2 el punto medio del intervaloIn=[an,bn]. Sif(cn) tiene el mismo signo quef(an), entonces
In+1=[an+1,bn+1]withan+1=cn, bn+1=bn
y sif(cn) yf(an) tienen signos opuestos, entonces
In+1=[an+1,bn+1]withan+1=an, bn+1=cn
Esta regla fue elegida para quef(an) yf(bn) tengan signo opuesto para cadan. Ya quef(x) es continuo,f(x) tiene un cero en cada intervaloIn. Así cada paso reduce las barras de error por un factor de2. Eso no es tan malo, pero podemos llegar a algo que es mucho más eficientes. Sólo necesitamos un poco de cálculo.