begin process at 2010 09 09 09:53:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths

 > OPERATIONS SUR LES MATRICES MATHÉMATIQUES

OPERATIONS SUR LES MATRICES MATHÉMATIQUES


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths Niveau :Initié Date de création :14/02/2004 Date de mise à jour :21/02/2004 12:43:45 Vu / téléchargé :17 982 / 1 763

Auteur : PhenXDesign

Ecrire un message privé
Site perso
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce logiciel effectue des opérations sourantes sur des matrices de taille quelconque :
-Somme
-Soustraction
-Determinant
-Transposée
-P roduit

L'interface permet d'échanger les 2 matrices, de remplir une matrice avec la matrice identité, de remplir la matrice désirée avec une valeur à donner, de remplir un des deux matrices avec la matrice résultat.

Je n'ai pas encore fini la partie deteminant, et je vais aussi mettre du gauss

Voila



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip COMPTEUR INTERNET POUR FORFAIT WANADOO NOCTAMBULE
Source avec Zip PETIT LOGICIEL DE GESTION DE COMPTE CHEQUE
Source avec Zip Source avec une capture AFFICHAGE DE SERIES DE FOURIER SIMPLES
Source avec Zip Source avec une capture AFFICHAGE DE PLANÈTES ET DE LEUR CENTRE DE GRAVITÉ
Source avec Zip Source avec une capture GESTION DE NOTES D'ÉLÉVES

 Sources de la même categorie

Source avec Zip Source avec une capture COLORATION DE GRAPHE par ynabid
Source avec Zip Source avec une capture LES FILTRES RLC SOUS DELPHI 7 par ccllee
Source avec Zip CALCUL D'APRES UN TEXTBOX par lololilizozo
Source avec Zip Source avec une capture BASE DE DONNÉES DE NATURES ALGÉBRIQUES EN C++ par BOLLOTD
Source avec Zip Source avec une capture Source .NET (Dotnet) CLSFRACTION, UNE CLASSE VB.NET GÉRANT LES FRACTIONS. par ghuysmans99

Commentaires et avis

Commentaire de Tellmarch le 14/02/2004 15:52:11

Rajoute aussi la fonction diagonaliser ou trigonaliser, ça peut etre interessant à programmer...Et la fonction inverser surtout!

Commentaire de PhenXDesign le 14/02/2004 16:45:30

diagonaliser, ça veut dire mettre la matrice en forme de triangle dont l'hypothenuse est la diagonale ?
que veut dire trigonaliser ?
et inverser, c'est quelle operation ? A exposant -1 ?

je viens juste d'apprendre les matrices, alors excuse moi de pas avoir tout ça :-)

Commentaire de Tellmarch le 14/02/2004 21:24:03

Diagonaliser, c'est mettre la matrice sous une forme diagonale dans une base adaptée (ce n'est pas toujours possible),
trigonaliser c'est la mettre sous la forme triangulaire supérieure (c'est toujours possible dans C)
et l'inverse de A c'est la matrice B si elle existe telle que A*B=Id (matrice identité).
Mais si tu viens juste de voir les matrices, ton programme sera déja assez complet quand tu aura programmé le calcul du determinant :)

Commentaire de PhenXDesign le 14/02/2004 21:31:30

ouais, c 'est bien ce ke je pensais, pour l'inverse ...
mais je crois que pour trouver l'inverse d'une matrice carrée avec un determinant non nul, il faut resoudre n² equation a n inconnues où n est le nombre de lignes, ce qui est pluto difficile ^^
ensuite, avec le trinagle, on peut resoudre des systemes de n equetions a n inconnues : Gauss
ce qui est bie  pratique, mais deja, il faut que j'arrive a faire le produit de 2 matrices, je sais le faire sur papier, mais en vb, j'ai un pti trou, je vais reessayer

Commentaire de PhenXDesign le 14/02/2004 22:46:52

c'est bon, j'ai resolu le petit probleme de produit !

Commentaire de Vb Lover le 15/02/2004 12:30:01

Et encore une source pour faire joujou avec les matrices !
Bon, d'accord, pour l'instant ta source se démarque un peu des autres, parce que tu mises sur l'interface.

