Initiation à Scilab. Yassine Ariba. Y. Ariba - Icam, Toulouse. Initiation à Scilab 1 / 53

Documents pareils
Calcul Formel et Numérique, Partie I

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Calcul Formel et Numérique, Partie I


Cours 7 : Utilisation de modules sous python

Introduction à MATLAB R

TP 1 Introduction à Matlab Février 2009

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Corrigé des TD 1 à 5

Aide - mémoire gnuplot 4.0

TP 0 : INTRODUCTION À MATLAB

Petit Guide de Survie en Scilab

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Simulation de variables aléatoires

Quelques commandes de base en SCILAB

Python - introduction à la programmation et calcul scientifique

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

STAGE IREM 0- Premiers pas en Python

Cours d algorithmique pour la classe de 2nde

Cours d Analyse. Fonctions de plusieurs variables

Calcul intégral élémentaire en plusieurs variables

Plan du cours Cours théoriques. 29 septembre 2014

Les travaux doivent être remis sous forme papier.

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Scilab pour les vrais débutants

Cours Informatique Master STEP

= constante et cette constante est a.

1. Structure d'un programme FORTRAN 95

L ALGORITHMIQUE. Algorithme

Notes introductives à Matlab

Séance 0 : Linux + Octave : le compromis idéal

Logiciel. Table de matières I Environnement requis...2

Mathématiques I Section Architecture, EPFL

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Présentation du langage et premières fonctions

INF 321 : mémento de la syntaxe de Java

Capes Première épreuve

Fonctions de deux variables. Mai 2011

Premiers pas avec Mathematica

Exercice 1 Trouver l équation du plan tangent pour chaque surface ci-dessous, au point (x 0,y 0,z 0 ) donné :

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

TD1 Signaux, énergie et puissance, signaux aléatoires

Fonctions de plusieurs variables

Quelques contrôle de Première S

Qualité du logiciel: Méthodes de test

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Découverte du tableur CellSheet

Image d un intervalle par une fonction continue

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Automatique des systèmes linéaires continus

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Calcul Scientifique et Symbolique, Logiciels Licence Mathématiques UE N1MA3003. Alain Yger

MANUEL. Départements GEI & Mécanique. Yassine Ariba - Jérome Cadieux. Version 0.1

TP 1. Prise en main du langage Python

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Chapitre 2. Matrices

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Fonctions de plusieurs variables et applications pour l ingénieur

Initiation à l algorithmique

Nathalie Barbary SANSTABOO. Excel expert. Fonctions, simulations, Groupe Eyrolles, 2011, ISBN :

Initiation à la programmation OEF pour Wims (exercices).

Introduction à MATLAB Simulink Control toolbox

Algorithmique et Programmation, IMA

Note de cours. Introduction à Excel 2007

Chapitre 2 Le problème de l unicité des solutions

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Représentation géométrique d un nombre complexe

Correction de l examen de la première session

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

3 Approximation de solutions d équations

CONFIGURATION DE L AUTOMATE SIEMENS

Découverte de Python

Université Paris-Dauphine DUMI2E 1ère année, Applications

Optimisation, traitement d image et éclipse de Soleil

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

DOCM Solutions officielles = n 2 10.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Activités numériques [13 Points]

3.2. Matlab/Simulink Généralités

Algorithmes pour la planification de mouvements en robotique non-holonome

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Chapitre 4: Dérivée d'une fonction et règles de calcul

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

INTRODUCTION. Introduction (2) Espace de travail. Fonctionnement. le Workspace (1) Mode interactif : Mode programme : Type de variables :

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.

Initiation à la programmation en Python

Développements limités. Notion de développement limité

Les algorithmes de base du graphisme

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Transcription:

Initiation à Scilab Yassine Ariba Y. Ariba - Icam, Toulouse. Initiation à Scilab 1 / 53

Sommaire 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 2 / 53

Sommaire Introduction 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 3 / 53

