mode(7) //variante : taper exec('aide_TP1.sci',7)
//Le script aide_TP1 en mode "démonstration" permet de se
//familiariser avec les commandes simples de Scilab.
//Les commentaires écrits apres un "//" ne sont pas interprétés.F
disp('Variables :')
a=1
2+a
b=3*ans //le dernier résultat est appelé "ans" pour "answer"
1 + 2^5/4, 3e6,.. //"," sépare et ".." attend la suite
%i^2, %pi, exp(%i*%pi) //%i représente une racine carrée de -1
a=1; b=a+1; c='0*a'; //";" empêche l'affichage du résultat
a=a, b, evstr(c) //on évalue la chaîne de caractères c
x= (1>=0); y= (0~=0);
x,y
//vrai = %T et faux = %F
disp('Affichage (avec ""."" au lieu de la virgule décimale) :');
format('v',17), 1/3 //format avec (au maximum) 17-2 chiffres
format('e',11), 1/3 //notation scientifique avec 11-6 chiffres
format('v',10), 1/3 , format() //format courant et sa valeur
1+%eps==1, 1+%eps/2==1 //epsilon machine=%eps=2^(-52)
2^(-1074)
//plus petit nombre flottant > 0
(2^1023)*(2-(2^(-52))) //plus grand nombre flottant
10^1000, ans/ans //infini : %inf, not_a_number : %nanF
disp('Matrices et vecteurs :');
A=[1 2
2
3]
//variantes : A=[1 2;2 3] ou A=[1,2;2,3]
A(2,2)=1; A
B=rand(2,3) //matrice 2x3 aléatoire
u=-2:4
//":" construit un intervalle de Z
2:0.5:4
//nombres de 2 à 4 par pas de 0.5
v=[2,3,4]'
//vecteur=adjoint d'une matrice ligne
prod(1:20) //factorielle 20
p=poly([0,-2],'t'),.. //polynôme de racines 0 et -2
a=coeff(p)
//coefficients en croissant du polynôme p
roots(p),..
poly(a,'t','c') //récupération de p et de ses racines
a2=a(length(a)) //coefficient dominant de p
z=horner(p,2); //évaluation de p(2)
printf('\n p(2)=%g\n',z) //affichage ("\n" : saut de ligne)F
disp('Tests et boucles :');
clear x; for k=1:5, x(k)=k^2; end; x //"1:n" est d'accès rapide
k=0; while (k^3)<10; k=k+1; end; k //variante de "for"
n = input('nombre entier a tester ?\n'); //dialogue
if n==[] then n=%nan; r='il pair ou impair ?';..
elseif modulo(n,2)==0 then r='pair'; else r='impair'; end;
printf('\n %g est %s\n',n,r)F
disp('Graphes :');
xset("window",1), xbasc(), xset("wdim",300,300) //fenêtre 1
x=[-0.5:0.001:0.5]'; //les abscisses forment une suite de points
ieee(2), y=x.*sin(1 ./x); //ordonnées associées, 1/0 ne bloque pas
plot2d(x,y,5,'061') //graphe de x->y sur [-1/2,1/2] en rouge ("5")
xtitle('y=x*sin(1/x)','x','y'), xgrid(12); //légende et grille
xpoly([-.5 .5],[0 0],"lines") //on trace l'axe des abscissesF
disp('équations differentielles :');
xset("window",2), xbasc(), xset("wdim",300,300) //fenêtre 2
exec secondmembre_y.sci; //appel de la fonction secondmembre_y
t=0:0.05:1; //abscisses en lesquelles on évalue la solution
yplus=ode(1,0,t,secondmembre_y); //y' = y et y(0)=1, sur [0,1]
ymoins=ode(1,0,-t,secondmembre_y); //y' = y et y(0)=1, sur [-1,0]
plot2d([-t',t'],[ymoins',yplus']) //solution sur [-1,1]
xtitle('solution de y''=y et y(0)=1')F
clear //on efface les valeurs affectées aux variables
abort //on abandonne le mode "démonstration"