exercice matlab
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

exercice matlab



  1. #1
    Momo54500

    exercice matlab


    ------

    Bonjour,

    je suis en train d'apprendre un cours sur matlab et y parmi les exemples qui ont été donnés il y avait le fait de créer une matrice triangulaire supérieure dont chaque élément non nul valait (1.03^sqrt(i*j)) avec i la variable permettant de parcourir les lignes et j les colonnes et ensuite d'afficher la même matrice mais inversée tout en gardant celle que nous avons fait avant.

    Voici le code :
    Code:
    %%
    
    % size of square matrix
    m = 70;
    
    % initialize matrix
    outmat = zeros(m );
    outmat2 = zeros(m);
    
    % loop over rows and columns
    for i=1:m
        for j=1:m
            
            % test whether row index is less than column index
            if i<j
                outmat(i,j) = 1.03^sqrt(i*j);
            else
                outmat2(i,j) = 1.03^m - 1.03^sqrt(i*j);
            end
        end
    end
    
    outmat2 = outmat + outmat2;
    
    figure(1), clf
    subplot(121)
    imagesc(outmat)
    axis square, title('Upper-triangular matrix')
    set(gca,'xtick',[],'ytick',[],'clim',[0 1.03^m])
    
    subplot(122)
    imagesc(outmat2)
    axis square, title('Full matrix')
    La question que je me pose, c'est comment pour la deuxième partie il a trouvé la formule : 1.03^m - 1.03^sqrt(i*j)?

    Merci à vous.

    -----

  2. #2
    umfred

    Re : exercice matlab

    Je ne suis pas sût que outmat2 soit la matrice inversée (au sens mathématique) de outmat mais c'est une matrice triangulaire inférieure, c'est le test qui if i<j qui le détermine

  3. #3
    Momo54500

    Re : exercice matlab

    en faite l'objectif c'était d'obtenir quelque chose comme ça :

    Nom : Capture.PNG
Affichages : 211
Taille : 81,1 Ko

    il s'agit de la deuxième, comme vous pouvez le voir il s'agit de l'"inverse" mais pas mathématiquement parlant.

  4. #4
    Brinicle

    Re : exercice matlab

    Bonjour,

    Il s'agit plutôt d'une sorte "d'opposé", la valeur de chaque coefficient de outmat2 est : valeur_coeff_max_de_outmat - coeff_de_outmat

    Le coefficient maximal étant en i=j=m, il vaut : 1.03^sqrt(m*m)=1.03^m
    Et comme les coefficients de outmat valent 1.03^sqrt(i*j), cela donne cette formule.

    Note : L'inverse d'une matrice triangulaire supérieure est aussi une matrice triangulaire supérieure (idem pour inférieure).

  5. A voir en vidéo sur Futura
  6. #5
    umfred

    Re : exercice matlab

    pour les couleurs, ça se passe avec imagesc et le set qui passe à clim le vecteur [0 1.03^m], et ça étale ces valeurs entre le bleu (0) et le jaune (1.03^m).

  7. #6
    Momo54500

    Re : exercice matlab

    Oui voilà en faite il a pris le maximal.
    Ah okk j'avais pas bien compris non plus pour les couleurs pourquoi on obtenait ces couleurs en particulier.

  8. #7
    umfred

    Re : exercice matlab

    il faut penser à consulter la doc des fonctions ^^ https://fr.mathworks.com/help/matlab/ref/imagesc.html

  9. #8
    Momo54500

    Re : exercice matlab

    Bonsoir oui j'essaye de comprendre les différentes docs.
    Par contre j'avais une autre question liée aux plots et cette fois je n'ai pas réussi à trouver la réponse dans la doc :

    Dans un exercice pour afficher un plot , le prof a écrit :

    figure(1), clf
    plot(data','linew',2)

    savez vous à quoi correspond 'linew'? et 2?
    Merci à vous.

  10. #9
    Brinicle

    Re : exercice matlab

    C'est bien précisé dans la documentation (un peu loin c'est vrai).

    Specify Line Width, Marker Size, and Marker Color

    Create a line plot and use the LineSpec option to specify a dashed green line with square markers. Use Name,Value pairs to specify the line width, marker size, and marker colors. Set the marker edge color to blue and set the marker face color using an RGB color value.
    'linew' permet de dire que le nombre qui suit (2) est la largeur du trait que l'on souhaite.


    Personnellement, si vous avez le choix, je vous conseille plutôt d'apprendre python au lieu de matlab, c'est gratuit, la documentation est généralement plus claire et ça plante BEAUCOUP moins (expérience personnelle).

  11. #10
    Momo54500

    Re : exercice matlab

    Pourquoi les deux ont la même utilité ? Il me semble que matlab c'est plus spécialisé pour tout ce qui est mathématiques

  12. #11
    Brinicle

    Re : exercice matlab

    Il me semble que au contraire matlab (ou octave d'ailleurs) est surtout utilisé par les physiciens et ingénieurs.

    Python est proposé comme une alternative à matlab. Certains IDE ont même une interface ressemblant beaucoup à matlab (comme spyder, que j'utilise). Certaines fonctions de numpy (un module de python, qui permet de manipuler facilement les tableaux) ont d'ailleurs le même nom que sous matlab.
    Dans ma fac, python a déjà quasiment totalement remplacé matlab, celui-ci n'étant plus utilisé que pendant les séances de TP et plus du tout pour des simulations.

    Il me semble, mais c'est à vérifier, que les mathématiciens utilisent plus le R, Fortran ou mathematica.

  13. #12
    Momo54500

    Re : exercice matlab

    Je comptais apprendre le python également, mais apprendre matlab/simulink peut être un plus également.
    Oui en effet les mathématiciens utilisent le R il me semble agalement.

Discussions similaires

  1. exercice initiation matlab
    Par invite07740c67 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 17/10/2014, 22h09
  2. Aide exercice matlab
    Par invite80a3841b dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 25/05/2013, 14h12
  3. exercice sous matlab
    Par inviteaf933d44 dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 26/05/2011, 02h21
  4. [Matlab] Exercice Mathématiques
    Par invite78f958b1 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 15/02/2011, 16h47
  5. Exercice matlab.
    Par invitebf26947a dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 02/12/2010, 08h35