Introduction Qu est ce que Scilab? Qu est ce que Scilab? Scilab est la contraction de Scientific Laboratory. Scilab est : un logiciel de calcul numérique, un langage de programmation interprété, utilisé pour toutes les applications scientifiques et l ingénierie, multi-plateforme : Windows, MacOS et Linux, Conçu initialement par l Inria à partir des années 80, le logiciel est maintenant développé par la société française Scilab Entreprises Plus d infos : www.scilab.org Y. Ariba - Icam, Toulouse. Initiation à Scilab 4 / 53

Introduction Qu est ce que Scilab? Principales fonctionnalités de Scilab : Mathématiques et simulation Visualisation 2D et 3D Optimisation Statistiques Automatique Traitement du signal Développement d applications Plus d infos : www.scilab.org Y. Ariba - Icam, Toulouse. Initiation à Scilab 5 / 53

Introduction Licence Licence Scilab est un logiciel open source. Il est régi par la licence CeCILL 1 (compatible GPL). Il est une alternative gratuite à Matlab R 2. Le logiciel, ainsi que les sources, sont téléchargeables à l adresse : http://www.scilab.org/download/ La version de Scilab utilisée dans cette initiation est la version 5.4.0 1. Plus d infos : http://www.cecill.info 2. Matlab est une marque déposée par la société The MathWorks, Inc. Y. Ariba - Icam, Toulouse. Initiation à Scilab 6 / 53

Introduction Getting started Getting started Scilab s utilise interactivement en tapant des commandes dans la console. Les instructions doivent être entrées sur l invite --> puis lancées en tapant la touche entrée. Scilab exécute les calculs correspondants, et renvoie sa réponse dans la console ou une nouvelle fenêtre. Y. Ariba - Icam, Toulouse. Initiation à Scilab 7 / 53

Introduction Getting started Premier exemple introductif : --> A = 2; --> t = [0:0.01:10]; --> y = A* sin (3* t); --> plot (t,y); Ligne 1 : affectation de la valeur 2 à la variable A. Ligne 2 : définition d un vecteur t dont les composantes vont de 0 à 10 par pas de 0.01. Ligne 3 : calcul d un vecteur y à partir d opérations mathématiques. Ligne 4 : tracé de y par rapport à t sur un graphique 2D. Notons que le ; spécifie à Scilab de ne pas afficher sa réponse. Y. Ariba - Icam, Toulouse. Initiation à Scilab 8 / 53

Introduction Getting started Premier exemple introductif : --> A = 2; --> t = [0:0.01:10]; --> y = A* sin (3* t); --> plot (t,y); Y. Ariba - Icam, Toulouse. Initiation à Scilab 8 / 53

Introduction Getting started Second exemple introductif : Soit le système d équations linéaires suivant 2x 1 + x 2 = 5 4x 1 3x 2 + 2x 3 = 0 x 1 + 2x 2 x 3 = 1 ou encore 2 1 0 x 1 5 4 3 2 x 2 = 0 1 2 1 x 3 1 Résolution du système à l aide de Scilab --> A = [2 1 0 ; 4-3 2 ; 1 2-1]; --> b = [ -5;0;1]; --> x = inv (A)*b x = 1.75-8.5-16.25 Y. Ariba - Icam, Toulouse. Initiation à Scilab 9 / 53

Introduction Getting started Scilab propose en fait un environnement intégrant divers fenêtres pour une interface conviviale. La console (interface de commande avec Scilab) Historique des commandes (mémorise les commandes passées) Navigateur de fichiers (explorateur pour ouvrir des fichiers) Navigateur de variables (variables actuellement définies dans Scilab)... Y. Ariba - Icam, Toulouse. Initiation à Scilab 10 / 53

Sommaire Éléments de base 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 11 / 53

Éléments de base Opérations et fonctions élémentaires Opérations et fonctions élémentaires Dans son utilisation la plus simple, Scilab est une super-calculatrice : --> (1+3)*0.1 0.4 --> 4^2/2 8. --> 2*(1+2* %i) 2. + 4.i --> %i ^2-1. --> cos (3)^2 + sin (3)^2 1. --> exp (5) 148.41316 --> abs (1+ %i) 1.4142136 Y. Ariba - Icam, Toulouse. Initiation à Scilab 12 / 53

