cherche lib de resolution de systemes d'equations

cherche lib de resolution de systemes d'equations - C - Programmation

Marsh Posté le 13-07-2004 à 21:01:54    

Bonjour
 
Je recherche une lib en C qui permette de résoudre par une méthode numérique des systèmes d'équations non linéaires.
Dans mon cas j'ai un systeme non linéaire de 8 equations à 8 inconnues.
 
A défaut d'une lib toute faite, je me contenterais de la description d'un algo de resolution, et je me taperais le codage du truc.
 
Merci d'avance

Reply

Marsh Posté le 13-07-2004 à 21:01:54   

Reply

Marsh Posté le 13-07-2004 à 21:24:55    

bin faut diagonaliser la matrice en trouvant la matrice de changement de base
apres ca le fait tout seul
et pour la diagonaliser bin je sais que clapack le fait (note qu il resoud peut etre le probleme tout seul..)
et sinon  ici  
tu devrais trouver le detail des algos...
http://www.library.cornell.edu/nr/bookcpdf.html
mais c est en anglais...
 
romain

Reply

Marsh Posté le 13-07-2004 à 21:39:34    

le gros probleme c'est que c'est des equations non linéaires donc pas de matrice ........
 
ca serait trop facile !

Reply

Marsh Posté le 13-07-2004 à 22:13:05    

oups desole, j avaispas vu, alors pour les non lineaires, j ai rien de precis cependant il y a bien un chapitre (9) dans le lien que j ai donne, et puis sinon il y a les classique methode de newton runge kutta (orthographe approximative...)
mais je crois que pour les nons lineaire il y a grosso modo une methode par equation (je veux dire une methode optimum).
donc faut peut etre plus demander ca sur le forum algo..
mais regarde le lien je pense que tu trouveras au moins des idees
 
romain

Reply

Marsh Posté le 13-07-2004 à 22:24:32    

Il n'y a pas de méthode générale efficace à tous les coups. Le choix de la méthode de résolution numérique risque de dépendre fortement de ton système d'équations et est généralement très domaine-spécifique.
Peut-être que si tu les donnes (et au moins le domaine d'application), on pourra te pointer vers des liens, mais avec aussi peu d'infos, difficile de te donner mieux que des noms génériques (méthode du gradient, Newton, mais en N dimensions, je ne sais pas comment implémenter ça), qui ne sont pas forcément les plus adaptés.


Message édité par el muchacho le 13-07-2004 à 22:25:37

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 13-07-2004 à 23:22:14    

effactivement y'a des trucs qui ont l'air interessants dans le lien que tu as donné ; je vais regarder ca de plus pres

Reply

Marsh Posté le 15-07-2004 à 04:08:59    

Ouais je crois que si on pouvait résoudre n'importe quelle équation non linéaire ca se saurait.

Reply

Marsh Posté le 15-07-2004 à 17:40:12    

bin si toutes les equations non lineaire sont approchable numeriquement, enfin suffit qu elles obeissent a deux trois criteres qui sont franchement pas du luxe.
apres ca depend de la precision que tu veux et du temps de la puissance de calcul que tu possede et de la taille des intervals,
mais je pense vraiment que pour chaque equation non lineaire qu on donne on peut trouver une solution a peu pres bonne si les fonctions sont a peu pres regulieres
 
romain

Reply

Marsh Posté le 15-07-2004 à 18:40:19    

Je me posais une question. Si on possède une license de Matlab, n'est il pas possible d'utiliser ses librairies ? Il doit exister un moyen, vu que j'ai déjà vu ca en Java (programme nécéssitant une install préalable de Matlab)
 
Mathématica pourrait etre une piste aussi, voir si on ne peut pas utiliser certaines de ses lib et comment.
 
A regarder, donc.

Reply

Marsh Posté le 16-07-2004 à 00:13:09    

perettiromain a écrit :

bin faut diagonaliser la matrice en trouvant la matrice de changement de base
apres ca le fait tout seul
et pour la diagonaliser bin je sais que clapack le fait (note qu il resoud peut etre le probleme tout seul..)
et sinon  ici  
tu devrais trouver le detail des algos...
http://www.library.cornell.edu/nr/bookcpdf.html
mais c est en anglais...
 
romain


 
Meme si c'était linéaire qui te dit que c'est diagonalisable?

Reply

Marsh Posté le 16-07-2004 à 00:13:09   

Reply

Marsh Posté le 16-07-2004 à 09:24:12    

les éléments finis ça ne marche pas pour des trucs comme ça?

Reply

Marsh Posté le 16-07-2004 à 09:44:34    

oliv5 a écrit :

Je me posais une question. Si on possède une license de Matlab, n'est il pas possible d'utiliser ses librairies ? Il doit exister un moyen, vu que j'ai déjà vu ca en Java (programme nécéssitant une install préalable de Matlab)


Si c'est possible. Y'a une interface Java et C/FORTRAN.
C'est aussi faisable avec Scilab :
http://www.saphir-control.fr/artic [...] 6/art.html
Y'a R aussi, qui dispose d'un server COM (ActiveX).
http://www.r-project.org


Message édité par HelloWorld le 16-07-2004 à 09:44:45

---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 16-07-2004 à 09:54:37    

moktar1er a écrit :

les éléments finis ça ne marche pas pour des trucs comme ça?


 
Si, mais d'une part, un code d'éléments finis bien fiat, c'est pas simple, d'autre part, ça ne marche pas avec 8 dimensions (trop de noeuds). Je soupçonne que dans son problème, on peut réduire le nombre de variables indépendantes, ou alors il est mal posé, ou alors il ne faut pas étudier le cas général mais des cas particuliers permettant de réduire ce nombre.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed