Matlab-produit de termes dans une somme
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Matlab-produit de termes dans une somme



  1. #1
    pa24

    Matlab-produit de termes dans une somme


    ------

    Bonjour,

    je bloque sur quelque chose de tout bête, mais je n'arrive vraiment pas à comprendre d'où vient le problème.

    Voilà la somme que j'essaie de faire :

    for i=1:M
    k=1:i-1;
    S(i,1)=sum(e.^k*K(i-k,1)*(1-J(i-k)));
    end

    K et J sont des vecteurs colonnes de dimension (M,1) et e est un paramètre. Lorsque je n'ai pas le terme (1-J(i-k)) dans ma somme, c'est-à-dire :
    for i=1:M
    k=1:i-1;
    S(i,1)=sum(e.^k*K(i-k,1));
    end
    tout fonctionne correctement, je retrouve les mêmes valeurs que celles que je trouve à la main sur les premiers termes.

    Par contre, dès que je multiplie dans ma somme par (1-J(i-k)), je ne retrouve plus les mêmes résultats qu'à la main. J'ai essayé d'utiliser l'opérateur .* à la place de l'opérateur * mais rien n'y fait.

    J prend uniquement la valeur 0 ou 1. Ses premières lignes sont égales à 0, donc logiquement pour les premiers termes de la somme, je devrais retrouver la même chose pour la somme avec le terme (1-J(i-k)) et pour la somme sans ce terme, mais ce n'est pas le cas.

    Voyez-vous d'où vient le problème ?

    Merci beaucoup par avance !!

    -----

  2. #2
    andre_teprom

    Re : Matlab-produit de termes dans une somme

    Vous avez fait de la multiplication de la matrice dans le correct ordre?
    Je veux dire, l'ordre du premier multiplicateur et le second interfèrent avec le résultat.

  3. #3
    pa24

    Re : Matlab-produit de termes dans une somme

    Merci pour votre réponse.

    Je ne suis pas sûre de voir le problème : je ne multiplie pas deux matrices mais deux termes d'une matrice en fait, qui sont deux nombres. Est-ce que l'ordre importe dans ce cas ?

    Merci !

  4. #4
    andre_teprom

    Re : Matlab-produit de termes dans une somme

    Citation Envoyé par pa24 Voir le message
    K et J sont des vecteurs colonnes de dimension (M,1)
    Je ai parlé de ces termes ci-dessus...

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

    Re : Matlab-produit de termes dans une somme

    Il y a donc une différence entre :

    for i=1:M
    k=1:i-1;
    S(i,1)=sum(e.^k*K(i-k,1)*(1-J(i-k,1)));
    end

    et

    for i=1:M
    k=1:i-1;
    S(i,1)=sum(e.^k*(1-J(i-k,1))*K(i-k,1)));
    end

    ?

  7. #6
    andre_teprom

    Re : Matlab-produit de termes dans une somme

    Certes oui, c'est une multiplication matricielle.
    En outre, l'opérateur de multiplication correcte est le précédé par "." comme vous meme l'avez mentionné ci-dessus.

  8. #7
    pa24

    Re : Matlab-produit de termes dans une somme

    En fait je pensais que ce n'était pas une multiplication matricielle, car je ne calcule pas K * (1-J) mais K(i-k,1)*(1-J(i-k,1)) donc je multiplie une case d'une matrice avec une case d'une autre matrice, il me semblait donc que c'était plutôt un produit de nombres ?

    En tous les cas, j'ai bien calculé les deux dans le même ordre et j'ai aussi essayé avec .*, donc ce n'est pas de cela que vient le problème

  9. #8
    andre_teprom

    Re : Matlab-produit de termes dans une somme

    Autant je comprends (et je peux me tromper), même si le résultat est dans une dimension scalaire, le fait pour les opérandes sont dans un format de matrice cést le que détermine l'opérateur d'être employé.

    Par ailleurs, il peut y avoir un cas en particulier où l'ordre de multiplication ne comptent pas, comme une symétrie ou quelque chose de semblable. Voulez-vous présenter ici le code complet, avec les valeurs des variables?

  10. #9
    pa24

    Re : Matlab-produit de termes dans une somme

    Voilà :

    J=zeros(600,1);
    J(500)=1;

    donc toutes les lignes de J sont des zéros, sauf la 500 i-ème

    K est un vecteur colonne de 600 lignes également, qui comprend uniquement des valeurs réelles

  11. #10
    Chanur

    Re : Matlab-produit de termes dans une somme

    Bonjour,

    Je ne connais pas Mathlab, mais si "K et J sont des vecteurs colonnes de dimension (M,1)", c'est curieux d'écrire J(i-k) et K(i-k,1).
    Pourquoi J n'a qu'un seul indice alors que K en a deux ?
    Comme ils sont déclarés de la même façon, je me serais attendu à ce qu'on les utilise de la même façon ...
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  12. #11
    pa24

    Re : Matlab-produit de termes dans une somme

    Bonjour,

    K(i-k,1) désigne le terme du vecteur colonne K qui est situé à la ligne i-k.
    En effet, je pourrais aussi écrire J(i-k,1) au lieu de J(i-k), mais comme J est un vecteur colonne, ça revient au même, ça désigne forcément le terme de la première colonne.

  13. #12
    Paraboloide_Hyperbolique

    Re : Matlab-produit de termes dans une somme

    Bonjour

    Citation Envoyé par pa24 Voir le message
    for i=1:M
    k=1:i-1;
    S(i,1)=sum(e.^k*K(i-k,1)*(1-J(i-k)));
    end

    K et J sont des vecteurs colonnes de dimension (M,1) et e est un paramètre.
    Pourquoi utilisez-vous la fonction "sum" sur un scalaire ? Celle-ci est sans effet dans ce cas.
    Vous vouliez peut-être faire quelque chose du genre S(i) = S(i) + ... au moyen de la fonction "sum" ?

    Citation Envoyé par pa24 Voir le message
    Voyez-vous d'où vient le problème ?
    Peut-être d'une mauvaise utilisation de la fonction "sum" ?

  14. #13
    pa24

    Re : Matlab-produit de termes dans une somme

    Pourtant j'avais calculé à la main les premiers termes et ça donnait la même chose.

    Voilà ce que je veux faire :

    for i=1:M
    k=1:i-1;
    S(i,1)=e^1*K(i-1,1)*(1-J(i-1,1)) + e^2*K(i-2,1)*(1-J(i-2,1)) + … + e^(i-1)*K(1)*(1-J(1))
    end

    Que puis-je utiliser à la place de la fonction "sum" ?

    Merci !!

  15. #14
    andre_teprom

    Re : Matlab-produit de termes dans une somme

    Citation Envoyé par pa24 Voir le message
    Que puis-je utiliser à la place de la fonction "sum" ?
    Vous pouvez utiliser le command loop for...end pour generer le même resultat, par conséquent, il ne est pas nécessaire effectuer cette somme de nombreux termes de façon explicite.

  16. #15
    pa24

    Re : Matlab-produit de termes dans une somme

    Merci, mais je ne vois pas comment faire. J'ai déjà une boucle for… end ici, mais il faut bien que j'indique à un moment ou un autre que je veux sommer les différents termes.

    Pourriez-vous m'indiquer quel code vous avez en tête ?

    Merci beaucoup !

  17. #16
    andre_teprom

    Re : Matlab-produit de termes dans une somme

    De ce que je comprends, il suffirait de supprimer le mot sum dans l'expression ci-dessus.
    Il serait quelque chose comme:

    Code:
    S(i,1)=(e.^k*K(i-k,1)*(1-J(i-k)));

  18. #17
    pa24

    Re : Matlab-produit de termes dans une somme

    Bonjour,

    j'ai essayé votre code mais cela me renvoie le message d'erreur suivant :

    '??? Subscripted assignment dimension mismatch.'
    Le message n'apparaît plus et la somme semble fonctionner correctement lorsque j'enlève le (1-J(i-k)).

    Par ailleurs, je ne comprends pas très bien ce qui indique dans le code que Matlab doit effectuer une somme ?
    Ainsi, je veux aussi calculer la somme pour k=1:i-1 de e^k et quand j'utilise votre code :

    for i=1:M
    k=1:i-1
    V(i)=(e^k)
    end

    cela me renvoie le message d'erreur suivant :
    '??? Improper assignment with rectangular empty matrix.'

    je vois bien que le problème est que mon terme de droite n'est pas exprimé en fonction de i, mais en même temps k dépend de i...

    Merci encore pour votre aide !

Discussions similaires

  1. Matlab, somme de termes
    Par pa24 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 02/04/2015, 09h03
  2. Somme de termes précédents sur Matlab
    Par pa24 dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 03/12/2014, 08h18
  3. Equation du second degré dans R: somme et produit des racines
    Par invite3f95ae44 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 01/10/2011, 21h15
  4. Théorème d'intégration termes à termes de la fonction somme d'une série de fonctions
    Par yootenhaiem dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 28/11/2010, 20h13
  5. Somme de termes
    Par invitedcbe4be7 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 06/05/2005, 20h03