Éléments de base Opérations et fonctions élémentaires Opérations élémentaires Quelques fonctions élémentaires + addition - soustraction * multiplication / division à droite \ division à gauche ˆ puissance sin cos tan cotg asin acos atan sec sinh cosh tanh csc abs real imag conj exp log log10 log2 sign modulo sqrt lcm round floor ceil gcd --> conj (3+2* %i) 3. - 2.i --> log10 (10^4) 4. Y. Ariba - Icam, Toulouse. Initiation à Scilab 13 / 53

Éléments de base Opérations et fonctions élémentaires Opérations booléennes La valeur booléenne vraie s écrit : %T. La valeur booléenne fausse s écrit : %F. & et logique ou logique non logique == égal = ou <> différent < (<=) inférieur (ou égal) > (>=) supérieur (ou égal) --> %T & %F F --> 2 == 2 T --> 2 < 3 T Y. Ariba - Icam, Toulouse. Initiation à Scilab 14 / 53

Éléments de base Variables Variables Une variable est définie par un opérateur d affectation : = --> a = 2.5; --> b = 3; --> c = a*b c = 7.5 --> c+d!-- error 4 Variable non définie : d Un nom de variable peut être composé de lettres a z, A Z, de chiffres 0 9 et des caractères %,,!, #,?, $. Scilab est sensible à la casse. Ne pas confondre l affectation = avec l égalité mathématique. La déclaration de variable est implicite (quelque soit le type). Y. Ariba - Icam, Toulouse. Initiation à Scilab 15 / 53

Éléments de base Variables Variables mathématiques pré-définies %i le nombre imaginaire i = 1 %e la constante d Euler e %pi le nombre π %inf l infini %t ou %T valeurs booléennes vraies %f ou %F valeurs booléennes fausses --> cos (2* %pi ) 1. --> %i ^2-1. Y. Ariba - Icam, Toulouse. Initiation à Scilab 16 / 53

Sommaire Matrices 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 17 / 53

Matrices Définition et manipulation de vecteurs Définition et manipulation de vecteurs Un vecteur est défini par une succession de nombre entre crochets --> u = [0 1 2 3] u = 0. 1. 2. 3. Génération automatique --> v = [0:0.2:1] v = 0. 0.2 0.4 0.6 0.8 1. Syntaxe : debut:pas:fin Les fonctions mathématiques sont applicables et sont opérées sur chaque élément --> cos (v) 1. 0.980 0.921 0.825 0.696 0.540 Y. Ariba - Icam, Toulouse. Initiation à Scilab 18 / 53

Matrices Définition et manipulation de vecteurs On peut aussi définir des vecteurs colonnes --> u = [1;2;3] u = 1. 2. 3. Quelques fonctions utiles : length max min mean sum prod renvoie la taille du vecteur renvoie la valeur maximale renvoie la valeur minimale renvoie la valeur moyenne calcul la somme des éléments calcul la produit des éléments --> length (v) 6. --> mean (v) 0.5 Y. Ariba - Icam, Toulouse. Initiation à Scilab 19 / 53

Matrices Définition et manipulation de matrices Définition et manipulation de matrices Les matrices sont définies ligne par ligne avec le séparateur ; --> A = [1 2 3 ; 4 5 6 ; 7 8 9] A = 1. 2. 3. 4. 5. 6. 7. 8. 9. Matrices particulières : zeros(n,m) matrices de taille n m de zéros ones(n,m) matrices de uns eye(n,n) matrice identité rand(n,m) matrice aléatoire (valeurs [0, 1]) Y. Ariba - Icam, Toulouse. Initiation à Scilab 20 / 53

Matrices Définition et manipulation de matrices Accès aux éléments de la matrice : A(sélection ligne(s),sélection colonne(s)) --> A (2,3) 6. --> A (2,:) 4. 5. 6. --> A (:,[1 3]) 1. 3. 4. 6. 7. 9. cas particulier pour les vecteurs : 1 seul argument v(3) (ce qui donne 0.4) Les éléments peuvent être directement modifiés --> A (2,3) = 0; --> A A = 1. 2. 3. 4. 5. 0. 7. 8. 9. Y. Ariba - Icam, Toulouse. Initiation à Scilab 21 / 53

