Travaux Dirigés 1. Le conjugué d un nombre complexe gamma1 et son module (qui correspond à sa valeur absolue si gamma1 est réel) sont obtenus par

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

Introduction à MATLAB R

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.


Cours 7 : Utilisation de modules sous python

TP 0 : INTRODUCTION À MATLAB

Corrigé des TD 1 à 5

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

Chapitre 2. Matrices

Cours Informatique Master STEP

Simulation de variables aléatoires

Cours d algorithmique pour la classe de 2nde

Petit Guide de Survie en Scilab

TP 1 Introduction à Matlab Février 2009

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Résolution d équations non linéaires

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)

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

Correction de l examen de la première session

L ALGORITHMIQUE. Algorithme

1. Structure d'un programme FORTRAN 95

Résolution de systèmes linéaires par des méthodes directes

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

NOMBRES COMPLEXES. Exercice 1 :

Initiation à la programmation en Python

Continuité et dérivabilité d une fonction

Scilab pour les vrais débutants

Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV

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

Présentation du langage et premières fonctions

1 Recherche en table par balayage

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Premiers pas avec Mathematica

CORRECTION EXERCICES ALGORITHME 1

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

Mathématiques I Section Architecture, EPFL

TP 1. Prise en main du langage Python

Python - introduction à la programmation et calcul scientifique

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

Aide - mémoire gnuplot 4.0

Cours d analyse numérique SMI-S4

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Problème 1 : applications du plan affine

Quelques commandes de base en SCILAB

Structures algébriques

Introduction à Matlab et Scilab

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Pour l épreuve d algèbre, les calculatrices sont interdites.

Architecture des Systèmes d Information Architecture des Systèmes d Information

Introduction à l informatique en BCPST

Cours 02 : Problème général de la programmation linéaire

Exercices - Polynômes : corrigé. Opérations sur les polynômes

DOCM Solutions officielles = n 2 10.

Maple: premiers calculs et premières applications

Introduction. Mathématiques Quantiques Discrètes

2. RAPPEL DES TECHNIQUES DE CALCUL DANS R

Capes Première épreuve

CCP PSI Mathématiques 1 : un corrigé

LE PRODUIT SCALAIRE ( En première S )

Programmation linéaire

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Quelques contrôle de Première S

Cours d Analyse. Fonctions de plusieurs variables

Polynômes à plusieurs variables. Résultant

Chap III : Les tableaux

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Calcul différentiel sur R n Première partie

Programmation linéaire et Optimisation. Didier Smets

Initiation à LabView : Les exemples d applications :

Découverte du tableur CellSheet

IV- Equations, inéquations dans R, Systèmes d équations

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

Initiation à l algorithmique

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Suites numériques 3. 1 Convergence et limite d une suite

Découverte de Python

Compter à Babylone. L écriture des nombres

[ édité le 30 avril 2015 Enoncés 1

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Licence Sciences et Technologies Examen janvier 2010

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

Initiation à la programmation OEF pour Wims (exercices).

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

STAGE IREM 0- Premiers pas en Python

Algorithmes récursifs

Mathématiques appliquées à l'économie et à la Gestion

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

L analyse boursière avec Scilab

Algorithmique et structures de données I

I. Polynômes de Tchebychev

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

Cours d initiation à la programmation en C++ Johann Cuenin

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Transcription:

Université de Versailles Saint-Quentin en Yvelines Mathématiques Assistées par Ordinateur Module Ma-350 Année universitaire 2017 2018 O. Kavian & B. Elsner Travaux Dirigés 1 Exercice 1 Afin de se familiariser avec l environnement du logiciel, on exécutera dans Scilab les commandes qui suivent. A tout moment en faisant help command on peut avoir une aide sur la commande (ou supposée telle ) command. 1) Dans Scilab une variable est déclarée de manière naturelle, par exemple alpha1 = 1.34 déclare la variable réelle alpha1 et lui assigne la valeur 1.34. Scilab ne distingue pas entre les nombres 1 et 1.0, car il s agit d un logiciel de calculs numériques (et non pas de calculs formels). Les constantes mathématiques, telles que π, i = 1 et e exp(1), sont prédéfinies et obtenues par les commandes %pi, %i et %e. 2) Les opérations élémentaires sur les nombres réels ou complexes (addition, soustraction, division et multiplication) sont obtenues de manière naturelle, et l opération a b se note a**b ou a^b : alpha1 = 3; beta1 = 4; gamma1 = 1 + 2*%i; x = beta1 - alpha1 y = alpha1 + beta1 xx = alpha1/beta1 yy = alpha1*beta1 z = gamma1**3 z - gamma1^3 zz = beta1**(1/2) Le conjugué d un nombre complexe gamma1 et son module (qui correspond à sa valeur absolue si gamma1 est réel) sont obtenus par conj(gamma1) abs(gamma1) 3) Un tableau de nombres (c est-à-dire un vecteur ou une matrice) est représenté par des commandes du type : A = [1, 2, 3] B = [1 : 5] C = B D = [6 ; 7 ; 8] M = [11, 12, 13 ; 21, 22, 23 ; 31, 32, 33] Noter que si B est un vecteur, B représente son transposé. L élément d indice 2 du vecteur B est obtenu avec B(2), de même M(2,3) est l élément sur la ligne 2 et la colonne 3. 1

