. Supongamos que
Daremos varias interpretaciones geométricas de cómo se obtiene
a partir de
. Tomemos para ello la aplicación ejemplo
(1), que tiene por ceros las raíces terceras de
. Gráficamente, los ceros pueden localizarse mediante la intersección de las curvas de nivel
y
. La Figura 2 muestra estos detalles. Los comandos usados para estos dibujos son:
(* Definici'on de las funciones componentes *)
u[x_, y_] := x^3 - 3.*x*y^2 - 1.;
v[x_, y_] := 3.*x^2*y - y^3;
(* Dibujo de la curva de nivel u(x,y)==0 *)
CNu = ImplicitPlot[u[x, y] == 0., {x, -1.2, 1.2}, {y, -1.2, 1.2}]
(* Dibujo de la curva de nivel v(x,y)==0, punteada *)
CNv = ImplicitPlot[v[x, y] == 0., {x, -1.2, 1.2}, {y, -1.2, 1.2},
PlotStyle -> {Dashing[{0.01, 0.01}]}, PlotPoints -> 75]
(* Gr'afico de las tres ra'ices de 1 *)
punts = Show[
Graphics[Join[{PointSize[0.04]},
Table[Point[{Cos[k*2*Pi/3], Sin[k*2*Pi/3]}], {k, 0, 2}]
]
]]
(* Dibujo uni'on de los tres gr'aficos anteriores *)
Show[CNu, CNv, punts, Axes -> None, Frame -> True]
La siguiente orden nos da el punto
:
(* Siguiente iterado *)
Nf[u_, v_, x0_, y0_] := Module[{deter, ux, uy, vx, vy, uu, vv},
uu = Function[{s, t}, u /. {x -> s, y -> t}];
vv = Function[{s, t}, v /. {x -> s, y -> t}];
ux = Function[{s, t}, D[u, x] /. {x -> s, y -> t}];
uy = Function[{s, t}, D[u, y] /. {x -> s, y -> t}];
vx = Function[{s, t}, D[v, x] /. {x -> s, y -> t}];
vy = Function[{s, t}, D[v, y] /. {x -> s, y -> t}];
deter = ux[x0, y0]*vy[x0, y0] - vx[x0, y0]*uy[x0, y0];
{x0 - (vy[x0, y0]*uu[x0, y0] - uy[x0, y0]*vv[x0, y0])/deter,
y0 - (ux[x0, y0]*vv[x0, y0] - vx[x0, y0]*uu[x0, y0])/deter}
]
Las expresiones que aparecen en el código se han obtenido a partir de (1) o, equivalentemente, del sistema lineal compatible determinado con dos incógnitas
y
:
A partir de Nf[ ], que sólo nos da un iterado a partir del anterior, podemos obtener una lista de tantos iterados como queramos:
(* Lista de iterados, utiliza Nf[ ] *)
ListNf[u_, v_, x0_, y0_, N_] := Module[{llista, auxil},
llista = {{x0, y0}};
auxil = {x0, y0};
Do[auxil = Nf[u, v, auxil[[1]], auxil[[2]]];
llista = Join[llista, {auxil}], {N}];
llista
]
Finalmente, podemos dibujar estos puntos mediante la orden
(* Dibuja los iterados, utiliza ListNf[ ] *)
DibListNf[u_, v_, x0_, y0_, N_, opt___] := Module[{dib1, dib2, llista},
llista = ListNf[u, v, x0, y0, N];
dib1 = ListPlot[llista, PlotJoined -> True, DisplayFunction -> Identity];
dib2 = Show[Graphics[Map[Function[t, Disk[t, 0.03]], llista]],
DisplayFunction -> Identity];
Show[dib1, dib2, opt, DisplayFunction -> $DisplayFunction]
]
La gráfica izquierda de la Figura 3, se ha obtenido mediante
DibListNf[u[x, y], v[x, y], 0.3, 0.5, 3, AspectRatio -> 1]
La gráfica derecha de la misma figura se ha generado usando la orden Show[ ] para unir el dibujo de DibListNf[ ] con el tercer dibujo de la Figura 2.
La Figura 4 muestra cinco iteraciones de
empezando en los puntos
,
y
.