Matrices Définition et manipulation de matrices Quelques fonctions utiles : size det inv rank diag triu tril spec renvoie les dimensions d une matrice renvoie le déterminant d une matrice calcul la matrice inverse renvoie le rang d une matrice extrait la diagonale d une matrice extrait la matrice-triangle supérieure extrait la matrice-triangle inférieure renvoie les valeurs propres d une matrice --> B = [1 0 ; 2 2]; --> det (B) 2. --> inv (B) 1. 0. - 1. 0.5 --> triu (A) 1. 2. 3. 0. 5. 6. 0. 0. 9. Y. Ariba - Icam, Toulouse. Initiation à Scilab 22 / 53

Matrices Opérations matricielles Opérations matricielles Les opérations de base +, -, *, /, ˆ sont directement applicables Attention à la compatibilité des dimensions des opérandes. Opérateur transposé :., opérateur transposé et conjugué : --> C = [ 1 0 ; 3 1 ; 0 2]; --> D = [1 1 ; 4 0]; --> B + D 2. 1. 6. 2. --> B * inv (B) 1. 0. 0. 1. --> A * C 7. 8. 19. 17. 31. 26. --> A + B!-- error 8 Addition incohérente. Y. Ariba - Icam, Toulouse. Initiation à Scilab 23 / 53

Matrices Opérations matricielles Les fonctions élémentaires sont appliquées à chaque élément --> M = [0 %pi /2 ; -%pi /2 %pi ]; --> sin (M) 0. 1. - 1. 1.225D -16 --> t = [0:0.2:1]; --> exp (t) 1. 1.2214 1.4918 1.8221 2.2255 2.7182 Il existe des versions spécifiques de certaines fonctions pour le calcul matriciel expm logm sqrtm sinm cosm ˆ Y. Ariba - Icam, Toulouse. Initiation à Scilab 24 / 53

Matrices Opérations matricielles Opérations éléments par éléments.*./.ˆ --> A = [0 4 ; 1 2]; --> B = [1 2 ; 5-3]; --> A * B 20. - 12. 11. - 4. --> A.* B 0. 8. 5. - 6. --> A.^2 0. 16. 1. 4. --> exp (t )./( t +1) 1. 1.0178 1.0655 1.1388 1.2364 1.3591 Y. Ariba - Icam, Toulouse. Initiation à Scilab 25 / 53

Sommaire Représentation graphique 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 26 / 53

Représentation graphique Les graphes 2D Les graphes 2D Le tracé d une courbe dans un plan x-y se base sur : plot --> x = [0:0.1:2* %pi ]; --> y = cos (x); --> plot (x,y, * ) Y. Ariba - Icam, Toulouse. Initiation à Scilab 27 / 53

Représentation graphique Les graphes 2D Les graphes 2D Le tracé d une courbe dans un plan x-y se base sur : plot --> x = [0:0.1:2* %pi ]; --> y = cos (x); --> plot (x,y, * ) plot trace un point pour chaque couple x(i)-y(i). x et y doivent être de même taille. Par défaut, une ligne est tracée entre chaque point. Le 3 ième argument défini le style de la courbe. Y. Ariba - Icam, Toulouse. Initiation à Scilab 27 / 53

Représentation graphique Les graphes 2D --> x = [0:0.1:2* %pi ]; --> y2 = cos (2* x); --> y3 = cos (4* x); --> y4 = cos (6* x); --> plot (x,y1 ); --> plot (x,y2, r ); --> plot (x,y3, k: ); --> plot (x,y4, g-- ); Y. Ariba - Icam, Toulouse. Initiation à Scilab 28 / 53

Représentation graphique Les graphes 2D --> x = [0:0.1:2* %pi ]; --> y2 = cos (2* x); --> y3 = cos (4* x); --> y4 = cos (6* x); --> plot (x,y1 ); --> plot (x,y2, r ); --> plot (x,y3, k: ); --> plot (x,y4, g-- ); Plusieurs courbes peuvent être superposées. La commande clf permet d effacer les tracés. Voir l aide de LineSpec pour plus de détails sur les types de tracés. Y. Ariba - Icam, Toulouse. Initiation à Scilab 28 / 53