4) Si A est une matrice de type [m, n] déclarée dans Scilab, alors A(1,:) représente la ligne 1 de la matrice et A(:,2) représente la colonne 2 de la matrice A (naturellement en supposant que n 2 ). On peut ainsi accéder de manière simple à n importe quelle ligne ou colonne de la matrice A. Construire une matrice 5 5 puis en extraire la 3-ème ligne et la 4-ème colonne. 5) Lorsque debut fin, la commande x = [debut:pas:fin] crée un tableau à une ligne dont le premier élément est debut, le pas ou l incrément est pas et l élément final est fin, ou le plus grand mutiple entier de pas inférieur à fin. Construire un vecteur x contenant les valeurs 0 jusqu à 1 par pas de.01 ; quelle est la dimension de ce vecteur? Une autre commande utile est la commande linspace (pour faire penser de linear spacement) : linspace(debut,fin,nombre_de_points) Comparer par exemple les deux vecteurs linspace(0,1,10) et linspace(0,1,11). 6) Créer un vecteur colonne de 11 points dans le plan complexe C répartis sur le segment qui joint -%i, et 7 + %i. 7) La matrice identité d ordre n est désignée par eye(n,n). Il faut noter qu il y a aussi une matrice eye(m,n) pour tout entier m, n 1 qui correspond à la matrice dont les éléments diagonaux sont égaux à 1 et tous les autres égaux à zéro. Le vecteur ones(m,n) correspond à la matrice dont tous les éléments sont égaux à 1. Noter aussi que la commande A = zeros(m,n) déclare une matrice à m lignes et n colonnes dont tous les éléments sont nuls. 8) La commande diag(a) qui extrait la diagonale principale de la matrice A. Par ailleurs, par exemple, la commande diag(-2:2) crée une matrice diagonale 5 5. Essayer les commandes diag(ones(4,1),1) puis diag(ones(4,1),-1), puis créer une matrice tridiagonale de taille 5 5. 9) Créer (rapidement ) dans Scilab la matrice A de taille 10 10 telle que les éléments de la première et la dernière lignes, ainsi que ceux de la première et la dernière colonnes, sont égaux à 1, et tous les autres éléments sont égaux à zéro sauf ceux situés sur la diagonale principale qui valent 2. 10) Les deux opérateurs + et s appliquent aussi aux vecteurs et matrices de même taille. De manière générale, les opérateurs qui s appliquent aux scalaires peuvent opérer aussi sur les vecteurs en agissant sur chaque composante du vecteur. Par exemple si A et B sont deux vecteurs de même type leur somme et leur différence sont obtenues avec A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; B = [11, 2, 3; 4, 15, 6; 7, 8, 19]; A + B B - A 2

11) Cepant il faut noter que pour le produit il y a deux notions distinctes : A*B donne le produit matriciel des deux matrices (lorsque cela est défini), alors que A.*B donne la matrice dont les éléments sont les produits A ij B ij (on notera que ce produit n est défini que si A et B sont de même taille). A = [1, 2, 3; 4, 5, 6; 7, 8, 9]; B = [11, 2, 0; 4, 0, 6; 0, 8,19]; A*B A.*B A.^2 Lorsque A est une matrice carrée et n un entier positif, A^n représente la puissance n-ème de A. Si A est une matrice inversible inv(a) ou A^(-1) désigne son inverse. Noter aussi que si b est un réel, A.^b est le vecteur dont les éléments sont (A ij ) b (en supposant que ces derniers sont bien définis). 12) Pour obtenir la dimension d un tableau (c est-à-dire vecteur ou matrice) A on utilise l opérateur size : ainsi size(eye(2,3)) donne [2,3]. Exercice 2 La commande rand(m,n) donne une matrice de dimension [m,n], à m lignes et n colonnes, dont les éléments sont des nombres (pseudo-)aléatoires, compris entre 0 et 1. Le déterminant d une matrice carrée A est obtenu avec det(a). 1) Soient A = 3*eye(3,3) + rand(3,3) et B = (A+A )/2. A quoi correspond la matrice D = B^(1/2)? Calculer B-D^2. 2) Sachant que a et b sont deux vecteurs de dimension [1,n], que signifie a*b? 3) En posant a = rand(1,20) et b = rand(1,20) calculer a*b. Exercice 3 Dans Scilab on peut définir des fonctions utilisables par d autres fonctions ou programmes. Pour cela on ouvre l application SciNotes (dans l un des menus de Scilab) et on crée un fichier, ou un script, avec l un des suffixes.sci ou.sce dans lequel on écrit les commandes que l on souhaite exécuter. 1) On peut définir une fonction par une commande du type // définition de la fonction polyf function resultat = polyf(x) resultat = x^3-3*x^2 + 1; function où, entre les commandes function et function, on place la déclaration resultat = polyf(x), c est à dire ce que la fonction polyf doit retourner, puis les différentes instructions permettant de définir la fonction polyf. Ces commandes seront contenues dans un fichier nommé polyf.sci, ou polyf.sce. Ensuite dans une fenêtre Scilab la commande 3

