Programmation matlab
ozagi
Messages postés
24
Statut
Membre
-
ozagi Messages postés 24 Statut Membre -
ozagi Messages postés 24 Statut Membre -
Bonjour,
j'ai fait un code Matlab qui manipule les matrices mais il contient déjà des erreurs puisque c'est la première fois que je travaille sur, Ce code permet au début de
- choisir au hasard un vecteur r de taille n, c'est la partie aléatoire de l'algorithme.
- Après il calcule r1=B*r , avec r1 est un vecteur comme r et B est un matrice
- puis il calcule: r2=A*r1, r2 aussi un vecteur et A est un matrice
- Finalement, il calcule r3=C*r, C est un matrice et r3 est un vecteur
Si r3=r2, je déduis que probablement C=A*B, avec C est la matrice identité.
Voila le code mais il ne donne pas le bon résultat
function A_estLinverseDe_B(n)
for i=1,n
r=rand(i,1);
for j=1,n
A=rand(i,j);
B=rand(i,j);
C=eye(i,j);
end
r1=B*r;
r2=A*r1;
r3=C*r;
end
for i=0,n
if isequal(r3,r2)==0
disp('Le matrice A est l inverse de B');
else
disp('A et B ne sont pas inverses');
end
end
end
J'attends vos aides, Merci d'avance
j'ai fait un code Matlab qui manipule les matrices mais il contient déjà des erreurs puisque c'est la première fois que je travaille sur, Ce code permet au début de
- choisir au hasard un vecteur r de taille n, c'est la partie aléatoire de l'algorithme.
- Après il calcule r1=B*r , avec r1 est un vecteur comme r et B est un matrice
- puis il calcule: r2=A*r1, r2 aussi un vecteur et A est un matrice
- Finalement, il calcule r3=C*r, C est un matrice et r3 est un vecteur
Si r3=r2, je déduis que probablement C=A*B, avec C est la matrice identité.
Voila le code mais il ne donne pas le bon résultat
function A_estLinverseDe_B(n)
for i=1,n
r=rand(i,1);
for j=1,n
A=rand(i,j);
B=rand(i,j);
C=eye(i,j);
end
r1=B*r;
r2=A*r1;
r3=C*r;
end
for i=0,n
if isequal(r3,r2)==0
disp('Le matrice A est l inverse de B');
else
disp('A et B ne sont pas inverses');
end
end
end
J'attends vos aides, Merci d'avance
A voir également:
- Programmation matlab
- Application de programmation - Guide
- Programmation envoi sms - Guide
- Programmation vb - Télécharger - Langages
- Programmation binaire - Guide
- Delphi programmation - Télécharger - Langages
4 réponses
Si je reprends ce que tu écris au début de ton message: si r2=r3 alors A et B sont inverses. Dans ton code il faut donc écrire:
Par contre, d'un point de vue mathématique, je ne vois pas comment les 2 matrices A et B, définies aléatoirement, ont une chance d'être inverses...
Dernière chose : quand tu poste du code utilise les balises prévues a cet effet (il suffit de cliquer sur l'incone '<>' dans la barre d'outil pour les faire apparraitre)
if isequal(r3,r2)==1
disp('Le matrice A est l inverse de B');
else
disp('A et B ne sont pas inverses');
endEn effet la fonction isequal revoit 1 si les 2 vecteurs en paramètre sont égaux.
Par contre, d'un point de vue mathématique, je ne vois pas comment les 2 matrices A et B, définies aléatoirement, ont une chance d'être inverses...
Dernière chose : quand tu poste du code utilise les balises prévues a cet effet (il suffit de cliquer sur l'incone '<>' dans la barre d'outil pour les faire apparraitre)
En gros, tu nous donnes l'énoncé de ton problème et tu espères qu'on te donne la solution...
Vas d'abord lire ça et ensuite si tu bloques sur un point précis de ton problème, reviens et là peut être que quelqu'un pourra d'aider.
Vas d'abord lire ça et ensuite si tu bloques sur un point précis de ton problème, reviens et là peut être que quelqu'un pourra d'aider.
OK, j'ai bien compris
bein voila j'ai fait ce code
vous pouvez me vérifier le code,
Merci
bein voila j'ai fait ce code
function ImplementAlgorithm(n,m)
for i=0:n
A=round(i);
end
B=inv(A);
for i=0:m-1
C=B;
end
for i=m:n
C= round(i);
end
end
vous pouvez me vérifier le code,
Merci
Aïe. Tu n'as visiblement pas compris le concept de matrice ou/et de boucle for en Matlab... Ecrire :
Si ton but était d'écrire une matrice aléatoire nxn voici ce que tu aurais du faire :
Bref révise la manipulation de matrice en Matlab, parce que là tu es mal barré.
for i=0:n A=round(i); endn'a simplement aucun sens : à chaque itération de la boucle tu "écrases" la valeur de A.
Si ton but était d'écrire une matrice aléatoire nxn voici ce que tu aurais du faire :
A = randn(n)tout simplement.
Bref révise la manipulation de matrice en Matlab, parce que là tu es mal barré.
Merci pour votre réponse
Je ne sais pas si je dois les implémenter de façon aléatoire ou de façon manuelle (les matrices A et B), mais juste après cette question, il y a un autre qui me demande d'implémenter un autre code avec des valeurs de n très grande avec n=100, 500, 1000 et 2000.
concernant ce sujet, menant je dois créer une matrice C égale B avec m éléments modifiés au hasard dans C, les 2 matrices sont carrés de taille n.