<div dir="ltr">Hello Samuel,<div><br></div><div>Thanks for the solution. As pointed out it is best to show the equation being assessed (from <a href="http://www.bernoulli.org">www.bernoulli.org</a>). The one I looked at was the following:</div><div><br></div><div><img src="cid:ii_kxso5vh60" alt="Explicit_formula.PNG" width="468" height="101"><br></div><div><br></div><div>Using nchoosek in the original code gives the same issue. </div><div><br></div><div>Lester</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 29 Dec 2021 at 22:46, Samuel Gougeon <<a href="mailto:sgougeon@free.fr">sgougeon@free.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <div>Hello Lester,</div>
    <div><br>
      <br>
    </div>
    <div>Le 29/12/2021 à 09:00, Lester Anderson
      a écrit :<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">Hello,
        <div><br>
        </div>
        <div>A quick query. Have adapted existing Matlab code for Scilan
          to calculate Bernoulli numbers using an explicit formula (<a href="http://www.bernoulli.org" target="_blank">www.bernoulli.org</a>).
        </div>
      </div>
    </blockquote>
    <br>
    Not so explicit. Could you please provide the formula, before
    implementing it in Scilab language?<br>
    The following is a "vectorized" version of your code, likely with
    the same mistake:<br>
    <pre style="font-family:Monospaced;font-style:normal"><span style="color:rgb(0,0,0)">B</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">m</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">0</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(188,143,143)">20</span>
    <span style="color:rgb(0,0,0)">Sum</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">0</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">k</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(188,143,143)">0</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">m</span>
        <span style="color:rgb(0,0,0)">v</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">0</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">k</span><span style="color:rgb(0,0,0)">;</span>
        <span style="color:rgb(0,0,0)">Sum</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">Sum</span> <span style="color:rgb(92,92,92)">+</span> <span style="color:rgb(50,185,185)">sum</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(92,92,92)">-</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">.^</span><span style="color:rgb(0,0,0)">v</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">.*</span><span style="color:rgb(0,0,0)">nchoosek</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">k</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">v</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">.*</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">v</span><span style="color:rgb(92,92,92)">.^</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">/</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">k</span><span style="color:rgb(92,92,92)">+</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
    <span style="color:rgb(160,32,240)">end</span>
    <span style="color:rgb(0,0,0)">B</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(92,92,92)">+</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">Sum</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">end</span></pre>
    <p>A working implementation based on the recurrent formula
      <u></u><u></u><u></u><u></u><u></u><u></u><font face="monospace"><u></u><u></u><u></u><u></u><u></u>
                  B<u></u><u></u>m<u></u><u></u><u></u>=<u></u><u></u><u></u><u></u>−<u></u><u></u>1<u></u><u></u><u></u><u></u>m<u></u><u></u>+<u></u><u></u>1<u></u><u></u><u></u><u></u><u></u>∑<u></u><u></u><u></u>k<u></u><u></u>=<u></u><u></u>0<u></u><u></u><u></u><u></u>m<u></u><u></u>−<u></u><u></u>1<u></u><u></u><u></u><u></u><u></u>(<u></u><u></u><u></u><u></u>m<u></u><u></u>+<u></u><u></u>1<u></u><u></u><u></u>k<u></u><u></u><u></u>)<u></u><u></u><u></u><u></u>B<u></u><u></u>k<u></u><u></u><u></u><u></u><u></u></font><br>
    </p>
    <p>could be:</p>
    <pre style="font-family:Monospaced;font-style:normal"><span style="color:rgb(0,0,0)">mMax</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">20</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">B</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(50,185,185)">zeros</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">mMax</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">B</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(188,143,143)">2</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">1</span> <span style="color:rgb(92,92,92)">-</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(92,92,92)">/</span><span style="color:rgb(188,143,143)">2</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">m</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">2</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(188,143,143)">2</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">mMax</span>
    <span style="color:rgb(0,0,0)">B</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(92,92,92)">+</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(92,92,92)">-</span><span style="color:rgb(50,185,185)">sum</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">nchoosek</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(92,92,92)">+</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">0</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(92,92,92)">-</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">.*</span><span style="color:rgb(0,0,0)">B</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">/</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">m</span><span style="color:rgb(92,92,92)">+</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">end</span><font face="monospace">

--> B</font><font face="monospace">
 ans  =</font><font face="monospace">
         column 1 to 13</font><font face="monospace">
   1.  -0.5   0.1666667   0.  -0.0333333   0.   0.0238095   0.  -0.0333333   0.   0.0757576   0.  -0.2531136</font>
</pre>
    <font face="monospace"><br>
               column 14 to 21<br>
         0.   1.1666667   0.  -7.0921569   0.   54.971178   0. 
      -529.12424<br>
    </font><br>
    <p>To fasten the loop, the call to nchoosek() could be replaced with
      the 3 last rows of Pascal's triangle.<br>
      <br>
      Regards<br>
      Samuel<br>
    </p>
  </div>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@lists.scilab.org" target="_blank">users@lists.scilab.org</a><br>
<a href="http://lists.scilab.org/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.scilab.org/mailman/listinfo/users</a><br>
</blockquote></div>