0% ont trouvé ce document utile (0 vote)
35 vues6 pages

TD Matlab

Le document présente une série d'exercices MATLAB couvrant des sujets tels que le tracé de fonctions, le calcul de factorielles, et l'illustration de séries de Fourier. Chaque exercice inclut des instructions spécifiques pour écrire des programmes MATLAB, des fonctions, et des visualisations graphiques. Les thèmes abordés incluent les fonctions de Bessel, les circuits électriques, et la projection de Mercator, entre autres.

Transféré par

bonifarez
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
35 vues6 pages

TD Matlab

Le document présente une série d'exercices MATLAB couvrant des sujets tels que le tracé de fonctions, le calcul de factorielles, et l'illustration de séries de Fourier. Chaque exercice inclut des instructions spécifiques pour écrire des programmes MATLAB, des fonctions, et des visualisations graphiques. Les thèmes abordés incluent les fonctions de Bessel, les circuits électriques, et la projection de Mercator, entre autres.

Transféré par

bonifarez
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD/TP MATLAB

1. Courbes. Fonctions. Boucles


Exercice 1.2 : Tracé de fonctions (tracefoncs)
Tracer les courbes des fonctions suivantes (quand 2 courbes sont indiquées,
les superposer).
On écrira un fichier de commandes contenant toutes les instructions plot
séparées par l’instruction pause.
• 𝑦 = √𝑥 2 − 𝑥 𝑒𝑡 𝑦 = 𝑥 − 1/2 𝑠𝑢𝑟 [1,3]
• 𝑦 = 𝑠𝑖𝑛(𝑠𝑖𝑛𝑥) 𝑠𝑢𝑟 [0,2𝜋]
• 𝑦 = 𝐽0 (𝑥) 𝑒𝑡 𝑦 = 𝐽1 (𝑥) 𝑠𝑢𝑟 [0,10𝜋] où 𝐽0 𝑒𝑡 𝐽1 sont des fonctions de Bessel de
première espèce ;
• 𝑦 = 𝐽0 (𝑥) et 𝑦 = 𝑠𝑖𝑛(𝑥 + 𝜋/4)/√𝑥 sur [𝜋/4,10𝜋] ;
• 𝑦 = 𝑒𝑟𝑓(𝑥) (fonction erreur) sur [−3,3]
Exercice 1.3 : Calcul de factorielle (facto)
Ecrire un programme qui calcule n! pour une valeur de n lue au clavier. On
pourra créer une fonction factorielle(n) en utilisant la récursivité.
Exercice 1.4 : Calcul d’une série (calserie)
Calculer la série :
+∞
1
𝑆=∑
𝑛2
𝑛=1
On tronquera la sommation lorsque le terme général sera inferieur à 10−8 fois
la somme partielle. Comparer le résultat numérique au résultat exact (= 𝜋 2 /6).
Exercice 1.5 : Fonctions définies par morceaux (tracefoncs2)
Tracer les courbes des fonctions suivantes (il n’est pas obligatoire d’écrire un
fichier de fonction).
1 + 𝑥, 𝑝𝑜𝑢𝑟 𝑥 ∈ [−1,0[
𝑦 = {1 − 𝑥, 𝑝𝑜𝑢𝑟 𝑥 ∈ [0,1[
0 𝑠𝑖𝑛𝑜𝑛
−(1 + 𝑥)2 𝑝𝑜𝑢𝑟 𝑥 < −1
(1 + 𝑥)3/2 , 𝑝𝑜𝑢𝑟 𝑥 ∈ [−1,0[
3
𝑦= 𝑥 2 + 𝑥 + 1, 𝑝𝑜𝑢𝑟 𝑥 ∈ [0,2]
2
11
{ 2 𝑥 − 3, 𝑝𝑜𝑢𝑟 𝑥 > 2

Exercice 1.6 : Ecriture d’une fonction (g et testg)


• Ecrire une fonction appelée g, qui traduit la fonction mathématique
𝑔(𝑥) = 𝑥𝑙𝑜𝑔(𝑥 2 + 1).
• Utiliser cette fonction pour évaluer 𝑔(1).
• Tracer la fonction g sur [0, 10]
Exercice 1.7 : Ecriture d’une fonction n! (ffact)
Ecrire une fonction ffact qui reçoit un argument en entrée et calcule sa
factorielle.
Exercice 1.8 : Courbes définies en polaires (courbespol)

1
Avec la fonction de conversion pol2cart et l’instruction plot, tracer les courbes
définies en polaires par :
• 𝑟 = 1 + 𝑒 ∙ 𝑐𝑜𝑠(𝜃)
1
• 𝑟=
1+𝑒∙𝑐𝑜𝑠(𝜃)
• 𝑟=1

On prendra pour e une valeur entre 0 et 1. Reprendre l’exercice avec la


commande polar (on regardera l’aide en ligne).
Exercice 1.9 : Illustration des séries de Fourier (fourrier)
On considère la fonction sur l’intervalle [0, 2𝜋] :

1. Ecrire une fonction MATLAB carre codant cette fonction mathématique. La


fonction doit pouvoir s’appliquer indifféremment à un scalaire ou terme à
terme à un tableau de dimension quelconque. Ecrire un programme
principal pour tracer la fonction.
2. On peut montrer que cette fonction f(x) coïncide sur [0, 2𝜋] avec la série de
Fourier :
+∞
1 1 − (−1)𝑛
𝑔(𝑥) = + ∑ 𝑠𝑖𝑛(𝑛𝑥)
2 𝑛𝜋
𝑛=1
Ecrire un programme MATLAB qui construit progressivement la série, et qui
trace la fonction obtenue à chaque ajout d’un nouveau terme. Vérifiez que l’on
retrouve bien, pour un grand nombre de termes, la fonction f(x).
Exercice 1.10 : Utilisation de global (vdw et testvdw)
On souhaite écrire une fonction représentant l’équation d’état de Van der
Waals d’un gaz donné :

Mais on impose que la fonction n’ait que 2 arguments d’entrée v et T, et 1


argument de sortie p, les autres grandeurs a, b et R étant considérées comme
des constantes (on donne 𝑅 = 8.32, a = 0.5547 et b = 3.0516 × 10−5 en unités
S.I.).
1. Trouvez une solution avec l’aide du polycopié et de l’intervenant, et écrivez
la fonction.
2. Ecrire un programme qui trace p en fonction de v pour T = 200K, T = 300K
et T = 1000K, sur un même graphique. On prendra v variant entre 1.1b et
10b.
Exercice 1.11 : Ecriture d’une fonction de plusieurs variables
Pour calculer la capacité calorifique Cp d’un gaz en fonction de la température
T (en Kelvin), on dispose de corrélations du type :

2
Il est souvent intéressant de calculer également la primitive de cette fonction,
qui s’exprime par :

1. Ecrire dans un fichier une fonction MATLAB appelée cpip qui reçoit en
entrée la température T et les coefficients A, B, C, D, E, et calcule 𝐶𝑝 et 𝐼𝑝
en sortie.
On spécifiera le nom du fichier utilisé.
2. Ecrire un programme MATLAB qui utilise la fonction précédente pour
tracer 𝐶𝑝 (𝑇) et 𝐼𝑝 (𝑇)sur l’intervalle 𝑇 ∈ [250 𝐾, 3000 𝐾].
3. Pour des raisons pratiques, on veut que la fonction n’ait comme argument
d’entrée que la température T. Comment faire ? Réécrivez la fonction et le
programme.

Exercice 1.12 : Projection de Mercator


Pour tracer des cartes géographiques, on utilise la projection de Mercator qui
à un point d’une surface sphérique fait correspondre un point du plan. La
projection est donnée par :

où 𝜃 ∈ [0°, 360°] est la longitude et 𝜙 ∈ [−90°, 90°] la latitude.


1. Ecrire une fonction MATLAB effectuant la projection, qui renvoie les
coordonnées (x, y) sur la carte en fonction des deux coordonnées
géographiques 𝜃 et 𝜙.
2. On vous fournit un fichier texte de données géographiques [Link],
organisé en deux colonnes (latitude, longitude), exprimées en degrés,
décrivant les frontières des continents. Ecrire un programme utilisant la
fonction précédente pour tracer la projection de Mercator des continents.
Note : on utilisera la fonction plot pour tracer point par point, sinon¸ ça a une
drôle de tête. . .
Exercice 1.13 : Perte de charge dans un tube
La perte de charge (= chute de pression) d’un fluide s’écoulant dans une
longueur L de tuyauterie s’écrit :

où 𝑣 est la vitesse du fluide (m/s), 𝜌 sa masse volumique (kg/m3), L et D


longueur et diamètre du tuyau (m), et f est un coefficient sans dimension que
l’on peut calculer par l’expression :

3
où Re est le nombre de Reynolds = 𝜌𝐷𝑣/𝜂, avec 𝜂 viscosité dynamique du fluide
(kg.m−1.s−1), et 𝜖 est la rugosité du tuyau (m).
Votre chef s’angoisse un peu et vous dit :
“Moi je n’y comprends rien à tout ¸ca, et je veux juste calculer la chute de
pression dans des conduites en acier qui font toujours 3 cm de diamètre, où
s’écoule de l’eau à température ambiante, en fonction du débit volumique Q
(m3/s) et de la longueur L.
Ecris-moi une fonction ayant deux paramètres d’entrée Q en m3/s et L en m, et
qui me sorte la chute de pression _p en Pa (unité SI de la pression). Tu me feras
aussi un programme principal qui teste ta fonction pour un débit de 10−3 m3/s
sur un tube de 50 m.”
Vous décidez de ne pas discuter et de vous exécuter, et comme vous êtes bon
programmeur, vous vous interdisez d’écrire un quelconque paramètre
numérique dans la fonction (hormis ceux intervenant dans la formule (7)).
On rappelle que le débit volumique Q (en m3/s) est relié à la vitesse v (en m)
par :

avec D exprimé en m, et on vous fournit les données suivantes :


– pour l’eau `a 20_C, 𝜌 = 1000 𝑘𝑔/𝑚3 , 𝜂 = 10−3 𝑘𝑔. 𝑚−1 . 𝑠 −1 ,
– rugosité de l’acier commercial 𝜖 = 46 𝜇𝑚.

4
2. Zéros de fonctions
Exercice 2.1 : Recherche de zéros de fonctions (zbessel)
Chercher les 20 premiers zéros de la fonction de Bessel de premier espèce
J1(x). Pour trouver une estimation de chaque zéro, on comparera
graphiquement cette fonction à 𝑠𝑖𝑛(𝑥 − 𝜋/4). Pour calculer la fonction J1 en un
point x donné, on écrit en MATLAB : besselj(1,x)
Ces zéros sont nécessaires pour calculer des solutions données sous forme de série
d’équations aux dérivées partielles faisant intervenir le Laplacien en coordonnées
cylindriques.
Exercice 2.2 : Utilisation d’une LED
On branche une LED en série avec une résistance R, et on la connecte sur une
source de tension U0 (Fig. 1). On note I le courant dans la branche, traversant
à la fois la diode et la résistance.

Fig. 1 – Circuit d’alimentation d’une LED


La LED est modélisable par la caractéristique :

et la loi des mailles appliquée au circuit 1 fournit l’équation :

Reformuler cette expression sous la forme f(I) = 0 et écrire un programme


MATLAB qui résout cette équation avec la fonction fzero. On donne : UD0 =
0.265 V, ID0 = 778 nA, R = 5, U0 = 12 V.
Exercice 2.3 : Zéros de fonctions : calcul d’un équilibre chimique (eqchimique,
feqchimique)
On considère la réaction chimique de dissociation du dioxyde de carbone en
phase gazeuse :

La loi d’action de masse fournit indirectement la fraction molaire x en CO à


l’équilibre par :

où 𝛼 taux de conversion est solution de

5
où T la température en K et Ke(T) la constante d’équilibre. On supposera
qu’une formule approximative pour Ke(T) est :

En utilisant la fonction fzero, trouver la valeur de x aux températures 𝑇 =


300𝐾, 1000𝐾, 2000𝐾.
Exercice 2.4 : Point de fonctionnement d’un circuit hydraulique
On alimente un circuit hydraulique dans lequel circule de l’eau à température
ambiante, avec une pompe dont elle sait qu’elle augmente la pression de :

où Q est le débit volumique dans le circuit (m3/s), et pM, Qm sont des


paramètres donnés par le constructeur. Cette différence de pression est aussi
la perte de charge le long de la tuyauterie sur laquelle elle est branchée, qu’on
peut calculer par les expressions (3) et (7).

1. Ecrire l’équation permettant de déterminer le débit Q sous la forme f(Q) = 0.


2. Ecrire un programme MATLAB pour la résoudre. Toutes les données
numériques devront être définies dans le programme principal.
3. Tester votre programme pour calculer le débit sur un tube de L = 100 m,
puis sur un tube de L = 200 m. Calculer également dans les deux cas, la
différence de pression _p, la vitesse d’écoulement dans le tube, et le nombre
de Reynolds.
4. Le constructeur de la pompe préconise que le rapport Q/Qm soit compris
entre 0.5 et 0.7. Ces conditions de fonctionnement sont-elles respectées
dans les deux cas ?

Données : celle de l’exercice précédent, Qm = 1.7 × 10−3 m3/s, pM = 2.8 × 105


Pa

Vous aimerez peut-être aussi