Error in symbolic evealuation

Error in symbolic evealuation - Messages

#1 Posted: 3/8/2022 3:46:17 PM
Igor Skarine

Igor Skarine

14 likes in 97 posts.

Group: User

test_Cnd.sm (7 KiB) downloaded 25 time(s).

The strange problem happens during symbolic evaluation of the function
Cnd.
The expression ii=rows(t) was interpreted in a wrong way.
If I replace "ii" with number 2 the worksheet works fine.
The result of rows(t) is correct and equal to 2.
You can check the behavior changing the condition in "if" operator to 0 or 1.
#2 Posted: 3/8/2022 9:46:24 PM
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 likes in 1674 posts.

Group: User

Hi. Notice that the degree of the numerator polynomial is not always equal to the degree of the denominator polynomial. Also the number of rows in rows(tt) for tt=numden(H(z)) is always going to equal two, and is not related to the degree of none of the previous polynomials.

I think what you have to do is create separate loops for numerator and denominator, and you can get the degree of the polynomials in this way:

img.jpg


Finally, you can create the loop in the range ii..0 instead of 0..ii and thus avoid having to use reverse(), which the SMath token processor sometimes doesn't like.

Best regards.
Alvaro.
1 users liked this post
sergio 3/9/2022 5:52:00 AM
#3 Posted: 3/9/2022 11:30:07 AM
Igor Skarine

Igor Skarine

14 likes in 97 posts.

Group: User

Hi Alvaro,
The worksheet is correct, the transfer function presented is from a real working project (digital PFC controller).
If the requested coefficient doesn't exist maple(coeff()) returns 0. I think it is correct behavior.

Sorry, I posted the report in a rush, so it might need more clarification.
The problem is that variable ii has correct value =2, you can check it easily.
If you manually set the loop range [0..2] - the worksheet works, but with the loop range [0..ii] - fails.
I have no reasonable explanation rather than a bug.

#4 Posted: 3/9/2022 2:28:24 PM
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 likes in 1674 posts.

Group: User

Wrote

... The problem is that variable ii has correct value =2, you can check it easily.
If you manually set the loop range [0..2] - the worksheet works, but with the loop range [0..ii] - fails.
I have no reasonable explanation rather than a bug.



Hi. Yes, same thing here, where SMath cannot evaluate rows():

https://en.smath.com/forum/yaf_postsm69034_Modified-Nodal-Analysis.aspx#post69034

Best regards
Alvaro.
  • New Posts New Posts
  • No New Posts No New Posts