PDFprof.com Search Engine



TP de mathématiques avec MATLAB

PDF
Images
List Docs
:

TP de mathématiques avec MATLAB
MATLAB et Simulink pour lenseignement des Sciences de lIngénieur
I Introduction à MATLAB
Introduction à MATLAB et Simulink
Présentation de Matlab 1 Introduction
Cours Outils de programmation pour les mathématiques
LAUTOBIOGRAPHIE
Chapitre i : le genre autobiographique
Lhistoire les formes et les enjeux de lécriture autobiographique
L autobiographie et sa place parmi les genres littéraires
Genres de texte et activité :
Next PDF List

TP de mathématiques avec MATLABISBSThomas Richard5 janvier 20161 DéroulementVotre UE de mathématiques comporte trois séances de travaux pratiques.

Le but de cesséances est multiple :-ab ordercertaines notions du cours de mathématique ssous un angle plus concret/visuel. -v ousdonner une première appro ched"un logiciel professionnel de calcul scien tifique.-v ousdonner un exemple d"utilisation d"un mo dèlemathématique.

Votre travail sera organisé de la façon suivante :1.A udébut de la première séance, v ousv ousfa miliariseza vecles fonctions de bases de MATLAB.2.A ucours de la première séance v ousprenez connaissances des différen tspro jetsprop osés.3.À la fin de la première séance, v ousc hoisissezun binôme un pro jetsur lequel v oustravaillerez.4.Dans les deux séances suiv antesv oustra vaillezen binômes sur le pro jetque v ousa vezchoisis.5.Deux semaines après la dernière séance, v ousme re ndezpar mail un compte rendu accompagné des programmes que vous avez produits.

2) Initiation à MATLABMATLAB dispose d"une aide très utile, que vous pouvez lancer soit via le menu aide, soitvia l"invite de commande en tapanthelpsuivi de la commande sur laquelle vous voulez del"aide.2.

1) Une grosse calculatrice MATLAB est un outil de calcul numérique.

Il permet d"effectuer toutes sortes de calculs.1.MA TLABp euteffectuer des calculs simples. a)T apez2+2,exp(1),sin(pi/3),log(2)dans la console de MATLAB.b)T apez5e-2, puis3.2e3.

Quelle est cette écriture?1c)Eff ectuezà la main et à l"aide de MA TLABle calcul suiv ant(1 + 10-20)-1.

Queconstatez vous?Ce comportement est dû au fait que MATLAB ne travaille qu"avecdes valeurs approchées.d)On p eutsto ckerdes v aleursdans des v ariables,v oiciun exemple : tap ezles com- mades suivantes à la suite :a=1,b=4,c=-8,d=b^2-4*a*c.

Qu"a-t-calculé?e)C ontinuezla s équanced"instruction précéden tep ourtrouv erles racines du p oly-nômex2+ 4x-8.

Vous stockerez les valeurs dans les variablesx1etx2.2.Le nom MA TLABpro vientde MA TrixLABoratory .C"est un logiciel qui bien utilisé permet d"effectuer de façon relativement efficace des opérations sur des tableaux, desvecteurs ou des matrices.a)T apezu=[4,5,6],v=[1,2,4],w=[1;2;4].

Quelle est la différence entrevetw?b)À quoi serv entles c ommandesu(2)?w(3)?c)Que ren voie2*u?u+v?u+w?d)Que pro duitselon v ousla c ommandeM=[1,2,3;4,5,6;7,8,9]? Vérifiez votre hyp-tohèse.

Testez l"effet de la commandeM(2,3).e)C onstruisezles matrices A=(((3π-1 25 10-12)))etB=?4 5 6-1-2-3?.f)Exécutez les commandes A*B,A*M,M*A,M*v,M*w,v*v Lesquelles renvoient uneerreur?g)Calc ulezy=M*w, puisM\y.