Représentation graphique Les graphes 3D Les graphes 3D Le tracé d une courbe paramétrique dans l espace se base sur : param3d --> t = 0:0.01:10* %pi ; --> x = sin (t); --> y = cos (t); --> z = t; --> param3d (x,y,z); Y. Ariba - Icam, Toulouse. Initiation à Scilab 29 / 53

Représentation graphique Les graphes 3D Les graphes 3D Le tracé d une courbe paramétrique dans l espace se base sur : param3d --> t = 0:0.01:10* %pi ; --> x = sin (t); --> y = cos (t); --> z = t; --> param3d (x,y,z); Y. Ariba - Icam, Toulouse. Initiation à Scilab 29 / 53

Représentation graphique Les graphes 3D Le tracé d une surface dans l espace se base sur : surf --> x = [- %pi :0.2: %pi ]; --> y = [- %pi :0.2: %pi ]; --> [X,Y] = meshgrid (x,y); --> Z = cos (X ).* sin (Y); --> surf (X,Y,Z) --> f= gcf (); --> f. color_map = jetcolormap (32); Y. Ariba - Icam, Toulouse. Initiation à Scilab 30 / 53

Représentation graphique Les graphes 3D Le tracé d une surface dans l espace se base sur : surf --> x = [- %pi :0.2: %pi ]; --> y = [- %pi :0.2: %pi ]; --> [X,Y] = meshgrid (x,y); --> Z = cos (X ).* sin (Y); --> surf (X,Y,Z) --> f= gcf (); --> f. color_map = jetcolormap (32); Y. Ariba - Icam, Toulouse. Initiation à Scilab 30 / 53

Représentation graphique Généralités Généralités Scilab possède de nombreuses fonctions graphiques : plot contour surf pie histplot hist3d bar polarplot graphe 2D courbes de niveau dans un plan surface 3D graphe en camembert histogramme histogramme 3D graphe en baton graphe en coordonnées polaires Des instructions sont aussi disponibles pour l habillage d une figure : title xtitle legend ajout d un titre pour la figure ajout d un titre et de labels pour les axes ajout d une légende Y. Ariba - Icam, Toulouse. Initiation à Scilab 31 / 53

Représentation graphique Généralités --> x = linspace ( -20,20,1000); --> y1 = x.* sin (x); --> y2 = -x; --> plot (x,y1, b,x,y2, r ) --> xtitle ( mon graphique, label axe x, label axe y ); --> legend ( y1=x* sin (x), y2=-x ); Y. Ariba - Icam, Toulouse. Initiation à Scilab 32 / 53

Représentation graphique Généralités --> x = linspace ( -20,20,1000); --> y1 = x.* sin (x); --> y2 = -x; --> plot (x,y1, b,x,y2, r ) --> xtitle ( mon graphique, label axe x, label axe y ); --> legend ( y1=x* sin (x), y2=-x ); Y. Ariba - Icam, Toulouse. Initiation à Scilab 32 / 53

Sommaire Programmation 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 33 / 53

Programmation Les scripts Les scripts Un script est un ensemble d instructions rassemblées dans un fichier. Scilab propose un véritable langage de programmation (interprété). Scilab a son propre éditeur, mais n importe quel éditeur de texte suffit. Les fichiers ont pour extension.sce. L éditeur se lance depuis Applications > SciNotes ou en tapant editor dans la console. Y. Ariba - Icam, Toulouse. Initiation à Scilab 34 / 53

Programmation Les scripts Les scripts Un script est un ensemble d instructions rassemblées dans un fichier. Scilab propose un véritable langage de programmation (interprété). Scilab a son propre éditeur, mais n importe quel éditeur de texte suffit. Les fichiers ont pour extension.sce. L éditeur se lance depuis Applications > SciNotes ou en tapant editor dans la console. Y. Ariba - Icam, Toulouse. Initiation à Scilab 34 / 53

Programmation Les scripts Exemple de script (dans l éditeur) : monscript.sce // rayon de la sphère r = 2; // calcul de l aire A = 4* %pi *r ^2; // calcul du volume V = 4* %pi *r ^3/3; disp (A, Aire : ); disp (V, Volume : ); Dans la console : --> exec ( monscript. sce, -1) Aire : 50.265482 Volume : 33.510322 Le fichier doit se situer dans le répertoire courant Y. Ariba - Icam, Toulouse. Initiation à Scilab 35 / 53

