<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=FR link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'>Hello Federico<o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'>I have met few months or years ago this problem when i was developping my  « OPTSIM Solution » software to fix parameters of a PID for turbines (30 mw to 2 gw) in Nyquist and Bode Plans with hydraulic parameters site<o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'>So I’ve seen instability of the denominator, witch damage calculus.<o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'>I don ‘t remember what I’ve done to get a cool solution, but it  has been a hard and severe problem with syslin, tf2ss and ss2tf instructions <o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'>Sincerely<o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'>Pierre P.<o:p></o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:windowtext;mso-fareast-language:EN-US'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='color:windowtext'>De :</span></b><span style='color:windowtext'> users <users-bounces@lists.scilab.org> <b>De la part de</b> Federico Miyara<br><b>Envoyé :</b> mardi 17 mars 2020 10:31<br><b>À :</b> Users mailing list for Scilab <users@lists.scilab.org><br><b>Objet :</b> [Scilab-users] Strange behaviour of prod on rationals<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><br><span style='font-family:"Courier New"'>Dear all, <br><br>Look at this code (the coefficients are actually the result of pevious calculations):<br></span><br>NUM <span style='color:#5C5C5C'>=</span> <span style='color:#4A55DB'>[</span><span style='color:rosybrown'>5.858D-09</span> <span style='color:#5C5C5C'>+</span> <span style='color:rosybrown'>2.011D-08</span><span style='color:#5C5C5C'>*</span><span style='color:orchid'>%s</span> <span style='color:#5C5C5C'>+</span> <span style='color:rosybrown'>4.884D-08</span><span style='color:#5C5C5C'>*</span><span style='color:orchid'>%s</span><span style='color:#5C5C5C'>^</span><span style='color:rosybrown'>2</span> <span style='color:#FFAA00'>...</span> <br>       <span style='color:rosybrown'>5.858D-09</span> <span style='color:#5C5C5C'>+</span> <span style='color:rosybrown'>8.796D-10</span><span style='color:#5C5C5C'>*</span><span style='color:orchid'>%s</span> <span style='color:#5C5C5C'>+</span> <span style='color:rosybrown'>7.028D-10</span><span style='color:#5C5C5C'>*</span><span style='color:orchid'>%s</span><span style='color:#5C5C5C'>^</span><span style='color:rosybrown'>2</span><span style='color:#4A55DB'>]</span> <br>DEN <span style='color:#5C5C5C'>=</span> <span style='color:#4A55DB'>[</span><span style='color:rosybrown'>0.1199597</span> <span style='color:#5C5C5C'>+</span> <span style='color:rosybrown'>7.2765093</span><span style='color:#5C5C5C'>*</span><span style='color:orchid'>%s</span> <span style='color:#5C5C5C'>+</span> <span style='color:orchid'>%s</span><span style='color:#5C5C5C'>^</span><span style='color:rosybrown'>2</span> <span style='color:#FFAA00'>...</span> <br><span style='color:rosybrown'>       8.336136</span> <span style='color:#5C5C5C'>+</span>  <span style='color:rosybrown'>7.0282601</span><span style='color:#5C5C5C'>*</span><span style='color:orchid'>%s</span> <span style='color:#5C5C5C'>+</span> <span style='color:orchid'>%s</span><span style='color:#5C5C5C'>^</span><span style='color:rosybrown'>2</span><span style='color:#4A55DB'>]</span> <br>q = NUM<span style='color:#5C5C5C'>./</span>DEN<br> <br>Running it yields<br><br>   5.858D-09 +2.011D-08s +4.884D-08s²  5.858D-09 +8.796D-10s +7.028D-10s²  <br>   ----------------------------------  ----------------------------------  <br>       0.1199597 +7.2765093s +s²            8.336136 +7.0282601s +s²       <br><br>This is, correctly, a two-component rational vector with the expected numerators and denominators. <br><br>Now let's evaluate <br><br>q = <span style='color:#32B9B9'>prod</span><span style='color:#4A55DB'>(</span>NUM<span style='color:#5C5C5C'>./</span>DEN<span style='color:#4A55DB'>)</span> <br><br>The prod documantation sys that the argument may be "an array of reals, complex, booleans, polynomials or rational fractions". It should provide the rational obtained by multiplying the twonumrators and the two denominators. However, we get<br><br>   3.432D-17 +1.230D-16s +3.079D-16s² +5.709D-17s³ +3.432D-17s⁴  <br>   ------------------------------------------------------------  <br>                                1                                <br><br>The numeratoris right, but the expected denominator has been just replaced by 1<br><br>However, rewriting the command as<br><br><span style='color:#32B9B9'>prod</span><span style='color:#4A55DB'>(</span>NUM<span style='color:#4A55DB'>)</span><span style='color:#5C5C5C'>/</span><span style='color:#32B9B9'>prod</span><span style='color:#4A55DB'>(</span>DEN<span style='color:#4A55DB'>)<br><br></span>we get the expected result:<br><br>   3.432D-17 +1.230D-16s +3.079D-16s² +5.709D-17s³ +3.432D-17s⁴  <br>   ------------------------------------------------------------  <br>       1.0000004 +61.501079s +59.597296s² +14.304769s³ +s⁴       <br><br>This is quite strange!<br><br>Now we repeat with simpler polynomials:<br><br>NUM = [1-%s 2-%s]<br>DEN = [1+%s 2+%s]<br>q = NUM./DEN <br><br>We get <br><br>   1 -s  2 -s  <br>   ----  ----  <br>   1 +s  2 +s <br><br>Now evaluate<br><br>prod(NUM./DEN)<br><br>The result is the expected one!<br>              <br>   2 -3s +s²  <br>   ---------  <br>   2 +3s +s²  <br><br>The behavior seems to depend on the type of polynomials. <br><br>Is this a bug or there is something I'm not interpreting correctly?<br><br>Regards,<br><br>Federico Miyara<o:p></o:p></p></div></body></html>