Que fait la commande "\»?h)Ré essayezles commandes précéden tesen remplaçan t" *» par ".*».i)T estezl"effe tdes op érateurs" ^», ".^», "/» et "./» sur les matrices et lesvecteurs.j)Décriv ezl"effet des commandes suiv antes0:10,2:0.5:6,1:0.3:5.k)C onstruisezen une seule ligne un v ecteurligne con tenantles carrés de tout les multiples de 3 compris entre 0 et 100.

Construisez un vecteur ligne contenant les20 premières puissances de 2.l)Si vest un vecteur,sum(v)renvoie la somme de toutes les composantes dev.Utilisez cette fonction pour évaluer?105k=11k2.2.

2) GraphiquesMATLAB est capable de créer des représentations graphiques diverses. La commande debase pour les graphiques en 2D est la commandeplot.

Voyons un exemple :X=0:0.05:1;Y1=X;Y2=X.^2;Y3=X.^3;Y4=X.^4;plot(X,Y1,X,Y2,X,Y3,X,Y4);title("Graphes de fonctions puissances y=x^n");2xlabel("x");ylabel("y");legend("n=1","n=2","n=3","n=4");axis square;1.Exé cutezles commandes ci-dessus.

Essa yezde comprendre à quoi sert c haqueligne. 2.C réezun graphique représen tantles fonc tionsin uset cosin ussur l"in tervalle[0,2π].Bien des variations sont possibles, on peut en particulier ne mettre que des croix aux pointsde la courbe (au lieu de les relier), ce qui est utile pour représenter des données issues del"expérience, ou encore représenter plusieurs graphiques sur la même figure.

Expérimentezavec les commandes suivantes :x = 0:0.1:10;y1 = sin(x);y2 = sin(2*x);y3 = sin(4*x);y4 = sin(8*x);subplot(2,2,1);plot(x,y1,"x");title("Subplot 1: sin(x)")subplot(2,2,2);plot(x,y2,"o");title("Subplot 2: sin(2x)")subplot(2,2,3)plot(x,y3,"+");title("Subplot 3: sin(4x)")subplot(2,2,4)plot(x,y4);title("Subplot 4: sin(8x)")MATLAB est aussi capable de représenter graphiquement les fonctions de deux variablesde la formez=f(x,y).

Soit sous forme de surface 3D (commandesurf), soit sous forme delignes de niveaux (commandescontouretcontourf).

Voici un exemple :[X,Y] = meshgrid(-2:.2:2);Z = X.^2 - Y.^2;subplot(2,1,1);surf(X,Y,Z);title("Graphe de f(x,y)=x^2-y^2");subplot(2,1,2);contour(X,Y,Z);title("Lignes de niveaux de f(x,y)=x^2-y^2");32.

3) ProgrammationQuand on veut effectuer une suite d"opérations assez longue dans MATLAB, il est utile depouvoir stocker les suites d"instructions pour pouvoir les réutiliser plus tard.

C"est le rôle desscripts.

Créez un fichierscript.mpuis entrez le code ci-dessous dans le fichier :% Ce script illustre les capacités% de MATLAB en terme de représentation% graphique des fonctions de plusieurs% variables.[X,Y] = meshgrid(-2:.2:2);Z = X.^2 - Y.^2;subplot(2,1,1);surf(X,Y,Z);title("Graphe de f(x,y)=x^2-y^2");disp("Représentation du graphe");pause;subplot(2,1,2);contour(X,Y,Z);title("Lignes de niveaux de f(x,y)=x^2-y^2");disp("Représentation des lignes de niveaux");Exécutez le.