Programmation Les scripts Commentaires : les mots qui suivent // ne sont pas interprétées. Le répertoire courant peut être modifié dans le menu Fichier de la console. Le chemin complet peut aussi être spécifié dans la commande exec( C:\Users\yassine\scilab\monscript.sce, -1) Un raccourci dans la barre d outils de Scinotes permet de lancer l exécution. Les variables définies avant (directement dans la console) sont visibles et modifiables dans le script. Y. Ariba - Icam, Toulouse. Initiation à Scilab 36 / 53

Programmation Les scripts Autre exemple (dans l éditeur) : monscript2.sce x1 = -1; x2 = 1; x = linspace (x1,x2,n); y = exp ( -2*x).* sin (3* x); plot (x,y); disp ( voir tracé sur la figure ); Dans la console : --> n = 50; --> exec ( monscript2. sce, -1) voir tracé sur la figure Ici la variable n doit être définie au préalable. Y. Ariba - Icam, Toulouse. Initiation à Scilab 37 / 53

Programmation Les scripts Y. Ariba - Icam, Toulouse. Initiation à Scilab 38 / 53

Programmation Les fonctions Les fonctions L utilisateur peut définir ses propres fonctions Comme pour les scripts, une fonction est définie dans un éditeur de texte tel que SciNotes Les fichiers ont pour extension.sci. Les fonctions doivent être chargées dans Scilab (à l aide de l instruction exec) avant de pouvoir être utilisées. Définition générale d une fonction : function [out1,out2,...] = mafonction(in1,in2,...) corps de la fonction endfunction Y. Ariba - Icam, Toulouse. Initiation à Scilab 39 / 53

Programmation Les fonctions Exemple : racines d une équation du 2 nd degré. Dans un fichier new functions.sci : function [x1,x2] = racines_equ2d (a,b,c) // racines de ax ^2 + bx + c = 0 delta = b^2-4*a*c x1 = (-b - sqrt ( delta ))/(2* a) x2 = (-b + sqrt ( delta ))/(2* a) endfunction Dans la console : --> exec ( new_functions. sci, -1) --> [r1,r2] = racines_equ2d (1,3,2) r2 = - 1. r1 = - 2. Y. Ariba - Icam, Toulouse. Initiation à Scilab 40 / 53

Programmation Les fonctions Quelques remarques : Les variables définies dans la console sont visibles dans la fonction mais ne sont pas modifiables. Les variables définies dans la fonction ne sont pas visibles dans la console. Y. Ariba - Icam, Toulouse. Initiation à Scilab 41 / 53

Programmation Boucles et branchements Boucles et branchements Le langage de Scilab comprend les structures de contrôle classiques en algorithmie La condition if if expression booléenne then else end instructions 1 instruction 2 if (x >=0) then disp ("x est positif "); else disp ("x est négatif "); end Y. Ariba - Icam, Toulouse. Initiation à Scilab 42 / 53

Programmation Boucles et branchements Combinaison de plusieurs branchements suivant la valeur d une variable Le branchement select select variable case valeur 1 instructions 1 case valeur 2 instructions 2 else instruction 3 end select i case 1 disp (" One "); case 2 disp (" Two "); case 3 disp (" Three "); else disp (" Autre "); end Y. Ariba - Icam, Toulouse. Initiation à Scilab 43 / 53

Programmation Boucles et branchements Répétition d une série d instructions selon un compteur. La boucle for for variable = début : pas : fin instructions end n = 10; for k = 1:n y(k) = exp (k); end Y. Ariba - Icam, Toulouse. Initiation à Scilab 44 / 53

Programmation Boucles et branchements Répétition d une série d instructions tant qu une expression booléenne est vraie. La boucle while while (expression booléenne) end instructions x = 16; while ( x > 1 ) x = x /2; end Y. Ariba - Icam, Toulouse. Initiation à Scilab 45 / 53

