%Le script aide_TP1 en mode "démonstration" permet de se
%familiariser avec les commandes simples de Matlab.
%On fait défiler la suite du contenu de cette aide en appuyant
%sur n'importe quelle touche.
%Les commentaires écrits après un "%" ne sont pas interprétés.
%Les premières lignes de commentaires sont disponible par "help aide_TP1"
help aide_TP1 %on affiche les premières lignes de commentaires ci-dessus
echo on %mode démonstration avec affichage des instructions
pause
format compact %affichage des résultats sans sauts de ligne
disp(' '), disp(' '), disp('Variables :'), disp(' ')
a=1
2+a
b=3*ans
%le dernier résultat est appelé "ans" pour "answer"
1 + 2^5/4, 3e6,... %"," sépare sur une ligne et "..." empêche la rupture de ligne
i^2, pi, exp(i*pi) %i et j représentent (sauf si redéfinis) la même racine de -1
a=1; b=a+1; c='0*a'; %";" permet de ne pas afficher le résultat:
a=a, b, 2*c %la
chaîne de 3 caractères "c" est une matrice 1x3
x=(1>=0); y=(0~=0);
x, y %vrai=1 et faux=0
pause
disp(' '), disp(' '), disp('Affichage :'), disp(' ')
format long, 1/3 %format avec (au maximum) 15 chiffres
format short e, 1/3 %format avec 5 chiffres en notation scientifique
format,
1/3
%format courant (5 décimales, non compact)
format compact
1+eps==1, 1+eps/2==1 %epsilon machine = eps = 2^(-52)
2^(-1074)
%plus petit nombre realmin flottant > 0
2^(1023)*(2-2^(-52)) %plus grand nombre realmax flottant
10^1000, ans/ans %infini : Inf, not_a_number : NaN
pause
disp(' '), disp(' '), disp('Matrices et vecteurs :'), disp(' ')
A=[1 2;2 3] %cette matrice s'écrit aussi [1,2;2,3]
A(2,2)=1; A
B=rand(2,3) %matrice 2x3 aléatoire
u=2:4
%":" permet de construire des suites arithmétiques
2:0.5:4 %nombres de 2 a 4 par pas de 0.5
v=[2 3 4]' %vecteur = adjoint d'une matrice ligne
prod(1:20) %factorielle 20
p=poly([0,-2]) %coefficients en décroissant du polynôme p de racines 0 et -2
roots(p) %récupération des racines de p dans C
a0=p(length(p)) %coefficient "constant" de p
z=polyval(p,2); %évaluation de p(2)
fprintf('\np(2)=%g\n\n',z) %affichage du résultat avec saut de ligne par "\n"
pause
disp(' '), disp(' '), disp('Tests et boucles :'), disp(' ')
clear x; for k=1:5 x(k)=k^2; end; x' %les vecteurs 1:n sont d'accès très rapide
k=0; while k^3<10; k=k+1; end; k %utiliser plutôt si possible "for"
n = input('nombre entier à tester ?\n'); %dialogue
if rem(n,2)==0, r='pair'; else r='impair'; end;
fprintf('\n%g est %s\n\n',n,r)
pause
disp(' '), disp(' '), disp('Graphes :'), disp(' ')
figure(1),
clf
%on prépare la fenêtre 1 (inutile si pas "hold on")
x=[-.5:0.001:0.5]'; %représentation de l'axe des abscisses par une suite de points
y=x.*sin(x);
plot(x,y,'r'), axis equal %graphe de x->x*sin(1/x) sur [-1/2,1/2] en rouge ("red")
title('y=x*sin(x)'), xlabel('x'), ylabel('y'), grid %légende et grille
v=axis; line([v(1),v(2)],[0,0]) %on trace l'axe des abscisses
pause
disp(' '), disp(' '), disp('Équations différentielles :'), disp(' ')
figure(2), clf %on prépare la fenêtre 2
[t1,Y1] = ode45('secondmembre_y',[0 1],[1]); %y' = y sur [0,1] avec y(0)=1
[t2,Y2] = ode45('secondmembre_y',[0 -1],[1]); %y' = y sur [-1,0] avec y(0)=1
plot([t2 t1],[Y2 Y1]); %on trace la solution de y' = y sur [-1,1] avec y(0)=1
title('solution de y''=y et y(0)=1')
clear all %on efface de la mémoire les variables affectées
echo off