%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