Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

[MATLAB] Puissance de matrices

  1. #1
    zenip

    [MATLAB] Puissance de matrices

    Bonjour à tous,

    J'ai un petit soucis avec mon code matlab qui fonctionne mais qui n'est pas très élégant et surtout long.

    Mon problème est de calculer le rayonnement entre deux surfaces avec la formule suivante :

    Rayonnement = cste_boltzman * émissivité * [ (T1^2 - T2^2) * (T1^2 + T2^2) ] / (T1-T3)

    Ma température T1 : matrice de taille (1x24)
    Ma température T2 : matrice de taille (1x24)
    Ma température T3 : matrice de taille (1x24)

    Pour le calcul je procède comme suit :

    (T1^2 - T2^2) * (T1^2 + T2^2) j'ai donc transformé (T1^2 - T2^2) de taille (1x24) en (24x1) ==> j'obtiens donc une matrice (24x1) * (1x24) ==> matrice de 24x24

    Je récupère la diagonale de cette matrice (j'ai fais les calculs mais je n'ai pas trop compris pourquoi les valeurs qui m'intéresse sont sur la diagonale de la matrice 24x24)

    Une fois la diagonale récupérée j'obtiens une matrice 24x1

    Il me reste la division : 24x1 / 1x24 ==> impossible, je transforme donc en : 24x1 / (1x24)' ==> j'obtiens une matrice (24x1) que je dois remettre en 1x24 pour la suite de mon code...

    Il y a surement une manière plus simple de faire ce calcul mais je débute en matlab.

    Merci d'avance, j'espère avoir été clair.

    -----


  2. Publicité
  3. #2
    albanxiii

    Re : [MATLAB] Puissance de matrices

    Bonjour,

    Vos données d'entrée sont des vecteurs (un cas particulier de matrice, si cela vous fait plaisir).
    Dans mes souvenirs, on peut faire le produit terme à terme avec l'opérateur ".*".
    Pour calculer le vecteur dont les composantes sont les carrés des composantes du vecteur T1, il faut donc écrire T1.*T1.
    Vous cherchez donc à calculer (T1.*T1 - T2.*T2) .* (T1.*T1 + T2.*T2), si j'ai bien compris.

    Sauf erreur... et à vérifier avec matlab
    Not only is it not right, it's not even wrong!

  4. #3
    Antoane

    Re : [MATLAB] Puissance de matrices

    Bonjour,

    T1.^2 permet également de calculer une matrice dont chaque élément vaut le carré de l'élément correspondant de T1.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  5. #4
    minushabens

    Re : [MATLAB] Puissance de matrices

    Citation Envoyé par zenip Voir le message
    (...)j'ai fais les calculs mais je n'ai pas trop compris pourquoi les valeurs qui m'intéresse sont sur la diagonale de la matrice 24x24
    tu vas me trouver peu charitable mais je trouve que tu prends les choses par le mauvais bout. Il faut commencer par comprendre le problème mathématique avant de chercher à le programmer.

  6. #5
    zenip

    Re : [MATLAB] Puissance de matrices

    Merci de vos réponses.

    Oui je devrais comprendre le problème mathématique, j'ai relu la théorie des matrices sans trouver réponse dans à ma question.. As tu une explication ?? Ou une théorie à lire ?

    Pour ce qui est du .^2 c'est ce que je fais pour le moment mais il reste le problème de dimension des matrices.

    Je vais essayé le .* voir si ce peut le faire.

  7. #6
    minushabens

    Re : [MATLAB] Puissance de matrices

    Je ne suis pas sûr d'avoir compris ton problème, mais si X est un vecteur, et si tu le considères comme une matrice, alors le produit matriciel XX' où X' désigne la matrice transposée, a sur la diagonale les carrés des éléments de X. Par exemple la somme des carrés des éléments de X (le carré de la norme de X) peut se calculer comme X'X ou bien comme Tr(XX') (la trace est la somme des éléments diagonaux).

  8. #7
    zenip

    Re : [MATLAB] Puissance de matrices

    En faisant la multiplication terme à terme cela à résolu mes problèmes.

    J'ai encore un petit soucis, pour calculer mon rayonnement je fixe mes conditions initiales :

    T1 = 10°C
    T2 = 15°C
    T3 = 12°C

    Je lance un premier calcul j'obtiens un rayonnement pour mes conditions initales, pour les itérations suivantes, j'aimerai récupéré des valeurs de température stockées dans une matrice (96x24) et ensuite re calculer mon rayonnement en fonction de ces valeurs..

    Je pensais utiliser une boucle for, mais je n'ai aucune idée de comment l'écrire..

Discussions similaires

  1. [matlab] sauvegarder des matrices
    Par gorben dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 27/06/2014, 09h18
  2. lire plusieurs matrices d'un fichier text sur matlab
    Par dadou21 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 23/06/2014, 14h09
  3. [Matlab] Répétition de matrices
    Par Domino5731 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 16/04/2012, 15h23
  4. Calcul de matrices à la puissance n
    Par Wed16 dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 02/11/2010, 11h35
  5. Matlab - Comparaison de 2 matrices
    Par stick25 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 23/03/2010, 10h44