How can I plot this discrete recursive function?

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

Mike AA
Mike AA el 4 de Mzo. de 2020
Editada: Mike AA el 4 de Mzo. de 2020
Could you kindly explain why the code doesn't work as is? Why doesn't the function acccept an array as input?
Also, setting tf = 14 and beyond, it takes considerably long to finish the run, is this normal?
Thank you.
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

Preguntada:

el 4 de Mzo. de 2020

Comentada:

el 4 de Mzo. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by