Write function for complicated recurrence relation.
古いコメントを表示
Hi all!
I'm trying to learn myself how to write some code in Matlab to solve some involved recurrence relations. But I'm not a great programmer and I have a very hard time to go from the simple examples (of calculating a factorial), to something more complicated.
I'm now trying to solve the equation below for a given value of n, using functions in Matlab. But to be honest, I have no clue how to make sure the correct (intermediate) values should get passed along, by calling a function. At this point I'm just very confused and didn't get any code to actually run in a way that produced any results.

I know it's quite an ask, but would be amazing if someone could show me how to solve an example like this.
Greetings,
John
4 件のコメント
John597623
2023 年 10 月 12 日
編集済み: John597623
2023 年 10 月 12 日
I'd like to help with this, but what exactly are you looking for? I don't think I understand what you're asking. Are the equations in your image seperate? This is what I have so far:
syms n k j t integer
L(k,n) = symsum(1/(factorial(j)*k^j) * 1/factorial(n-k*j),j,1,n/k)
S(k,n) = symsum(L(t,n-k*j),t,1,min(k-1,n-k*j))
L1n = L(1,n) % this doesn't simplify well
Lnn = L(n,n) % this works
John597623
2023 年 10 月 25 日
編集済み: John597623
2023 年 10 月 25 日
Computing L_2,4 with the formula given, I get
L_2,4 = 1/(1!*2^1) * 4!/2! * L_1,2 + 1/(2!*2^2) * 4!/1 * 0 = 6
But the result should be
L_2,4 = 9
So either I misunderstand your formula or there is something wrong with it.
回答 (1 件)
I modified your formula slightly, and after this modification, it seems to give correct results:
N = 14;
L = zeros(N);
L(1,1:N) = 1;
for n = 2:N
for k = 2:n-1
sum1 = 0.0;
for j = 1:floor(n/k)
sum2 = 0.0;
for t = 1:min(k-1,max(1,n-k*j))
sum2 = sum2 + L(t,max(1,n-k*j));
end
sum1 = sum1 + sum2 * factorial(n)/(factorial(j)*(k^j)*factorial(n-k*j));
end
L(k,n) = sum1;
end
L(n,n) = factorial(n-1);
end
int64(L(:,N))
int64(sum(L(:,N)))
int64(factorial(N))
カテゴリ
ヘルプ センター および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
