Symbolic nested summations with empty indexes

1 vue (au cours des 30 derniers jours)
Francesco Piccioli
Francesco Piccioli le 21 Jan 2021
Hello.
I have a problem using nested symbolic summations when the symbolic engine finds no valid sum indexes.
Specifically, I am trying solving the following problem:
I want to calculate a nested summation that looks something like the following:
Where .
I have defined symbolic integer variables d, T, T1, c1, c2 and a symbolic function c20(T1,c1).
Then I use the following code to calculate the sum:
S(d,T) = symsum(...
symsum(...
symsum(1,...
c2,c20(c1,T1,T),d-1),...
c1,T1,d-1),...
T1,1,T-1)
At another point in the code I assign a numeric value to T and d and try to convert everything to double:
DoubleVal = double(subs(S(Tval,dval)));
Now, for Tval = 1 the summation is supposed to be zero. However I think that the symbolic engine is trying to assign a NaN value to T1 which causes an error in the nested sum, as c1 cannot be NaN. As a result instead of getting DoubleVal = 0 I get an "inconsistent assumptions" error. The same thing happens when d is too small wrt T.
How can I force matlab to assign zero as the result of a summation in which there are no available indexes?
Thank you very much

Réponses (1)

Tushar Behera
Tushar Behera le 4 Oct 2022
Hi Francesco Piccioli,
I believe you want to implement
Where
The code written by you seems fine however I noticed that you have exchanged the positions of d” and “T” variable while calculating sum S(Tval,dval). In addition to that whenTval” is 0 the upper limit is lower than the lower limit.
Regarding the error that you are encountering, this is a known issue which was fixed in MATLAB R2021a.
From R2021a onwards, the symsum function will return 0, when lower limit is greater than the upper limit.
Thanks and regards,
Tushar Behera

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by