exercise 2g

22
Notions de base de la géologie structurelle Exercice : introduction à Matlab Exercice : introduction à Matlab 11Equation Section 1 Ce qui suit est une brève introduction à quelques-unes des fonctions élémentaires et les fonctions de MATLAB conçu pour obtenir un étudiant a commencé le long de la voie de formation. Il est recommandé que vous achetez un livre que vous propose un didacticiel et guide de référence à Matlab , telles que : Mastering MATLAB, 2012 HANSELMAN, D.C. ET LITTLEFIELD, B. , PEARSON EDUCATION, INC. (PRENTICE HALL), 864P. 1 Qu'est-ce que c'est? Béquilles Matlab matrice pour laboratoire. Matlab est un outil de programmation qui fournit un environnement interactif pour numérique et calculs symboliques avec une grande variété d'analyses de données et des outils de visualisation . 2 L'Histoire August 24, 2022© David D. Pollard et Raymond C. Fletcher 2005 1

Upload: hadhri-mehdi

Post on 16-Nov-2015

9 views

Category:

Documents


0 download

DESCRIPTION

gg

TRANSCRIPT

EXERCISE 2-1

Notions de base de la gologie structurelleExercice : introduction MatlabExercice : introduction Matlab

Ce qui suit est une brve introduction quelques-unes des fonctions lmentaires et les fonctions deMatlabconu pour obtenir un tudiant a commenc le long de la voie de formation. Il est recommand que vous achetez un livre que vous propose un didacticiel et guide de rfrence Matlab, telles que :MasteringMatlab, 2012 Hanselman, D.C. et Littlefield, B. , Pearson Education, Inc. (Prentice Hall), 864p.

1 Qu'est-ce que c'est?Bquilles Matlab matrice pour laboratoire. Matlabest un outil de programmation qui fournitun environnement interactif pournumrique et calculs symboliquesavecune grande varit d'analyses de donneset des outils de visualisation.2 L'HistoireMatlaba t conu dans lesannes 1970 par Cleve Moler, qui voulait faire plusieurs FORTRAN matrix les bibliothques plus accessible ses tudiants L'UNM. Il a donc critMatlab. En 1983 Moler ont uni leurs forces avec John peu (Universit de Stanford) et d'autres crire une version professionnelle avec fonctionnalits graphiques. En 1984 The MathWorks Inc. a t fonde et Matlaba t en constante volution et amliorer rapidement depuis lors.

Acadmiques pour les professeurs sont disponibles pour chaque individu, groupe, simultanes et licences classe par The MathWorks Inc. l'adresse :http://www.mathworks.com/Les remises sont galement disponibles pour les tudiants.3Matlabstructure3.1Matlabbibliothques de baseCes sont les principauxprogrammes, fonctions et commandes utilises dans Matlab.Botes outils 3.2Ces sont des bibliothques de programmes qui sont vendus et sous licence sparmentparThe MathWorksInc.Et comprennent :Bote outils statistiquesSymbolique MathToolboxPartielle Dierential Equation ToolboxSignal Processing ToolboxImage Processing ToolboxEtbien plus encore.3.3 L'utilisateurIl y a deux faons l'utilisateur peut interagir avec Matlab:1. Tapez dans lacommande Matlab fentre2. crire vos propres programmesen utilisant le script et la fonction m-fichiers.4 UtilisationMatlabOuvrezMatlabsur votre ordinateur et l'tude de l'espace de travail qui est fourni.4.1 Au premier coup d'ilL'apparence par dfaut esttrois fentres dans une interface utilisateur graphique(GUI):Fentre de commandeEspace de travailL'historique des commandesVous pouvez organiser ces toutefois que vous voulez et vous n'avez besoin que de la fentre de commandeouvert. Il est pratique d'avoir le rpertoire courant fentre ouverte. Si vous avez l'intention de variables d'appel donnes ou chiers stocksdans un certain rpertoire, ce rpertoire doit tre ouvert que le rpertoire courant.

Remarque le bouton Dmarrer dans le coin infrieur gauche de lafentre Matlab. Cette option est utilise pour lancer des dmos, Aide, outils de Bureau Matlab, botes outils, et d'autres fonctions primaires de Matlab.

Le symbole >> est le standard dans l'inviteMatlab la fentre de commande. Une bonne faon de commencer l'apprentissage Matlab est de commencer taper sur la droite de l'invite et lire la rponse. Il y a encore une importante fonction d'aide qui fournit des informations sur les commandes. Par exemple, vous pouvez apprendre les commandes gnrales et les fonctions de Matlaben tapant:

>> Aide gnral

La rponse a t supprime pour des raisons de concision ici. Ou vous pouvez en savoir plus surla fonction exponentielle en tapant:

>> Aide expEXP exponentielle. EXP(X) est la croissance exponentielle des lments de X, e de l'X. Pour complexe Z=X+i * Y, EXP(Z) = EXP(X) * (COS(Y)+i * SIN(Y)). Voir aussi expm1, log, log10, expm, expint.

Fonctions surcharges ou mthodes (ceux avec le mme nom dans d'autres rpertoires) Aider sym/exp.m

Page de rfrence du navigateur d'aide Doc exp>>

Pour obtenir un scoop sur la fonction d'aide lui-mme, vous tapez :

>> Pour obtenir de l'aide

La rponse a t supprime pour des raisons de concision ici. En slectionnantAide Matlab sous Aide dans la barre de menus situe en haut de la fentre de l'interface utilisateur graphique fournit une abondance de conseils utiles. galement disponible dans le menu Aide sont :Utilisation de l'ordinateur de bureauUtilisation de la fentre de commandeDmosAprs avoir termin cette introduction ont un coup d'oeil ces fonctions pour tendre vos connaissances de Matlab.4.2 ConstantesMatlabreconnat de nombreuses constantes utilises frquemment, tels que :Pi, le ratio circonfrence/diamtre d'un cercleNANPas un nombre, le ratio 0/0EPSLe plus petit nombre tel que 1+eps > 1Le double niveau de prcision de votre ordinateurGnralement infrieures 2-16Les valeurs de pi et eps sont affichsavec 4 chiffres aprs le point dcimal. Pour augmenter le nombre de chiffres affichs 14 type :

>> Format long

Regardez nouveau pi et eps. Pour revenir la prcision standard type :

>> Format court

Le format de la commande n'affecte pasMatlab commentles calculs sont effectus. Les calculs en virgule flottante variables sont fait dans le cas de virgule flottante, peu importe comment ces variables sont affiches.4.3 VariablesLes variables sont classes dans Matlabcomme les scalaires (avec une seule valeur numrique), les vecteurs (avec plus d'une valeur organis dans une dimension) et baies (avec plusieurs valeurs numriques organiss dans plus d'une dimension).Les scalairessont dfinies comme suit :>> Un=6

A =

6

Ou bien, on pourrait dfinir le scalaire b comme :

>> B= 32;

Notez que fin d'une ligne de commande avec le point-virgule supprime la rponse que donne la valeur du scalaire.bien sr les scalaires peuvent tre considrs comme vecteurs de longueur.

Ligne et Colonne vecteurs sontdfinis comme suit:

>> R= [45,33,27,48 ]

R =

45 33 27 48

>> C= [ 45 ; 33 ; 27 ; 48]

C =

45 33 27 48

Remarque l'utilisation de la virgulepour sparer les lments dans la dfinition du vecteur ligne et lepoint-virgule pour sparer les lmentsdans la dfinition du vecteur colonne.Le vecteur ligne peuvent tre dfinis l'aide d'un espace entre chaque lment au lieu de la virgule.

Les matricessont deux tableaux multidimensionnels. Par exemple, la matrice A est dfini :

>> A= [11 12 13 ;21 22 23 ;31 32 33; 41 42 43]

A =

11 12 13 21 22 23 31 32 33 41 42 43

Remarque les lments d'une ligne donne sont spares de celles du rang suivant par un point-virgule. Notez galement l'utilisation de les noms en minuscules pour les scalaires et les vecteurs, et majuscules noms de matrices. Il ne s'agit pas d'une ncessairesyntaxe,maiscertains convention pour aider distinguer les baies de plus d'une dimensionpeut tre utile. La notion gnrale de baies continue de trois ou plus de dimensions.

Il y a beaucoup de fonctions utiles pour la gestion desvecteurs et des matrices.Ces valeurs peuvent tre revues en tapant:

>> Aide elmat

Par exemple, la fonction length renvoie le nombre de valeurs dans un vecteur :

>> E=longueur(r)

E=

4

La fonction ndims renvoie le nombre de dimensions d'une matrice :

>> F=ndims(A)

F =

2

La fonction size renvoie le nombre de lignes et de colonnesd'une matrice :

>> G=size(A)

G =

4 3

4.4 L'indexationLa plupart des donnes utilises dansMatlab se compose des vecteurs et des matrices et parfois seulement un sous-ensemble de nombres sont d'intrt. C'est l ol'indexation devient important. L'une des plus utiles aux oprateurs dans ce contexte est le signe deux-points. Par exemple, pour crer un vecteur ligne contenant les entiers de 6 12 nous crire :

>> 6:12

Rp. =

6 7 8 9 10 11 12

Un incrmentautres que l'unpeut tre spcifie comme suit :

>> 6:2:12

Rp. =

6 8 10 12

Par exemple, si seule la premire4 valeursd'un vecteur, x, de longueur 8 sont ncessairesdans un calculdu sous-ensemble,xsub permettent, peut tredfinie l'aide de l'oprateur virgule :>> X= [21 76 93 44 57 25 11 98];>> XSUB permettent=x(1:4)

XSUB permettent =

21 76 93 44

Rappeler la matrice A et utiliser la virgule par lui-mme pour spcifier tous les lments dans la colonne 2 :

>> UN

A =

11 12 13 21 22 23 31 32 33 41 42 43

>> A( :,2)

Rp. =

12 22 32 42

Faut-il s'attendre la suite de A( : , : )?

Si seulement les valeurs des lignes 2 3 et dans les colonnes 1 2 sontncessaires de la matrice Aque a 4 lignes et 3colonnes, le sous-ensemble,ASUP, est dfini :

>> ASUP=A(2:3,1 :2)

ASUP =

21 22 31 32

Pour slectionner un intervalle travers la dernire valeur dans les lignes et les colonnes utilisent, par exemple :>> ASUP2 =A(2:end,3:fin)

ASUP2 =

23 33 43Le trouver() commandevalue toute mathmatique ou d'une expression logique, qui est entr dans les parenthses, et renvoie les indices d'un tableau des numros pour lesquels l'expression est true. Par exemple, pour trouver les indices de valeurs de xsuprieure 50 utiliser :

>> Xbig=find(x>50)

Xbig =

2 3 5 8

Notez que c'est les indices retourn, et non pas les valeurs des lments avecces indices.Pour trouver les valeurs, utilisez :

>> X(xbig)

Rp. =

76 93 57 98

Boucles pour rpter un calculun certain nombre de fois. Par exemple, examinons lamultiplier2fois les 8lments du vecteurx. La boucle for commence par la dfinition d'un compteur, je, qui varie au cours de la plage de valeurs requise, en l'occurrence le 1 8, et se termine avec la dclaration fin. Entre le pour et la fin vous crire les calculs avec une valeur particulire de x dsign comme x(i).

>> Pour i=1:length(x)X(i)=2 * x(i);Fin>> X

X =

42 152 186 88 114 50 22 196

4.5Fonctions mathmatiquesL'lmentaire fonctions mathmatiques peuvent tre examins en tapant:

>> Help elfun

Matlab fournit un vaste ensemble de fonctions mathmatiques y compris tous les calculs arithmtiques standard, fonctions trigonomtriques, exponentielles, complexes, ou de fonctions spcialises. Par exemple, que l'on considre les quations trigonomtriques :

Dans Matlabce peuvent tre crites pourle scalairexcomme suitdonn un angle de 45 degrs:

>> X=45 * pi/ 180;>> T=sin(x) * cos(x)

T =

0,5000

Notez l'angle (45 degrs) est converti en radians, car fonctions trigonomtriques attendre arguments en radians.

Considrons maintenant le vecteur suivant l'quation :

Pour le vecteurxiavec n =4 uniformment valeurs espaces de 0 pi, cette fonctionest value :

>> X=linspace(0,pi,4);>> T=sin(X). * cos(X)

T =

0 0,4330 -0.4330 -0.0000

Remarque L'oprateur de multiplication. *qui permet de multiplier chaque lment d'un vecteur par l'lment correspondant d'un vecteur de mme longueur.Cettefoisl'oprateurest galement utilis pour l'lment par lment multiplication des matrices. Si A est une matrice d'ordre [m par n] et B est une matrice d'ordre[m par n], puis un . * B produit une matrice quiest aussi d'ordre [m par n]comme suit:

En revanche, l'oprateur de multiplication * est utilis pour multiplier une matrice par un vecteur ou une matrice par une matrice, en utilisantles rgles de l'algbre linaire,comme nous le verrons ci-dessous.4.6Algbre linairelmentaire fonctions de la matrice peuvent tre examins en tapant:

>> Help matfun

Par exemple, envisager multiplication matrice-vecteur d'une [mpar n]matrix, B,par un [n en 1] vecteur colonne, x, l'aide de l'oprateur mtimes* qui produit une [m par 1] vecteur colonne :

Ceci produit un vecteur colonneyde longueur m avec les lments que sont la somme des produits des lments delignes successivesde B avec les lments correspondantsdans lacolonne des x.Ceci est accompli en Matlabcomme suit:

>> B= [11 12 13 ;21 22 23 ;31 32 33];>> X= [ 1 ; 2 ; 3];>> Y=b * x

Y =

74 134 194

L'oprateur mtimes permet multiplication matrice-matrice, par exemple A * B, si l'ordre de A est [m par p] et l'ordre de B est [p par n].Le nombre de colonnes de A doit tre gal au nombre de lignes de B, et l'ordre le produit en rsultant est matrice [m par n].

L'un des nombreuxutiles algbre linaire et fonctions de la matriceestgie qui fonctionne sur une matrice carre X avec la syntaxe suivante :[V,D] =gie(X)

Cette fonction produit une matrice diagonale D des valeurs propres et une matrice complte V dont les colonnes sont les vecteurs propres correspondants. Cette fonction a d'importantes applicationsen gologie structurelleo il est utilis pour faire fonctionner surle stressou straintensor. Ces tenseurs sont3x3 matrices symtriques : les valeurs propres sont les soi-disant valeurs principales et les orientations du stress principauxou les souchessont donns par les vecteurs propres.

Supposons que vous sont donns les six lments indpendants d'un stress tensor en coordonnes cartsiennes. Les principales valeurs et orientations sont trouves comme suit:

>> Sxx = 2; syy = 1; szz = .5; sxy = .75; syz = .5; szx = .25;>> S = [sxx sxy szx; sxy syy syz; szx syz szz]

S =

2,0000 0,7500 0,2500 0,7500 1,0000 0,5000 0,2500 0,5000 0,5000

>> [V,D] = gie(S)

V =

-0.1361 -0.8398 0,5256 0,5965 -0.6333 -0.4930 -0.7909 -0.5681 -0.2273

D =

0,1659 0 0 0 0,8261 0 0 0 2,5080Un autreutile algbre linaire fonction est meshgridqui a la syntaxe suivante :[X,Y] =meshgrid(x,y)

Cette fonction transforme le domaine spcifi par les vecteurs x et y dans les matrices X et Y qui peuvent tre utiliss pour l'valuation des fonctions deux variables etla construction de3-D tracs de surface. Les lignes du tableau de sortie X sont des copies du vecteur x et les colonnes du tableau de sortie Y sont des copies du vecteur y.Par exemple :

>> X= [0 1 2 3];>> Y= [0 1 2 3];>>[X,Y] =meshgrid(x,y)X = 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3Y = 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3

En prenantles lments correspondantsdans les premiers rangsdes X et Y commepaires,dfinitles coordonnes des points le long de l'axe des Xavec X valeurs de 0, 1, 2 et 3, respectivement. La deuxime lignes dfinir les coordonnes avec les mmes valeurs de X le long de la ligne Y = 1, et ainsi de suite.4.7Trac dans MatlabMatlaba de nombreux construit dans le trac routines qui assurent des visualisations de donnes.

Par exemple, la fonction cosinus peut tre trace comme suit:>> X =[0:pi/36:2 * pi];>> Y = cos(x);>> Plot(x * 180/pi,y)>>Xlabel( 'x(degr) ' ), ylabel( 'cos(x) ')

Le trac apparat dans une fentre spare appele La Figure 1.Il existe de nombreuses faons de manipuler le complot visant raliser un formatage souhait.

Trois graphiques sont particulirement utiles et l'on peut en apprendreplus surtoutes les fonctionnalits de ce genre detrac dans Matlaben tapant:>> Aide graphique3d

Plotting commandes utilisesdans les exercices de ce manueldcrivent, par exemple, le stress domaines ou dplacement domaines. L'exemple suivant illustre comment domaines de donnes peut tre tracecomme une carte isomtrique:>> V = [ -2:.2:2];>> [X,Y,Z] = pics(v);>> Contour(X,Y,Z,10)

Les pics fonction est une fonction de deux variables, obtenue par la traduction et la mise l'chelle distributions gaussiennes. Il est utile pour la dmonstrationMatlabplotting routines. Entrez les lignes de code donn ci-dessus et de produire le contour suivant carte des pics fonction pour la plage du paramtre v.

Ensuite essayez de taper la fonction surf(X,Y,Z) dans la fentre de commande pour produire la suite visualisation 3D du contour trac des crtes fonction :

Pour voir commentMatlabparcelles vecteurs essayez les solutions suivantes :>> [U,V] = gradient(Z,0.2);>> Attente sur>> Carquois(X,Y,U,V)

En outre utilegraphique Matlab commandescomprennent :

La figureOuvre un nouveau chiffreLa nsiEfface un chiffreHold on/offDtient un trac, qui admetplusieurs commandes trac dans un chiffreBarre couleursAjoute une barre de rfrence de couleurs utilises dans un trac.4.8 Cration d'un m-fichierIl peut devenir fastidieux crire un certain nombre de lignes de code dans la fentre de commande. Les erreurs ne sont pas faciles corriger et il n'est pas facile excuter le code plusieurs fois avec diffrents choix de paramtres. L'alternative est de crer un m-fichier.

Dans le menu Fichier slectionnez Nouveau et slectionnez M-fichier. Ceci ouvre une nouvelle fentre qui est l'diteur. Dans cette fentre, vous pouvez crire de nombreuses lignes de code et d'utiliser la souris pour positionner le point d'insertion comme dans un diteur de texte. Dans le menu Dbogage choisissez Enregistrer et Excuter (ou simplement Excuter) pour excuter les lignes de code.4.9Chargement des donnesMatlab permet le chargementdes diffrents types dedonnes.Un couple des plus utiles mthodes quisont utilisesdans les exercices sontmentionns ici.

La plupart des donnes dans les exercicesviendront en texte ASCII chiers danslequel les valeurs sont disposs en ranges et en colonnes dans un tableau. Matlabfacilement les reconnat, mais est sensible aux entres manquantesqui doivent tre remplacs avec nan. chiers texte sont charges l'aide :>>DONNES= load( 'data.txt" );

Les donnes de la variablesera un tableau contenant toutes les lignes et colonnes de donnes.txt.

Un autre chier type facilement charg et peut tre utilis dans les exercicesest un chier EXCEL. Matlabces charges en utilisant :>> Donnes = xlsread( 'data.xls" );5Vue d'ensembleTous les calculs effectus jusqu' prsent ont t fait dans la fentre de commande, mais quand vous rsoudre des problmes plus compliqus, vous avez peut-tre assez de retaper tout dans la fentre de commande. Il y a deux faonsMatlabvous permet d'crire vos propres routines (programmes).

Scripts fonctionnent sur les donnes dans l'espace de travail. Ils n'acceptent pas arguments d'entre ou de sortie retour arguments. Entre est pris de l'espace de travail et de sortie est crite dans l'espace de travail. Avantages sont un peu plus facile la syntaxe et l'accs toutes les donnes de l'espace de travail. L'inconvnient est que l'espace peut tre encombr par des variables.De nombreux scripts sont fournis sur le site web manuels que reproduire les chiffres graphique du manuel et rsoudre problmes exercice.

Fonctions acceptent arguments en entre et sortie de retour arguments. Toutes les variables dnies ou calcul l'intrieur de la fonction restent locales la fonction et ne sont pas enregistres dans l'espace de travail. Le principal avantage est que l'espace n'est pas encombr. La syntaxe est un peu plus compliqu que celui de scripts.Exercice 6 l'aide d'un exemple de scriptCi-dessous est un exemple de script qui peut tre utilis pour reproduire la Figure 1.15 dans le texte, une carte isomtrique du stress normal lment agissant paralllement un modle dfaut. La version Matlab vous permettra de crer est en couleur, tandis que la version texte est en chelle de gris. Les plages de x et y sontde -2.5+2.5a, o a est ledemi-longueur du modle dfaut. C'est ce que l'on appelle le 'local' stress champ dans le voisinage du modle dfaut.Le signe des conventions associer un dplacement positif discontinuit partout le modle dfaut avec gauche latral de patinage. Aussi, contrainte de traction est positif et contrainte de compression est ngatif.

Copier une version lectronique de ce script partir du site web manuels sous chapitres -> Chapitre 1 -> chapitre Scripts, collez-le dans l'diteur Matlab, et excutez le script pourconfirmer qu'elle ne reproduire la figure. Lire le script ligne par ligne et essayer de comprendre comment le script est organis. Utilisez la commande help pour obtenir des informations dtailles sur le logiciel Matlab constantes et fonctions.concentrer votre attention sur le script lui-mme et non sur les concepts mcaniques lis dfaillir ou la drivation des quations pour le stress composant. Ces concepts et des drivations seront examines dans un chapitre ultrieur.

% Fig_01_15% Constant dplacement en cisaillement discontinuit sur 2D lment de ligne% Crouch et Starfield (1990) Chapitre 5% lment centr l'origine, parallles l'axe des x, partir de -a