exec polyf.sci; permet de déclarer la fonction et de l utiliser, par exemple en invoquant polyf(1) (un commentaire dans le programme, ignoré par Scilab, est noté par // commentaire). 2) Lorsque les commandes suivantes // polyfsquared.sci // definition de la fonction // f(z) = (z^3-3z^2 +1)^2 function resultat = polyfsquared(x); exec polyf.sci; // fichier contenant la definition de polyf resultat = polyf(x)^2; function sont mises dans le fichier polyfsquared.sci, et si le fichier polyf.sci se trouve dans le même répertoire, alors on peut utiliser la fonction polyfsquared après avoir chargé le fichier polyfsquared.sci. 3) Une suite d instructions de Scilab peut se mettre dans un fichier ayant pour suffixe.sce, et alors on parle de script ou de programme de Scilab. Par exemple si le fichier sumer.sce contient les lignes suivantes // sumer.sce // algorithme sumero-babylonien de calcul de // la racine carree de 2 a = 2; x = 1; n = 5; for i = 1:n x = (x + a/x)/2 la commande exec sumer.sce exécutera le programme. Noter que lors de l exécution d un script les valeurs des variables ne sont pas nécessairement affichées sur la console. 4) Noter dans l exemple précédent l usage de la commande de boucle for i = 1:n. L indice utilisé dans la boucle parcourt un vecteur, et de ce fait on peut utiliser des incréments quelconques : for i = 2.3:0.7:4 i ou même on peut faire circuler l indice de boucle dans un vecteur quelconque prédéfini : vect = [1, 4, 17, 6.5, 0]; for i = vect i 4

5) Des instructions conditionnelles de boucles peuvent être exécutées avec la commande while. Par exemple // sumer_1.sce // algorithme sumero-babylonien de calcul de // la racine carree de 2 a = 2; x = 1; n = 0; erreur = 1.E-14; while abs(x^2-2) > erreur x = (x + a/x)/2; n = n + 1 // pour voir le nombre d iterations // on fait imprimer le resultat // on affiche sur la deuxième ligne le nombre d itérations reponse = [x ; n] 6) Il y a aussi la structure if <condition> then, par exemple // racines.sci // calcul des racines du trinome // ax^2 + bx +c function reponse = racines(a,b,c) delta = b^2-4*a*c; if a == 0 then reponse = polynome degenere elseif delta > 0 then x1 = (-b + sqrt(delta))/(2*a); x2 = (-b - sqrt(delta))/(2*a); reponse = [x1, x2]; elseif delta == 0 then x1 = -b/(2*a); reponse = [x1, x1]; elseif delta < 0 then x1 = (-b + sqrt(-delta)*%i)/(2*a); x2 = (-b - sqrt(-delta)*%i)/(2*a); reponse = [x1, x2]; Exercice 4 Pour représenter le graphe d une fonction on utilise la commande plot2d ou plot : un exemple typique est clf() ; // pour effacer la fenêtre du graphique x = [0:0.1:2*%pi] ; // les points de discrétisation. // Noter que x est un vecteur colonne 5

plot2d(x,sin(x)) Pour représenter plusieurs fonctions sur le même graphique, on peut procéder ainsi : clf() ; // pour effacer la fenêtre du graphique x = [0:0.1:2*%pi] ; // les points de discrétisation plot2d(x,[sin(x), sin(3*x), sin(5*x)]) On peut faire des manipulations sur un graphique donné, mais nous ne nous y attarderons pas ici Exercice 5 Soit f : R R la fonction définie par f(x) cos(x) cos(n x) + x α. 1) Ecrire un fichier nommé heart.sce dans Scilab où une fonction heart(a,b,n,alpha) est définie, de telle sorte que l exécution de ce programme heart.sce affiche le graphe de la fonction f définie ci-dessus sur l intervalle [a, b], pour a < b donnés (on prra comme pas de discrétisation de l intervalle [a, b] la valeur 0.001). 2) Essayer ce programme d abord avec les paramètres n, α donnés par a π 2, b π 2 n 160, α 0.7, puis avec des paramètres de votre choix. 6