Documente Academic
Documente Profesional
Documente Cultură
Le logiciel Scilab
11 avril 2011
Claude Gomez
Directeur gnral de SCILAB ENTERPRISES
Plan
Comment calculer ?
Le calcul numrique
Le logiciel de calcul numrique Scilab
Comment calculer ?
Que vaut x ?
Exemple 1
Trois cousins ont respectivement 32 ans, 20 ans et 6 ans. Dans combien
dannes lge de lain sera-t-il gal la somme des ges des deux autres ?
32 x 20 x 6 x x 6
Exemple 2
On encadre un champ carr de 200 mtres de ct par une bande de largeur x. On
obtient un nouveau champ carr daire double du premier, dont les cts sont
parallles au premier. Calculer la largeur de la bande.
Laire de lancien champ est 40 000 m2.
Le ct du nouveau champ est 200 2x mtres.
Donc (200 2 x) 2 2 40000
En divisant par 4, cette quation quivaut (100 x) 2 2 10000
Comme 100 x 0 , la seule solution est 100 x 100 2
cest--dire x 100 ( 2 1) soit 41,421 mtres.
On a trouv une solution exacte facile calculer.
Exemple 3
Pierre et Paul ont des maisons cte cte. Entre les deux murs,
ils mettent deux chelles, lune de 3 mtres, lautre de 5 mtres.
Ils remarquent quelles se croisent 1 mtre du sol. Ils se disent
quils doivent pouvoir en dduire la distance entre les deux
maisons.
Ecrire les quations est facile :
2
2
Pythagore dans le triangle OBD : xB yB 9
2
2
Pythagore dans le triangle OAD : xB y A 25
y
Equation de la droite (OB) : y B x
xB
yA
y
x yA
Equation de la droite (AD) :
xB
On obtient le systme :
x 2 9 y 2
xB y B 9
xB 9 y B
B
B
2
2
2
xB 9 yB
2
2
2
2
xB y A 25 y A yB 16 y A yB 16 4
3
2
y
2
y
16
y
y y y y
y y y y
B
B
B 32 y B 16 0
y
A
B
A
B
A B
A B
yA B
yB 1
4
3
2
Comment rsoudre lquation yB 2 yB 16 yB 32 yB 16 0 ?
La solution est :
Le calcul donne :
yB 1,31157122 xB 2, 69810692
Exemple 4
Monsieur Seguin possde un champ circulaire de rayon gal 100
mtres. Il possde une chvre quil attache un pieu plant la
circonfrence du champ. Quelle doit tre la longueur maximale de la
corde reliant la chvre au pieu de faon que la chvre ne puisse pas
brouter plus de la moiti de la surface du champ ?
Le calcul amne rsoudre une quation du type :
sin( ) cos( )
Conclusion
Exemple 1. On a trouv une solution exacte.
Exemple 2. On a trouv une solution exacte facile calculer :
on a utilis des valeurs approches .
Exemple 3. On a trouv une solution exacte difficile calculer :
on a utilis des valeurs approches .
Exemple 4. On na pas trouv de solution exacte :
on a utilis un algorithme approch et des valeurs approches .
Le calcul numrique
bp 2 p avec bi 0 ou 1
b3 b2 b1 b0
La norme IEEE-754
Double prcision = 2 X 32 bits
s = signe
e = exposant
Nombre = ( 1) 1.m 2
s
m = mantisse
e 1023
308
308
La prcision
-->format(18); <= on affiche 18 caractres
-->1+1.E-10
ans =
1.0000000001
-->1+1.E-15
ans =
1.000000000000001
-->1+1.E-16
ans =
<= 1.E-16 est ngligeable devant 1
1
-->1+1.E-16-1
ans =
0.
<= on obtient 0 au lieu de 1.E-16
-->1/(1+1.E-15-1)
ans =
900719925474099.2
-->1/(1+1.E-16-1)
ans =
Inf
<= 1.E-16 est ngligeable devant 1, on a divis par 0
Les arrondis
Propagation derreurs
(Jean-Franois Colonna)
x 1
x a x b
je recalcule x a x b
que vaut x ?
...
que vaut x ?
je continue x a x b
Calcul en Scilab
-->b=4095.1
b =
4095.1
-->a=b+1
a =
4096.1
-->x=1
x =
1.
-->for i=1:9
--> x=a*x-b
-->end
x =
1.0000000000005
x =
1.0000000018631
x =
1.0000076314441
x =
1.0312591580864
x =
129.04063743776
x =
524468.25500881
x =
2148270324.2416
x =
8799530071030.8
x =
3.604375512D+16
On diverge trs rapidement
en faisant 9 fois le calcul
Rsultats tranges
Pythagore : le triangle de cts 1, 2 et
3 est-il rectangle ?
2 , 3 et , 8
3
Calcul en Scilab
-->a=1; b=sqrt(3); c=2;
-->a^2+b^2 == c^2
ans =
<= lgalit est fausse : le triangle nest pas
F
rectangle !
-->x1=sqrt(2); y1=3;
-->x2=4/3; y2=sqrt(8);
-->x1*y2 == y1*x2
ans =
<= lgalit est fausse : les vecteurs ne sont pas
F
colinaires !
2, 220446049 1016
a b
Le test doit donc tre relatif :
a
Avec x x si x 0 et x si x 0 (valeur absolue)
Calcul en Scilab
-->%eps
<= %eps est la plus petite erreur relative
%eps =
2.220446049D-16
-->a=1; b=sqrt(3); c=2;
-->abs((a^2+b^2-c^2)/c^2) < %eps
ans =
T
-->x1=sqrt(2); y1=3;
-->x2=4/3; y2=sqrt(8);
-->abs((x1*y2-y1*x2)/(x1*y2)) < %eps
ans =
T
4
5
, 2 et .
3
7
4
5
on prend : a 1,33 b 2 1, 41 c 0, 71
3
7
La vraie valeur est 1,34687 !!!
abc 1,331463 1,33
Quen dduire ?
La calculatrice
Avantages
Cest pas cher
Bien adapt aux programmes de lyces
Inconvnients
Cest cher
Pas toujours performant
Graphique peu lisible
Langage peu facile manipuler
Peu utilis aprs le lyce
Logiciel puissant :
Super calculateur graphique simple et rapide
Programmation facile
Contributeurs
Dveloppeurs
Testeurs
Conclusion
www.scilab.org