Question

Je travaille sur un projet (C # et .NET Framework) qui me demande de résoudre certaines équations aux dérivées partielles. Y a-t-il des bibliothèques spécifiques basées sur .NET Framework que je pouvais voir et faire mon travail plus simple?

J'ai travaillé avec Matlab et la résolution d'équations aux dérivées partielles y est très simple. Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Vous pouvez résoudre le problème dans MATLAB et utiliser le compilateur + Matlab < a href = "http://www.mathworks.co.uk/products/netbuilder/" rel = "nofollow noreferrer"> Builder boîte à outils NE pour créer un ensemble de .NET qui relie au reste de votre application.

Autres conseils

dépend de PDEs vous voulez résoudre et comment vous voulez les approcher.

Chaque approche que je sache, il faudra l'algèbre linéaire. Vous voulez trouver un bon paquet de matrice pour .NET, le mieux que vous pouvez trouver, qui peut gérer efficacement matricies clairsemés.

elliptique linéaire (diffusion à l'état stable), parabolique (diffusion transitoire), et les systèmes hyperboliques (F = MA) dynamiques nécessitent des approches légèrement différentes.

Les trois de ces équations aux dérivées partielles peuvent utiliser des différences finies classique, éléments finis élément (pondérée résiduelle), ou à la limite (fonctions de Green) pour créer la matrice du système que vous souhaitez résoudre. PDEs générales non linéaires sont probablement mieux attaqués en utilisant une technique résiduelle de l'élément / pondération finie.

Mais les fichiers PDF paraboliques et hyperboliques se transformeront en ensembles couplés de EDO une fois que vous les discrétisation. Vous devez faire une intégration transitoire pour résoudre de façon répétée l'évolution temporelle. EDO paraboliques sont du premier ordre dans le temps; EDO hyperboliques sont du deuxième ordre dans le temps.

J'apprends à propos de CUDA et NVIDIA. Vous voudrez peut-être se pencher sur les liaisons CUDA pour votre langue.

Tous ces sujets sont grands à eux-mêmes. S'il vous plaît Google pour certaines sources, car il est impossible de donner plus d'un bref aperçu ici.

Mise à jour: Je suis récemment devenu conscient de la Fondation Microsoft Solver . Je ne l'ai pas regardé en moi-même, mais peut-être que ce serait utile pour les développeurs C # dans la résolution de ce problème.

Une autre suggestion est AlgLib . J'aime cela parce que contrairement à des bibliothèques complètes où vous devez trouver ce dont vous avez besoin, AlgLib a tous les algoritms séparés, et souvent offerts en plusieurs langues (y compris C #, dans la plupart / tous les cas). En ce qui concerne le calcul AlgLib couvre:

        Euler's method
        Runge-Kutta method
        Runge-Kutta method for a system of ODEs
        Bulirsch-Stoer method for a system of ODEs

Un mot d'avertissement, mais ... après vérification que ces algorithmes à AlgLib, je note qu'ils ne sont pas pris en charge plus (par AlgLib), parce que leurs licences peuvent être imcompatible avec un permis de AlgLib (qui est GPL, je crois).

Consultez http://www.mathdotnet.com/About.aspx , il peut avoir ce que vous avez besoin. Cependant, je pense que vous devriez obtenir la meilleure bibliothèque pour vous besoins de l'application et l'interface puis à votre application .net ..

Vous constaterez probablement que des choses comme celle-ci (sauf si vous utilisez pour apprendre soit la langue ou les mathématiques), il existe un certain nombre de bibliothèques pré en conserve.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top