Sunteți pe pagina 1din 35

Calcul numrique en mathmatiques

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 ?

En mathmatiques on cherche des


solutions
On a : f ( x) 0

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

On a trouv une solution exacte.

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

Les deux droites se coupent en un point dordonne 1 :


y
y
x
y x
1 B xC A xC y A xC B 1 A B y A
xB
xB
yB
xB y B

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

On a trouv une solution exacte difficile calculer.

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( )

Comment faire ???????

On ne trouve pas de solution exacte.


Pour les curieux : si le champ fait 100 mtres, la corde doit faire 115,873 mtres

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 .

Mais alors, tous mes calculs sont faux ?


Quest-ce quune valeur approche ?

Le calcul numrique

Faire des calculs rapides

Utiliser des mots machine de 64 bits


Comment reprsenter les nombres dans ces mots
machine ?
On a une infinit de nombres
Mais on a un nombre fini de reprsentations : 264
Que faire ?

Reprsenter des nombres entiers


On utilise la reprsentation binaire :
si n b0 20 b1 21 b2 22 b3 23

bp 2 p avec bi 0 ou 1

sa reprsentation binaire est : bp

b3 b2 b1 b0

Par exemple : 13=8+4+1=23+22+20 soit 1101

Problme : on ne peut reprsenter que les entiers de 0 264

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

Valeur absolue min = 2,225... 10

308

Valeur absolue max = 1,797... 10

Erreur relative = 2,220446049 1016


soit 16 chiffres maximum de prcision

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

Par exemple, arrondi avec 4 chiffres aprs la virgule de 3,14159


Par dfaut : 3,1415
Par excs : 3,1416
Au plus proche : 3,1416

Erreurs darrondis + propagation des erreurs

Propagation derreurs
(Jean-Franois Colonna)

Un simple calcul : b 4095,1 a b 1


que vaut x ?

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 ?

Gomtrie : les vecteurs de coordonnes


sont-ils colinaires ?

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 !

Le test ne marche pas !

Prcision de 16 chiffres avec une erreur relative de

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

Le test marche nouveau !

Et les valeurs approches 10-n prs ?


Valeur approche 102 prs du volume dun pav droit de cts

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

Pourcentage daugmentation 102 prs entre 53 et 56


56
1, 06
on prend :
53
et donc : (1, 06 1) 100 6% !!!

au lieu de 5, 66% !!!

Quen dduire ?

Le calcul numrique est incontournable

Mais il faut faire attention

Le logiciel de calcul numrique Scilab

Comment faire du calcul numrique ?


La calculatrice
Le tableur

Mieux : les logiciels de calcul numrique !

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

Tout le calcul numrique fait avec une calculatrice


peut tre fait en mieux avec Scilab

Le tableur : Excel ou Calc


Un tableur doit tre utilis comme un tableur :
Pour voir des valeurs voluer en fonction de paramtres
Pour grer une petite base de donnes

Un tableur nest pas fait pour faire :


Du calcul numrique
De la programmation => pas de vrai langage

Tout le calcul numrique fait avec un tableur peut tre


fait en mieux avec Scilab

Pourquoi utiliser Scilab ?


Logiciel gratuit : peut tre utilis partout
Par les lves au lyce et la maison

Logiciel puissant :
Super calculateur graphique simple et rapide
Programmation facile

Logiciel utilis dans la vie professionnelle


luniversit et dans les coles dingnieurs, dans la
recherche, dans les entreprises

Scilab est un logiciel libre :


soutien de la communaut des utilisateurs

Contributeurs
Dveloppeurs

Testeurs

Un exemple de simulation avec Scilab


Lancer de ds
-->f=frequence_tirage_entier(100000,1,6)
f =
0.16534 0.16545 0.16816 0.16563 <= frquence de 100 000 tirages de ds
0.16693 0.16849
Il faut faire 1 000 000 de tirages pour avoir un rsultat presque quiprobable (temps
de calcul < 1 s) :
-->f=frequence_tirage_entier(1000000,1,6)
f =
0.166916 0.166854 0.166328 0.166503
0.167173 0.166226
-->bar(f)

<= trac du diagramme en barres

Conclusion

Utilisez le calcul numrique


mme si les calculs sont approchs.
Et si vous faites du calcul numrique

www.scilab.org

S-ar putea să vă placă și