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.
y= √ x 2−x et y=x −1/2 sur [ 1,3 ]
y=sin ( sinx ) sur [ 0,2 π ]
y=J 0 ( x ) et y=J 1 ( x ) sur [ 0,10 π ]où J 0 et J 1sont des fonctions de Bessel de
première espèce ;
y=J 0 ( x ) et y=sin ( x + π /4 ) / √ x sur [ π /4,10 π ];
y=erf ( x ) (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
S=∑ 2
n=1 n
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).
y=¿
y=¿
Exercice 1.6 : Ecriture d’une fonction (g et testg)
Ecrire une fonction appelée g, qui traduit la fonction mathématique
g( x )=xlog ( x 2 +1 ).
Utiliser cette fonction pour évaluer g(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)
Avec la fonction de conversion pol2cart et l’instruction plot, tracer les
courbes définies en polaires par :
r =1+ e ∙ cos ( θ )
1
r=
1+e ∙cos (θ )
r =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 :
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 R=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 :
Il est souvent intéressant de calculer également la primitive de cette
fonction, qui s’exprime par :
2
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 C p et I p
en sortie.
On spécifiera le nom du fichier utilisé.
2. Ecrire un programme MATLAB qui utilise la fonction précédente pour
tracer C p (T ) et I p (T )sur l’intervalle T 2 [250 K, 3000 K].
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ù v 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 = ρDv /η, 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 kg/ m3, η=10−3 kg . m−1 . s−1,
– rugosité de l’acier commercial ϵ =46 μ m.
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
J (x). Pour trouver une estimation de chaque zéro, on comparera
1
graphiquement cette fonction à sin( x −π /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
T =300 K ,1000 K , 2000 K .
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