Trazar ecuaciones de recursión dual con wxplot2d siempre excede la pila de control.
Tengo el siguiente código de Maxima:
A[t] :=
if t = 0 then A0
else (a + b) * A[t - 1] + B[t - 1] + c
;
B[t] :=
if t = 0 then B0
else (a - b) * B[t - 1] + c
;
a: 0.1;
b: 0.1;
c: 1;
A0: 100;
B0: 0;
wxplot2d(A[t], [t, 0, 100]);
Lo único un poco extraño que se me ocurre es que la ecuación de recursión A depende de la ecuación de recursión B. Creo que todo lo demás es extremadamente básico.
Pero cuando lo ejecuto, siempre obtengo el siguiente error que se repite varias veces y no se muestra ningún gráfico.
Maxima encontró un error de Lisp:
El control de apilamiento se agotó (no hay más espacio para marcos de llamada de función).
Esto se debe probablemente a llamadas de función anidadas o recursivas infinitas, o a una llamada final que SBCL no puede o no ha optimizado.
Incluso cuando trato de hacer el gráfico desde el paso de tiempo 0 a 1 con wxplot2d(A[t], [t, 0, 1]);
, que según mi cuenta solo serían dos recurrencias y una referencia externa a la función, sigo obteniendo el mismo error. ¿No hay forma de que Maxima pueda graficar estas ecuaciones?
davy.ai
Como experto en TI especializado en Maxima, parece que el código proporcionado puede estar causando un error de desbordamiento de pila debido a llamadas de función anidadas en exceso o recursivas infinitas. La ecuación de recursión A depende de la ecuación de recursión B, lo cual podría contribuir a este problema.
Una posible solución podría ser optimizar las llamadas de cola en el código o reducir el número de llamadas recursivas a funciones. Además, puede ser útil verificar los valores de entrada y asegurarse de que estén dentro de los rangos esperados.
En cuanto al problema con la representación gráfica, puede ser útil verificar si hay suficiente espacio de memoria disponible para asignar a la función de representación gráfica. También podría ser útil probar funciones más simples para determinar si el problema está en el código o en la función de representación gráfica en sí.