Remarquez les commentaires (précédés du symbole%) et l"usage des commandesdispetpausepour donner des informations à l"utilisateur.Les structures de contrôles habituelles en programmation sont disponibles :if,while,for.Voici un exemple de script qui calcule les solution d"une équation du second degré :% Ce script demande à l"utilisateur d"entrer les valeurs des% coefficients a, b et c et affiche si elles existent les solutions% réelles de l"équation $ax^2+bx+c=0.disp("Entrez les valeurs a,b et c dans ax^2+bx+c=0");a=input("Valeur de a ? ");b=input("Valeur de b ? ");c=input("Valeur de c ? ");strEq=[num2str(a),"x^2+",num2str(b),"x+",num2str(c),"=0"];d=b^2-4*a*c;if d>0x1=(-b-sqrt(d))/(2*a);x2=(-b+sqrt(d))/(2*a);disp("L""équation ");disp(strEq);disp("a deux solutions :");disp(x1);disp(x2);else if d==0x0=-b/(2*a);disp("L""équation ");disp(strEq);4disp("a une seule solution :");disp(x0);else if d<0disp("L""équation ");disp(strEq);disp("n""a pas de solutions réelles.");endendendPour vous entraîner, vous pouvez programmer le "jeu" suivant : le script choisi un entier auhasard qu"il garde secret (utiliserfloor(100*rand(1))) puis demande à l"utilisateur de ledeviner.

Si l"utilisateur a trouvé le script affiche "Gagné", sinon il affiche "Trop grand" ou "Troppetit" et redemande un essai à l"utilisateur.Pour effectuer des tâches qui interviennent à plusieurs moments, on peut utiliser des fonc-tions.

La syntaxe générale pour définir une fonction est :function [y1, ,ym]=mafonction(x1, ,xn)% On effectue les% calculs nécessaires.% Il peut y avoir des if, for, while y1= % On affecte les valeurs de % sortie au variablesym= % de sortie yiendLesxisont les variables d"entrées et lesyisont les variables de sorties.

Si l"on exécute lafonction en tapant :mafonction[x1, ,xn]seule la valeurey1sera renvoyée.

Pour obtenir tous lesyi, il faut exécuter :[y1, ,ym]=mafonction[x1, ,xn]Si on veut écrire une fonction simple qui ne prend qu"une seule variable en entrée et ne renvoiequ"une seule variable, cela devientfunction y=mafonction(x).

Pour pouvoir être exécutéepar MATLAB la fonction doit être enregistrées dans un fichier nommémafonction.m.Les variables d"entrée et de sortie peuvent être des nombres, mais aussi des vecteurs, desmatrices ou des chaînes de caractères.Donnons quelques exemples de fonctions.

La fonction suivante renvoiex2six >0et0sinon :function y=carre_positif(x)% Cette fonction renvoie le% carré de x si x est positif,% et 0 si x est négatif.if x>0y=x.^2;5else y=0endendLa fonction suivante renvoie, étant donnésu1,u2etNle vecteur(u1,u2, ,uN)desN+1premiers termes de la suite de Fibonnacci, définie par la relation de récurrenceun+1=un+un-1.function Uvect=fibonacci(u1,u2,N)% Renvoie les (N+1) premiers termes% de la suite de fibonacci sous formes% d"un vecteur.Uvect(1)=u1;Uvect(2)=u2;for i=3:NUvect(i)=Uvect(i-1)+Uvect(i-2);endendÉtant donnés un entierNla fonction suivante renvoie le plus grand entierktel que2k≤N,ainsi que la valeur2k.function [k,p]=disc_log2(N)% Logarithme discret en base 2.k=0;p=1;while p 4) Quelques pistesMATLAB sais faire beaucoup de choses.

Pour évaluer des intégrales, jetez un oeil àintegralou àtrapz, pour résoudre un système non-linéaire regardez du côté defsolve, pour minimiserune fonction regardezfminsearch, pour résoudre une équation différentielles utilisezode45.Cependant, avant d"utiliser ces commandes lisez l"aide en ligne pour comprendre commentfonctionnent ces commandes.2.

5) Petits exercices1.Utilise zmatlab p ourrésoudre le système linéaire : ???????3x+ 4y-z= 5x+ 2y+ 3z=-1x-y-z= 362.T racezles lignes de niv eaude la fonction f(x,y) = (1-x)2+ 100(y-x2)2sur[-2,2]2.Trouvez son minimum.3.Ré solvezà l"aide de matlab l"équation x2-2 = 0.4.Ré solvezn umériquementl"équatio ndiffére