Problème dans MatLab

naceurESSTT -  
 TheAhmed -
Bonjour,

j'ai programmer la fonction ci-dessous, avec MatLab
x= @(t) 0.01*t*exp(-0.01*t);
CP=quadl(x,0,40000)
ça m'a donné le message d'erreur suivant:
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> Untitled>@(t) 0.01*t*exp(-0.01*t) at 6
x= @(t) 0.01*t*exp(-0.01*t);

Error in ==> quadl at 63
y = feval(f,x,varargin{:}); y = y(:).';

Error in ==> Untitled at 7
CP=quadl(x,tc,40000)
quand j'ai ajouté un point pour la multiplication comme ça
x= @(t) 0.01*t.*exp(-0.01*t);
CP=quadl(x,0,40000)
le modèle m'a donné un résultat ,
je vais savoir pourquoi?????
A voir également:

2 réponses

TheAhmed
 
le ".*" désigne que le produit se fait cellule par cellule alors que le "*" désigne le produit matriciel. En effet le problème qui s'est posé que si t est un vecteur de dimension (n,1) alors exp(-0.01*t) est de même dimension cad (n,1). Ensuite tu ne peux pas multiplier le vecteur t(n,1) par un autre vecteur de dimension t(n,1). Donc tout dépend ici de ce que tu veux faire. Si tu veux obtenir l'image de chaque celleule de t, le .* est à sa correcte. Sinon, tu peut faire,

0.01*t'*exp(-0.01*t)

ce qui donne un autre résultat, mais qui est correcte dans le sens de produit matriciel puisque on va avoir un produit (1,n)*(n,1). Tout dépend donc de ce que tu veux faire.
1
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
pour compléter la réponse, le problème apparaît dès que t est une matrice de taille (m,n) avec m et n différents.
Et pas uniquement un vecteur.
1
TheAhmed
 
Tu as parfaitement raison, c'etait juste pour un exemple....
0