Error in symbolic evealuation

Error in symbolic evealuation - Сообщения

#1 Опубликовано: 08.03.2022 15:46:17
Igor Skarine

Igor Skarine

14 сообщений из 97 понравились пользователям.

Группа: User

test_Cnd.sm (7 КиБ) скачан 26 раз(а).

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 Опубликовано: 08.03.2022 21:46:24
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 сообщений из 1674 понравились пользователям.

Группа: 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 пользователям понравился этот пост
sergio 09.03.2022 05:52:00
#3 Опубликовано: 09.03.2022 11:30:07
Igor Skarine

Igor Skarine

14 сообщений из 97 понравились пользователям.

Группа: 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 Опубликовано: 09.03.2022 14:28:24
Alvaro Diaz Falconi

Alvaro Diaz Falconi

992 сообщений из 1674 понравились пользователям.

Группа: 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.
  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений