Métodos numéricos aplicados a Ingeniería. Héctor Jorquera González
función de actualización
% x1: estimador inicial de la solución (o raíz)
% tol: tolerancia en el error relativo de la raíz; defecto: tol = 1e-5
% maxit: máximo número de iteraciones permitidas; defecto: maxit = 100
% variables de salida:
% raíz: solución de la ecuación original
% err: error relativo estimado para la raíz
% nit: número de iteraciones funcionales realizadas
if nargin<4,
maxit=100;
end
if nargin<3,
tol=1e-5;
end
if nargin<2,
error(‘no se puede calcular nada’);
end
xr=x1;
iter=1;
while (1)
xrold=xr;
xr=fun(xrold);
if xr~=0,
ea=abs((xrold-xr)/xr);
end
iter=iter+1;
if ea<tol || iter>maxit,
break;
end
end
raíz=xr;
err=ea;
nit=iter;
Definición: Una función φ: R → R es contracción en un conjunto D ∈ R si existe una constante 0 < L < 1 tal que:
Gráficamente, esto significa que un intervalo dado del dominio D se transforma, mediante la aplicación de φ, en un subconjunto de D. Veamos esto en el siguiente ejemplo.
Ejemplo 2.2. Convergencia del método del punto fijo
Volvamos a considerar φ1(x) = (x3-6)/7 en torno al origen x = 0. Gráficamente, empleando la función fplot, podemos apreciar que el intervalo [0,2] se transforma en el intervalo [-6/7, 2/7], el que claramente no es subconjunto de [0,2], por lo cual φ1 no es una contracción allí. Sin embargo, también es posible apreciar gráficamente que
x ∈ [-2, 0] → φ1(x) ∈ [-2, -6/7], ∴ φ1(x) es contracción en D ≡ [-2, 0]
FIGURA 2.2. Función de actualización φ1(x) para el ejemplo 2.2
% figura 2.2
f1=@(x) x;
f2=@(x) (x^3-6)/7;
fplot(f1,[-2 2],’-k’);
ylim([-2 2]);
axis equal;
hold on
fplot(f2,[-2 2],’k.’);
xlabel(‘x’);
ylabel(‘y’);
legend(‘y=x’,’y=\phi_1(x)’);
Hay que hacer notar que el concepto de contracción está íntimamente asociado al dominio de la función φ1, y este dominio se supone que contiene la solución buscada de antemano, por lo que nuestra intuición física nos puede dar alguna estimación de cuál debería ser este intervalo, de manera de poder aplicar la definición.
A continuación estableceremos el resultado matemático fundamental en que se basa este método iterativo.
2.2 Teorema de la función contractante (o del punto fijo)
Sea φ una función continua φ: R → R y sea D ∈ R tal que: x∈ D → φ (x) ∈ D. Supongamos además que existe una constante L (0 < L < 1)
tal que
Luego, para todo x(1) ∈ D, la secuencia 2.2 converge a un único punto fijo x* ∈ D.
Gráficamente, la secuencia de iteraciones 2.2 hace que la distancia entre un estimador x(k) y la solución x* sea cada vez más pequeña, hasta que tiende a cero, debido a que la constante de Lipschitz L es menor que 1.0. No obstante, para que haya convergencia, se deben cumplir todas las condiciones del teorema anterior, las que se pueden verificar fácilmente empleando la derivada de φ(x) como se ve en el siguiente ejemplo.
Ejemplo 2.3. Verificación de convergencia del método del punto fijo
Consideremos f(x) = x3 - 7x - 6 = 0 y φ1(x) = (x3 - 6)/7 para hallar la raíz x* = -1
a) Por el ejemplo previo, sabemos que φ1 es una contracción en D = [-2,0] y x* ∈ D.
b) A través del teorema del valor medio se tiene:
Por lo que tenemos que L ≡ máx.{ξ ∈ Δ} | φ1’(ξ) |
La condición de contracción se cumple si consideramos la intersección de ambos intervalos, luego la región de convergencia es: [-√7/3, 0]; como esta región contiene x* = -1, la iteración de punto fijo con φ1(x) convergerá a x* = -1, para cualquier valor inicial x(1) ∈ [-√7/3, 0].
Verificar esto utilizando la función punto_fijo presentada en el ejemplo 2.1. Adviértase que φ1(x) no es capaz de calcular la raíz x* = -2. ¿Por qué?
2.2.1 Representación gráfica de la iteración de punto fijo
Para el caso de una ecuación escalar, el comportamiento de la iteración x(k+1) = φ(x(k)) se puede representar como una trayectoria que une los gráficos de y = φ(x) e y = x, como se aprecia en la siguiente figura. Es posible notar que la magnitud y signo de la derivada φ’(x) determinan el éxito o fracaso de la iteración de punto fijo.
FIGURA 2.3. Resultados posibles para una iteración de punto fijo
2.3 Métodos de interpolación
La idea consiste en que la función f(x) = 0 se puede expandir en torno a x = x1 mediante serie de Taylor; se trunca la serie y a esta aproximación a f(x) se le busca(n) el(los) cero(s).
2.3.1 Interpolación lineal (método de Newton)
Expandimos f(x) en torno a x = x(k); llamando P(x) a la aproximación lineal:
Y la nueva aproximación x(k+1) es la raíz de P(x) = 0:
Ejemplo 2.4. Visualización de convergencia del método de Newton
El método de Newton corresponde a una secuencia de interpolaciones lineales, tal como se ilustra en la siguiente figura para el caso de f(x) =