Et aussi : Programmation Boucles et branchements L instruction break interrompt une boucle et en sort. L instruction continue interrompt une boucle et poursuit à la suivante. Autant que possible, il est préférable de coder un calcul en utilisant les vecteurs / matrices. En effet dans Scilab, la vectorisation est 10 à 100 fois plus rapide qu une boucle for ou while. tic S = 0; for k = 1:1000 S = S + k; end t = toc (); disp (t); tic N = [1:1000]; S = sum (N); t = toc (); disp (t); --> exec ( monscript. sce, -1) 0.029 0.002 Y. Ariba - Icam, Toulouse. Initiation à Scilab 46 / 53

Sommaire Exercices d application 1 Introduction Qu est ce que Scilab? Licence Getting started 2 Éléments de base Opérations et fonctions élémentaires Variables 3 Matrices Définition et manipulation de vecteurs Définition et manipulation de matrices Opérations matricielles 4 Représentation graphique Les graphes 2D Les graphes 3D Généralités 5 Programmation Les scripts Les fonctions Boucles et branchements 6 Exercices d application Exercice 1 Exercice 2 Exercice 3 Y. Ariba - Icam, Toulouse. Initiation à Scilab 47 / 53

Exercices d application Exercice 1 Exercice 1 Les équations paramétriques d une ellipse centrée à l origine sont : x(t) = A cos t y(t) = B sin t avec 0 t 2π 1 Tracer ces équations dans le plan x-y pour A = 2 et B = 1. 2 Ajouter un titre et des labels sur les abscisses/ordonnées. Y. Ariba - Icam, Toulouse. Initiation à Scilab 48 / 53

Exercices d application Exercice 1 Solution --> A = 2; B = 1; --> t = [0:0.01:2* %pi ]; --> x = A* cos (t); --> y = B* sin (t); --> plot (x,y) --> xtitle ( Une ellipse, x, y ) Y. Ariba - Icam, Toulouse. Initiation à Scilab 49 / 53

Exercices d application Exercice 2 Exercice 2 Recherche de la racine d une fonction par dichotomie. Soit une fonction continue strictement croissante sur [a, b] telle que f(a) < 0 et f(b) > 0 L objectif est de trouver x 0 tel que f(x 0) = 0. Algorithme : 1 évaluer la fonction en c = a+b 2, 2 si f(c) < 0, l intervalle de recherche devient [c, b], 3 si f(c) > 0, l intervalle de recherche devient [a, c], 4 ce processus est ensuite réitéré... A.N. : Déterminer la racine des fonctions f(x) = 2x 4 + 2.3x 3 16x 2 8x 17.5 sur l intervalle [0, 100], g(x) = tan(x 2 ) x sur l intervalle [0.5, π/3]. Y. Ariba - Icam, Toulouse. Initiation à Scilab 50 / 53

Solution Exercices d application Exercice 2 a = 0; b = 100; precision = 0.0001; ecart = 1; while ( ecart > precision ) c = (a+b )/2; f = 2*c ^4+2.3* c ^3-16*c^2-8*c -17.5; if f <0 a=c; elseif f >0 b=c; else a=b; end end ecart = b-a; disp (c); Résultats attendus : f(x) = 0 x 0 = 2.7358 g(x) = 0 x 0 = 0.83365 Y. Ariba - Icam, Toulouse. Initiation à Scilab 51 / 53

Exercices d application Exercice 3 Exercice 3 Soit un signal créneau f(t) d amplitude A, de période T et de valeur moyenne nulle. Sa décomposition en série de Fourier est donnée par : f(t) = + n=1 a n cos(nωt) avec a n = 2A nπ sin(n π 2 ) ω = 2π T Représenter le signal f(t) à partir de sa décomposition en série de Fourier pour différentes valeurs de n. A.N. : On prendra A = 2 et T = 0.5. Echelle temporelle : 0 t 2 avec un pas de 0.001. Y. Ariba - Icam, Toulouse. Initiation à Scilab 52 / 53

Exercices d application Exercice 3 Solution A = 2 ; T = 0.5; n = 7; w = 2* pi/t; t = [0:0.001:2]; f = 0; for end k =1: n a(k) = 2*A/(k*pi )* sin (k*pi /2); f = f + a(k)* cos (k*w*t); plot (t,f); Y. Ariba - Icam, Toulouse. Initiation à Scilab 53 / 53