Mais pour la programmation mathématique, je te propose de regarder les autres sources (en particulier http://www.vbfrance.com/code.aspx?ID=18276 pour ne pas faire de pub), ça te donnera des idées pour inverser les matrices ou calculer le déterminant...

Commentaire de PhenXDesign le 15/02/2004 15:30:43

merci !
je l'ai deja telechargée, et c une mine d'or, a part que c'est assez compliqué, mais je vais m'y pencher serieusement !

Commentaire de kimmelf2 le 16/02/2004 00:11:35

alors si je me souviens bien : l'inverse d'une matrice est egale a la transposee de la matrice de cofacteurs divisee par le determinant de A

donc
-1- besoin du determinant de A (c'est en cours)
-2- besoin de la transposition (ca tu l'as)
-3- la matrice des cofacteurs  .... la c'est la bonne question :-)

1erement : c'est quoi un cofacteur ?
supposons la matrice A :
a11 a12 a13
a21 a22 a23
a31 a32 a33

le cofacteur de a11, c'est le determinant de la sous matrice a22,a23,a32,a33
le cofacteur de a12, c'est le determinant de la sous matrice a21,a23,a31,a33 ....

en fait , qd on calcul le cofacteur pr rapot 1terme, on supprime la ligne et la colonne de ce terme, et on calcule le determinant de ce qui reste

la matrice des cofacteurs .... ben c'est la ise en matrice de tous les cofacteurs EN "CHANGEANT LE SIGNE 1 FOIS SUR 2" ...
cofact(A) =
[cofact(a11) , -cofact(a12), cofact(a13)]
[-cofact(a21) .....]

au final, ton inversion de matrice deviens : (pour A 3*3)
-1- calcul de det(A)
-2- calcul des 9 cofacteurs, et mise sous forme matricielle (attention a changer les signes de cofact(a12), cofact(a21), cofact(a23), cofact(a32))
-3- transposition
-4- diviser par det(A)

ex : A =
[1 1 2]
[1 5 2]
[-2 3 1]

-1- det(A) = 20

-2- cofact(A) =
[-1 -(+5) 13]
[-(-5) 5 -(+5)]
[-8 (0) 4]
j'ai fais apparaitre les changements de signes en mettant les valeurs des cofacteurs entre parentheses

-3- trans(cofact(A)) =
[-1 5 -8]
[-5 5 0]
[13 -5 4]

-4 tans(cofact(A)) / det(A) =
[-0.05 0.25 -0.4]
[-0.25 0.25 0]
[0.65 -0.25 0.2]
ce qui est egal (d'apres ma calculatrice) a A exp -1 ...

Commentaire de Tellmarch le 16/02/2004 12:20:06

C'est la méthode la moins économique pour calculer l'inverse d'une matrice ça... Bcp plus rapide en résolvant un système n équations n inconnues par Gauss.

Commentaire de kimmelf2 le 17/02/2004 23:33:05

me souviens plus :-(

c'est loin le cours sur les matrices !!!

si tu peux faire un petit rappel ... ;-)

a l'occasion, je cherche aussi a calculer l'exponenciele d'une matrice, si si ca existe j'te jure :-)

Commentaire de Vb Lover le 18/02/2004 11:45:55

Sans faire un cours trop pédant :

Définition de l'exponentielle :
exp(A) = 1 + A + A^2 / 2! + A^3 / 3! + ...
En général, on utilise A comme un nombre réel, et on utilise l'équivalent de l'exponentielle comme exp(A) = 2.71^A

Mais A peut être une matrice ! d'où l'utilisation de la première définition, parce qu'on sait additionner et multiplier des matrices.

Maintenant, y'a un problème : il faut faire une somme infinie.
Ce genre de problème, on peut souvent le faire à la main.
Pour ce faire, on diagonalise la matrice, et comme ça la puissance d'une matrice se réduit à la puissance des termes diagonaux, puis on somme les termes et puis on "voit" souvent apparaître des exponentielles à l'intérieur de la matrice.

Pour l'exponentielle d'une matrice, version informatique :
1) y'a pas besoin de diagonaliser, parce que l'ordinateur est rapide pour multiplier des matrices quelconques !
2) tu calcules la matrice A*A (tu la gardes en mémoire) et tu l'additionnes avec la matrice Id + A, en n'oubliant pas de diviser par 2 factorielle
3) tu calcules la matrice suivante simplement par :
  A^(n+1) = A^n * A (avec A^n gardée en mémoire)
  (n+1) ! = n! * (n+1)  (n! aussi gardé en mémoire)
4) tu sommes le tout, et puis il faut bien que tu t'arrêtes une fois. Pour ça, tu peux par exemple comparer la dernière matrice obtenue avec l'avant dernière (en les soustrayant par exemple) et puis faire la somme des valeurs absolues des éléments de ta matrice, et t'arrêter si cette somme est petite.
5) ne pas oublier de donner un compteur maximum, parce que certaines matrices ne convergent pas !

Enfin bon courage.

Une dernière remarque : si tu t'intéresse vraiment à programmer des opérations sur des matrices, soit tu prends un bon livre de maths et tu regardes les bons algorithmes, soit tu surfes sur ce site et tu t'aperçois qu'il y a tout plein de programmes bien expliqués qui utilisent ces différents algorithmes !

Commentaire de kimmelf2 le 18/02/2004 23:10:55

j'avais pas pense a la mise sous forme de developpement limite ...

perso, je suis quasiment obligé de passer par la diagonalisation car c'est pour appliquer a de la modelisation de composants electroniques.

faudra que je trouve un cours/tuto/bouquin la dessus ...

si tu connais un bon site qui trate des maths et des matrices ...

Commentaire de PhenXDesign le 20/02/2004 23:29:47

c'est bon mon prof de maths a fini le cours sur les matrices !
il m'a meme donné des formules pour tout ça
j'ai completement remodelé la source, mais pas encore mis gauss et tout ça, je le fais ce weekend

Commentaire de ghitaik le 02/11/2004 01:06:01

desolee, mais j'ai besoin d'un produit de 2 Msf(car j'ai declare ma matrice comme etant un msflexgried) pas 2 tableaux,c'est comme ca que j'ai debute mon projet et j'ai trouve du mal pour utiliser votre code dans mon application.si c'est possible fait le pour moi+transpose.merci d'avance

Commentaire de poliZ le 05/12/2005 18:46:37

Ton programme m'intéresse beaucoup, j'avoue que cette demande peut paraitre osée mais je compte sur les apitoiments d'un informaticien face à une débutante en VB!!!
si tu pouvais me l'envoyer à paulinerobert@wanadoo.fr je t'en serai super reconnaissante !
Merci beaucoup...
Pauline

Commentaire de Tellmarch le 05/12/2005 21:10:35

euh le zip est disponible, qu'est ce que tu voudrais qu'il t'envoie exactement?

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales