How can I plot this discrete recursive function?

12 visualizaciones (últimos 30 días)
Mike AA
Mike AA el 4 de Mzo. de 2020
Comentada: Mike AA el 4 de Mzo. de 2020
I wrote a discrete recursive function to model logistic growth. The sole input argument to this function is time. If I pass a single value for time, it will plot it just fine, but if I pass an array of numbers, it will give the following error:
Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N) to change the limit. Be aware that exceeding
your available stack space can crash MATLAB and/or your computer.
Here's the function code:
function [ pop] = discrete_logistic( time )
r = 1;
K = 1000;
N0 = 0.1;
if time ==0
pop = N0;
else
pop = discrete_logistic(time-1) + r*discrete_logistic(time-1)*(1-discrete_logistic(time-1)/K);
end
And here's the script which passes time as input:
clear all;
close all;
clc;
t = [1:10];
w = discrete_logistic(t);
plot(t,w,'r*');
shg
I've tried different ways for passing time,

Respuesta aceptada

KALYAN ACHARJYA
KALYAN ACHARJYA el 4 de Mzo. de 2020
Editada: KALYAN ACHARJYA el 4 de Mzo. de 2020
function pop=discrete_logistic(time)
r = 1;
K = 1000;
N0 = 0.1;
if time==0
pop=N0;
else
pop=discrete_logistic(time-1)+r*discrete_logistic(time-1)*(1-discrete_logistic(time-1)/K);
end
Main:
t = [1:10];
for i=1:length(t)
w(i)= discrete_logistic(t(i));
end
plot(t,w,'r*');
shg
  3 comentarios
KALYAN ACHARJYA
KALYAN ACHARJYA el 4 de Mzo. de 2020
It definitely accept the array of data, but what about pop output in the function file.
Mike AA
Mike AA el 4 de Mzo. de 2020
If a function accepts an array, the output will be an array too, no? Or do I have to define the output seperately inside the function?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Graphics Object Programming en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by