calcul matriciel en C - C - Programmation
Marsh Posté le 06-05-2005 à 07:49:53
sam15 a écrit : afin d'implenter une methode de calcul j'ai besoin de calculer les valeurs propres d'une certaine matrice. arrivée à cette étape je voulais savoir si c'était trop lourd de le faire (en C). et s'il n'y a pas un moyen rapide pour le faire . |
Quelle est la question sur le langage C ?
Je ne vois pas le code avec lequel tu as des problèmes.
Moyen rapide... genre "j'attend qu'un pigeon me file du code tout fait", c'est bien ça ?
Marsh Posté le 06-05-2005 à 13:24:39
Bonjour
je suis en phase de choix d'une methode de calcul appropriée à un problème de minimisation celle en question est l'approximation des moindres carrés. cette dernière exige un calcul de valeurs propres.
je voulais juste savoir si au niveau implentation en C c lourd ou pas. Si oui je vais basculer sur une autre méthode(gradient, complex..).
je ne cherche pas un code tout près, mais juste un conseil pour éviter de perdre du temps.
Marsh Posté le 06-05-2005 à 14:22:41
sam15 a écrit : Bonjour |
Le C possède l'avantage d'être très rapide car il ne fait que ce qu'on lui demande (il ne vérifie pas, par exemple dans un tableau, si l'indice demandé correspond bien à un indice cohérent par rapport au nombre d'éléments du tableau).
En revanche, tu es obligé de tout lui dire. Chaque fois que tu as besoin de mémoire, faut l'allouer, etc etc. Ca peut être pémalisant dans les développements rapides.
Maintenant, si tu choisis le C, alors je te conseillerai d'aller directement vers le C++. Tu auras à ta disposition la vitesse du C associé à la puissance de l'objet.
Tu pourras par exemple déclarer ton objet "matrice" et lui associer des méthodes spécifiques permettant de calculer ce dont tu as besoin, voire même redéfinir des opérateurs simples pour ta matrice. Ensuite, tu n'as plus qu'à créer tes variables de type "matrice" (par exemple "t_matrice m1,m2,m3" et leur appliquer la méthode que tu veux (par exemple "m3=m1+m2" )
Marsh Posté le 06-05-2005 à 23:23:23
Sve@r a écrit : Maintenant, si tu choisis le C, alors je te conseillerai d'aller directement vers le C++. Tu auras à ta disposition la vitesse du C associé à la puissance de l'objet. |
Le C est inadapté au numérique, c'est clair. En revanche, la "puissance de l'objet" est commode, mais est pénalisante au niveau performance si on n'utilise pas conjointement la généricité et des ruses du genre expressions templates, CRTP, ...
Marsh Posté le 07-05-2005 à 00:03:56
d'ailleur il y a des bibliothèque qui gère tout ca, comme blitz++ (tres complete) qui est une tres serieuse (et meme meilleur ?) alternative aux derniers fortran
Marsh Posté le 07-05-2005 à 00:18:56
boost::numeric::ublas est plus activement maintenue !
et elle pète le fortran aussi \o/
Marsh Posté le 07-05-2005 à 00:21:16
de toute facon ya de quoi, rien que pour les expressions template fortran est out (faudra voir comment il va evoluer)
Marsh Posté le 07-05-2005 à 00:24:25
Il ne faut jamais sous estimer son ennemi le fortran, ça perturbe le jugement
Marsh Posté le 07-05-2005 à 00:32:54
ouai, fortran ca a du bon, c'est pour ca je dis de voir comment ca va evoluer car les mecs il veulent faire un truc monstre
Marsh Posté le 06-05-2005 à 04:05:31
bonjour tout le monde
afin d'implenter une methode de calcul j'ai besoin de calculer les valeurs propres d'une certaine matrice. arrivée à cette étape je voulais savoir si c'était trop lourd de le faire (en C). et s'il n'y a pas un moyen rapide pour le faire .
Merci !