Le pub des programmeurs
- 1 927 réponses
- 117 participants
- 124 092 vues
- 130 followers
Anonyme
miles1981
En fait, ce que je fais généralement, c'est passer par une résolution symbolique (avec SymPy) et j'implémente ça. En général, il faut multiplier le résultat par le déterminant de la matrice pour simplifier les calculs, mais c'est rapide. Et je compare avec utiliser un solve explicite, et c'est l'un ou l'autre qui sera plus rapide.
Audio Toolkit: http://www.audio-tk.com/
EraTom
Citation de EraTom :
Lorsque l'on a une équation du type A*X = Y connaissant A et Y on peut calculer X sans expliciter l'inverse de A (en procédant par substitution, pour prendre un algo simple).
Ou tu peux aussi faire une facto LU, sur de grosses matrices.
Pour les grosses matrices creuses, la factorisation est procédée par bloc pour éviter les calculs inutiles ; l'arbre d'élimination est construit de manière à tracer les zones qui contiennent des valeurs non-nulles et celles qui ne contiennent que des 0 pour parcourir les blocs rapidement, ou pour paralléliser les factorisations de blocs, etc.
En fait, ce que je fais généralement, c'est passer par une résolution symbolique (avec SymPy) et j'implémente ça. En général, il faut multiplier le résultat par le déterminant de la matrice pour simplifier les calculs, mais c'est rapide.
Mais du coup, est-ce un problème d'avoir une grosse matrice creuse avec la MNA ?
Quitte à calculer formellement la matrice inverse autant calculer formellement le produit par cette matrice.
Purée je repense à l'une de mes simu de montage... C'est ce que j'aurais dû faire !
[ Dernière édition du message le 06/04/2017 à 07:25:06 ]
Wolfen
Oui en général quand on a des matrices à inverser, il est plus intéressant d'utiliser des algos de résolution de système d'équations plutôt que d'avoir à calculer explicitement l'inverse. Après c'est vraiment utile si la matrice en question a son contenu ou sa structure qui change en temps-réel. Et ça peut être optimisé par d'autres algos si la matrice est creuse d'où ma remarque. Enfin, dans le cas où rien de tout ça ne change en temps réel, on peut aussi faire le calcul en symbolique une fois pour toutes pour simplifier encore plus les calculs...
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
miles1981
Mais du coup, est-ce un problème d'avoir une grosse matrice creuse avec la MNA ?
Quitte à calculer formellement la matrice inverse autant calculer formellement le produit par cette matrice.
Tout dépend ce qu'on appelle grosse ! La plus grosse que j'ai pu utiliser pour l'instant donne le code suivant : https://github.com/mbrucher/AudioTK/blob/master/ATK/Preamplifier/FollowerTransistorClassAFilter.cpp#L114
C'est déjà imbitable. Je garde la multiplication matricielle pour laisser Eigen se débrouiller efficacement. J'ai constaté que parfois quand j'essayais d'être plus malin que lui, j'étais plus lent. Du coup, pour une petit matrice, je garde cette solution là, même si par la suite, pour des schémas plus gros (par ex des push-pull ou des ampli miroir), je passerai définitivement par le calcul formel du produit final.
Audio Toolkit: http://www.audio-tk.com/
miles1981
Bon courage alors miles
Bon, on va commencer alors : https://github.com/mbrucher/AudioTK-book
LA grande question est de savoir si je vais avoir la motivation d'aller jusqu'au bout, si j'ai bien couvert ce qu'il faut couvrir et correctement surtout.
Audio Toolkit: http://www.audio-tk.com/
Apleton
J'aurais adoré participer à un workshop Juce, mais je suis basé à Bruxelles.
Vous avez pas envie de délocaliser dans la capitale de l'Europe ?
[ Dernière édition du message le 08/04/2017 à 11:59:04 ]
miles1981
Audio Toolkit: http://www.audio-tk.com/
J-Luc
Tadaaaaa on sait piloter les E/S (I2C, GPIO,...) du Raspberry Pi sous Linux avec Mono en C# (langage de haut niveau).
A nous les applications IIOT ou d'automatisme à pas cher... et surtout compréhensibles et surtout dans un langage un peu chiadé.
Il y a deux moyens d’oublier les tracas de la vie : la musique et les chats.
Albert Schweitzer
miles1981
Je viens d'y mettre un premier jet de premier chapitre/intro (dans les releases), vous pouvez commenter en mettant un commentaire en ouvrant un ticket (je pense qu'un ticket par chapitre peut êytre pas mal à la fin).
https://github.com/mbrucher/AudioTK-book/releases/tag/0.0.1
Audio Toolkit: http://www.audio-tk.com/
Wolfen
Développeur de Musical Entropy | Nouveau plug-in freeware, The Great Escape | Soundcloud
- < Liste des sujets
- Charte