0% ont trouvé ce document utile (0 vote)
18 vues4 pages

Correction Exercice MATLAB

Le document présente des exercices MATLAB couvrant divers concepts, tels que l'affichage du nombre de jours dans un mois, la recherche de la plus petite valeur de n pour une somme, la vérification de la symétrie d'une matrice, la fonction récursive de Fibonacci, et l'intégration par la méthode des trapèzes. Il inclut également des visualisations graphiques de fonctions et des surfaces isométriques. Les exercices sont structurés en deux parties, avec des points attribués pour chaque question.

Transféré par

tijanidouaa2005
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)
18 vues4 pages

Correction Exercice MATLAB

Le document présente des exercices MATLAB couvrant divers concepts, tels que l'affichage du nombre de jours dans un mois, la recherche de la plus petite valeur de n pour une somme, la vérification de la symétrie d'une matrice, la fonction récursive de Fibonacci, et l'intégration par la méthode des trapèzes. Il inclut également des visualisations graphiques de fonctions et des surfaces isométriques. Les exercices sont structurés en deux parties, avec des points attribués pour chaque question.

Transféré par

tijanidouaa2005
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

Correction - Exercice MATLAB

Exercice 1 : (8 points)

1. Script MATLAB pour afficher le nombre de jours d'un mois en tenant compte de l'année :
------------------------------------------------------------------
mois = input('Entrez le numéro du mois (1 à 12) : ');
annee = input('Entrez l\'année : ');

if mois == 2
if mod(annee,4)==0 && (mod(annee,100)~=0 || mod(annee,400)==0)
jours = 29;
else
jours = 28;
end
elseif any(mois == [1,3,5,7,8,10,12])
jours = 31;
else
jours = 30;
end
fprintf('Nombre de jours : %d\n', jours);

2. Plus petite valeur de n telle que la somme dépasse une valeur donnée :
------------------------------------------------------------------
val = input('Entrez la valeur limite : ');
S = 0;
n = 0;
while S <= val
n = n + 1;
S = S + 1/n^2;
end
fprintf('n minimal : %d\n', n);
3. Vérifier si une matrice est symétrique :
------------------------------------------------------------------
A = input('Entrez une matrice carrée : ');
if isequal(A, A')
disp('La matrice est symétrique.');
else
disp('La matrice n\'est pas symétrique.');
end

4. Fonction récursive pour la suite de Fibonacci :


------------------------------------------------------------------
function f = fibonacci(n)
if n <= 1
f = n;
else
f = fibonacci(n-1) + fibonacci(n-2);
end
end

5. Intégration avec la méthode des trapèzes :


------------------------------------------------------------------
a = 0; b = 1;
n = 1000;
x = linspace(a, b, n);
y = exp(-x.^2);
h = (b - a) / (n - 1);
I = (h/2) * (y(1) + 2*sum(y(2:end-1)) + y(end));
fprintf('Valeur approchée de l\'intégrale : %.6f\n', I);
Exercice 2 : (12 points)
-----------------------------
Partie 1 :

1. x = linspace(-10, 10, 200);


2. f = sin(x)./x; f(x==0)=1; g = log(x.^2 + 1);
plot(x, f, 'b', x, g, 'r');
3. legend('f(x)', 'g(x)'); xlabel('x'); ylabel('y'); title('f(x) et g(x)');
4. df = gradient(f, x);
figure; plot(x, df); title('Dérivée numérique de f(x)');

Partie 2 :

1. R(x,y,z) = (a-x)^2 + b(y-x^2)^2 + c(z-y^2)^2, a=1, b=100, c=50


[x,y,z] = meshgrid(-2:0.1:2, -2:0.1:2, -1:0.1:3);
R = (1 - x).^2 + 100*(y - x.^2).^2 + 50*(z - y.^2).^2;
isosurface(x,y,z,R,20); title('Isosurface de R');

2. figure;
subplot(1,2,1);
z0 = 0;
Rz = (1 - x).^2 + 100*(y - x.^2).^2 + 50*(z0 - y.^2).^2;
contour(x(:,:,1), y(:,:,1), Rz(:,:,1));
title('Courbes de niveau à z=0');

subplot(1,2,2);
y0 = 1;
Ry = (1 - x).^2 + 100*(y0 - x.^2).^2 + 50*(z - y0.^2).^2;
imagesc(Ry(:,:,1)); colorbar;
title('Coupe en y=1');

Vous aimerez peut-être aussi