Hello Samuel,

Thanks for the solution. As pointed out it is best to show the equation
being assessed (from www.bernoulli.org). The one I looked at was the
following:

[image: Explicit_formula.PNG]

Using nchoosek in the original code gives the same issue.

Lester

On Wed, 29 Dec 2021 at 22:46, Samuel Gougeon <sgoug...@free.fr> wrote:

> Hello Lester,
>
>
> Le 29/12/2021 à 09:00, Lester Anderson a écrit :
>
> Hello,
>
> A quick query. Have adapted existing Matlab code for Scilan to calculate
> Bernoulli numbers using an explicit formula (www.bernoulli.org).
>
>
> Not so explicit. Could you please provide the formula, before implementing
> it in Scilab language?
> The following is a "vectorized" version of your code, likely with the same
> mistake:
>
> B=[];for m = 0:20
>     Sum = 0;
>     for k=0:m
>         v = 0:k;
>         Sum = Sum + sum(((-1).^v).*nchoosek(k,v).*(v.^m)/(k+1));
>     end
>     B(m+1) = Sum;end
>
> A working implementation based on the recurrent formula Bm=−1m+1∑k=0m−1(m+
> 1k)Bk
>
> could be:
>
> mMax = 20;B = zeros(1,mMax);B(1:2) = [1 -1/2];for m = 2:2:mMax
>     B(1,m+1) = -sum(nchoosek(m+1,0:m-1).*B(1,1:m))/(m+1);end
>
> --> B
>  ans  =
>          column 1 to 13
>    1.  -0.5   0.1666667   0.  -0.0333333   0.   0.0238095   0.  -0.0333333   
> 0.   0.0757576   0.  -0.2531136
>
>
>          column 14 to 21
>    0.   1.1666667   0.  -7.0921569   0.   54.971178   0.  -529.12424
>
> To fasten the loop, the call to nchoosek() could be replaced with the 3
> last rows of Pascal's triangle.
>
> Regards
> Samuel
> _______________________________________________
> users mailing list
> users@lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
>
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to