Bonjour à tous,
Je suis vraiment embêté actuellement avec des équations à résoudre.
Les équations sont très très longue avec 5 inconnus, le bute etant de trouvé le résultat le plus petit possible.
Je suis sur que je prend pas la bonne approche pour le moment, et j'avoue que les Math, matrice, sont loin derrière moi, n'aillant pas pratiqué.
Le but pour moi c'est de transcrire ce que notre client fait dans Excel, vers une solution logiciel pour automatiser tout sa, car autour il y a des mesures qui alimente les données ainsi que de nombreux paramètres.
Pour le moment j'ai utilisé le Solver de Microsoft, (Microsoft Solver Foundation, MSF), mais ce n'est plus maintenue par big M depuis 2003, et j'arrive a une limitation technique apparement, car parfois cela marche et d'autre fois j'ai des valeurs pas du tout optimisées.
Dans MSF j'utilise l'objet Term que je transmet au solver. Dans ce Term, j'ai la totalité de la formule qui est reconstruite, en gros chaque cellule Excel que j'ai reproduit dans mon code, (formule Excel) cela va de simple M25=M5/Inconnu2 à des formules un peu plus complète, M45 = 4*PI * 51,5² + EXP(M25/Inconnu1) etc etc. Malheureusement il y a aussi des conditions qui font que la formule change. J'ai aussi des recherche de maximum ou des moyennes qui contiennent les inconnues.
Dans les Term, les valeurs avec décimal sont retranscrite en division., il doit prendre que les nombre entier, ce qui allonge la formule, mais pour vous donner une idée, la formule compète fait plus de 45000 caractères.
Je ne sais pas du tout comment aborder cette démarche dans mon code.
MSF ne donnant pas toujours des résultats optimisé, j'ai en plus créée une passerelle avec Excel, je lui envoie donc tous les paramètres puis exécute la macro qui lance les 6 solvers, ainsi, cela fonctionne, a voir maintenant si le client accepte cette condition. Mais j'aimerais trouvé d'autre solution au cas ou..
Est-ce que ce genre de solution MATLAB, pourrait résoudre ces équations ?
Et si oui, est-ce que je peux communiquer avec C#.
Merci
Partager