X=poly(0,"X")
 
function y=f(x)
  y=1.0./(1+x.^2)
endfunction

function P=bernstein(n)
  // Cette fonction renvoi le niÃ¨me polynome de Bernstein associé à  la fonction f,
  // pour cela on construit une matrice ligne de polynomes, une matrice colonne
  // de coefficients defini avec f et enfin une matrice ligne de coefficients
  //  binomiaux. On multiplie les 3 matrices pour obtenir le polynome de Bernstein.
  pol=[]; for i=0:n, pol=[pol,X^i*(1-X)^(n-i)]; end;
  coef=[]; for i=0:n, coef=[coef;f(i/n)]; end,
  P=2^n*binomial(0.5,n).*pol*coef,
endfunction

x=[0:100]/100; y=horner(bernstein(15),x); z=f(x);
  // La fonction Horner permet d'Ã©valuer un polynome en un point c'est à  dire 
  // calculer P(x). x sont les abscisses, y leur image par le polynome de 
  // Bernstein et z leur image par f.

 clf() // permet d'effacer la page graphique de scilab
 plot2d(x,z,style=1) // style=1 permet de tracer la courbe en noir
 plot2d(x,y,style=2) // style=2 permet de tracer la courbe en bleu
