How to write this in matlab?

How to write this equation in matlab?
f (xn) = x(n+1) = x(n)/a for 0 ≤ x(n) ≤ a
1−x(n)/1−a a ≤ x(n) ≤ 1
Where x0 is the initial value and xn ∈ [0,1]. The control parameter a ∈ (0,1) and when a is not equal to 0.5, system enters a chaotic state.

Answers (1)

Rik
Rik on 28 Jul 2019
Edited: madhan ravi on 29 Jul 2019
Because of the recursion limit (and other factors), it is smarter to implement this in a loop, instead of a recursive function.
The code below has some assumptions about your function you should check, but it shows the general idea.
x0=0.1;
N=30;
a=0.4;
x=zeros(N,1);
x(1)=x0;
for n=1:(N-1)
if 0<=x(n) && x(n)<a
x(n+1)= x(n)/a;
else
x(n+1)= (1-x(n))/(1-a);
end
end

5 Comments

Please use tabs to maek your code more readable
for n=1:(N-1)
if 0<=x(n) && x(n)<a
x(n+1)= x(n)/a;
else
x(n+1)= (1-x(n))/(1-a);
end
end
I'm on mobile so formatting is very annoying and time consuming.
If anyone with editing privileges sees this, feel free to edit. Otherwise I might fix it in a few days.
x=zeros(N,1);??????????????????????????????
Eloquently put. What don't you understand about that line?
@Fawrad, X = zeros(sz1,...,szN) check out that link.

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Asked:

on 28 Jul 2019

Commented:

on 18 Jun 2020

Community Treasure Hunt

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

Start Hunting!