Double indexed recurrence relation

1 view (last 30 days)
Dave
Dave on 6 Nov 2015
Commented: Dave on 6 Nov 2015
I need to simulate the following (double indexed!) recurrence relation:
p[1,1]=1
for n=1,2,3,... and k=1,2,...,n+1
p[n+1,k] = p[n,k]*(1-v*k/n) + p[n,k-1]*v*(k-1)/n , with p[n,0]=p[n,n+1]=0
where v is just some constant in the interval (0,1)
For a fixed value of n, say n=20, I need to compute p[n,k] for k=1,2,...,n
Thanks, Dave
  1 Comment
Dave
Dave on 6 Nov 2015
I have looked around online, but can't find anyway to deal with the double index in matlab

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 6 Nov 2015
Edited: Guillaume on 6 Nov 2015
I may be missing something but I don't understand the difficulty. Just use two loops:
maxn = 20;
v = rand;
p = zeros(maxn);
p(1,1) = 1;
for n = 1 : maxn-1
for k = 1 : maxn
p(n+1, k) = p(n, k)*(1-v*k/n);
if k > 1 %to account for p(~, 0) which is not valid index in matlab
p(n+1, k) = p(n+1, k) + p(n, k-1)*v*(k-1)/n;
end
end
end
The rows of p are the values of n, the columns the values of k.
There may be a more efficient way of generating that matrix, without loops. I've not really looked into the details of your recurrence.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!