Symbolic nested summations with empty indexes
2 views (last 30 days)
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:
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(...
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
Tushar Behera on 4 Oct 2022
Hi Francesco Piccioli,
I believe you want to implement
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 when “Tval” 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,