Double indexed recurrence relation
1 view (last 30 days)
Show older comments
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
Accepted Answer
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)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!