Você está na página 1de 2

Universit Pierre et Marie Curie Licence 2

EXERCICE 1 Lexercice 1 permet de dcouvrir la premire utilisation possible de Scilab, en tant que calculatrice scientifique. Tapez et excutez les lignes de script suivantes : a=5+6 disp(a) quoi sert disp ? sqrt(12) a=(1+%i)^3 disp(a) a=[1,2,3], b=[1 2 3] disp(a) disp(b) cos(a) c=[-1;2;1;-3] vous avez compris ce que fait sqrt ? vous avez compris ce que reprsente %i ? A quoi sert le symbole : ^ ? que sont a et b ?

TP n1

LP217

INITIATION A SCILAB
1 Brve prsentation du logiciel
Lobjectif de ce module est dacqurir en 10 sances de 2h les bases dun logiciel de calcul scientifique, en loccurrence Scilab. De tels logiciels (Scilab, Matlab, etc) sont utiliss en particulier par les ingnieurs pour rsoudre numriquement de nombreux problmes mathmatiques comme la rsolution dquations diffrentielles ou aux drives partielles, la rsolution de systmes linaires, la recherche de valeurs propres de matrices, la rsolution dquations non linaires, etc... Contrairement Matlab, Scilab a le bon got dtre un logiciel gratuit (freeware). Dvelopp par lINRIA, il est tlchargeable sur le web ladresse http://www.scilab.org. Vous pouvez donc linstaller chez vous gratuitement pour prparer vos TP et faire des rvisions. Il utilise un langage propre, proche dans sa structure des langages informatiques courants (Fortran, C, Pascal,). Les principaux avantages par rapport ces langages est quil ne ncessite pas dtape de compilation mais aussi quil possde un grand nombre de fonctions prprogrammes ainsi que des outils de reprsentation graphique.

notez la diffrence entre ; et ,

A=[1,-1,3,4;-1,2,7,8;0,2,-4,-2] d=exp(A) e=A*c notez que cette opration est effectivement autorise par les dimensions de A et c

2 Premire utilisation de Scilab

EXERCICE 2 Ecrivez et excutez le script suivant

Le pas pas pour utiliser Scilab sera le suivant : -Crez-vous un rpertoire o vous rangerez tous vos scripts -Lancez la console Scilab -Changez le rpertoire courant pour vous placer dans votre rpertoire (vous devez faire ceci systmatiquement) (Fichier > Changer le rpertoire courant) -Ouvrez lditeur de texte Scipad. (Applications > Editeur) et sauvez votre script. Vous pouvez choisir vous-mme les noms de vos scripts Scilab, mais ils ne doivent pas comporter despaces, daccents, doprateurs mathmatiques (+ - / *), ou de signes spciaux ( : ! ; , etc). Par contre le underscore _ est autoris. Dans tous les cas, vous noublierez pas de prciser lextension qui est *.sci (ou bien *.sce). - crivez vos lignes de script. Les lignes commenant par // sont des commentaires, donc ne seront pas pris en compte par Scilab - slectionnez les lignes de script que vous souhaitez excuter et faites Excuter>Evaluer la Selection dans Scipad. Les lignes de script slectionnes sont excutes dans la console.

A=rand(4,4); b=ones(4,1); x=inv(A)*b; s=A*x-b; disp(s) Comprendre la signification des fonctions rand() et ones() issues de la bibliothque Scilab . Excuter le script. Commenter les rsultats obtenus. Comparez la valeur de s celle attendue. Observez-vous une diffrence et pourquoi ? Il est galement possible de construire avec Scilab de nouvelles fonctions mathmatiques, en complment de celles existantes (comme inv(A) par exemple pour calculer linverse dune matrice). Ces fonctions peuvent prendre divers types darguments (scalaire, matrice, etc) et peuvent raliser des oprations mathmatiques plus ou moins complexes. Lexercice 3 propose un premier exemple dcriture et de chargement dune fonction.

Les TP sont librement inspirs de LM206 : http://www.ann.jussieu.fr/~dumas/lm206.html

EXERCICE 3 UTILISATION DUNE FONCTION 1) ouvrir lditeur Scipad et recopiez ce script : n=8 ; c=1 ; for i=1:n c=c*i; end disp(c) Que calculent ces quelques lignes de programme ? Est-ce important dinitialiser c la valeur 1 ? 2) Modifiez votre script pour englober ces quelques lignes dans une fonction quon dcide dappeler toto, qui prend comme argument n, et qui renvoie la valeur de c : function c=toto(n) c=1; for i=1:n c=c*i; end endfunction Testez la fonction toto avec diffrentes valeurs en entre. Quelle fonction bien connue reconnat-on ? 3) On veut sassurer que le nombre n en argument est un entier positif. Pour cela, vous allez modifier la fonction toto prcdente, de telle sorte que si n est ngatif ou n nest pas entier, la fonction toto renvoie la valeur 0, et sinon, toto renvoie la valeur calcule de c. Vous aurez sans doute besoin de regarder la syntaxe des boucles if dans laide. Dautre part, le ou logique scrit | (Alt Gr+6) et le diffrent de scrit <> . Un test pour voir si un nombre n est un entier est de regarder si ce nombre est gal ou non sa partie entire int(n). 4) Ecrivez un script faisant la mme chose que prcdemment mais avec une boucle while

EXERCICE 4 Ecrire une fonction qui lve au carr le nombre x dsir (y=f(x)=x2) 1) avec function comme vu lexo 3 2) avec deff dont vous chercherez la syntaxe dans laide EXERCICE 5 On veut crire de plusieurs manires un script qui calcule la somme des n premiers entiers: 1 + 2 + 3 + 4 + .. + n 1) Ecrire un script qui permet le calcul de la somme laide dune boucle for 2) Mme question avec une boucle while. 3) Ecrire une fonction sommetheorique qui renvoie la somme des n premiers entiers avec la formule mathmatique n*(n+1)/2

Aide en ligne et dmos Scilab


La premire prise en main du logiciel passe aussi par la dcouverte de l'aide en ligne dont le recours sera ensuite constant. Cette aide, entirement en anglais, est accessible partir de loption Help du menu. Elle se prsente sous la forme dune liste de fichiers daide pour chaque instruction disponible sous Scilab. Il est possible d'accder directement l'aide en tapant par exemple help rand sur la ligne de commande pour accder laide concernant la fonction rand. EXERCICE 5 Trouver avec l'aide en ligne, la fonction Scilab qui permet de construire une matrice identit de taille donne ainsi que celle qui permet de construire une matrice diagonale quelconque.

Você também pode gostar