Frage

Ich arbeite an einem Projekt (C # und .NET Framework), die mir einige partielle Differentialgleichungen zu lösen erfordert. Gibt es spezifische Bibliotheken auf Basis von .NET Framework, die ich könnte meine Arbeit einfacher?

sehen und machen

Ich habe mit Matlab gearbeitet und partielle Differentialgleichungen lösen, ist es sehr einfach. Wie kann ich dieses Problem lösen?

War es hilfreich?

Lösung

Sie könnten das Problem in MATLAB lösen und die MATLAB Compiler + < a href = "http://www.mathworks.co.uk/products/netbuilder/" rel = "nofollow noreferrer"> Builder NE-Toolbox eine .NET-Assembly, die mit dem Rest der App verknüpft zu erstellen.

Andere Tipps

hängt von der PDEs Sie lösen wollen und wie Sie wollen, dass sie nähern.

Jeder Ansatz, den ich kenne, wird der linearen Algebra erfordern. Sie werden ein gutes Matrix-Paket für .NET finden wollen, das Beste, was Sie finden können, eine, die effizient spärlich Matrizes verarbeiten kann.

Linear elliptisch (steady state Diffusion), parabolisch (transiente Diffusion) und hyperbolisches (F = MA dynamisch) PDEs erfordern leicht unterschiedliche Ansätze.

Alle drei dieser PDEs können klassische Finite Differenzen, Finite-Elemente (gewichtete Rest) oder Begrenzungselement (Green-Funktionen) verwenden, um die System-Matrix zu erstellen, die Sie lösen möchten. Allgemeine nichtlineare PDEs sind wahrscheinlich am besten angegriffen eine Finite-Elemente / gewichtete Rest Technik.

Aber die parabolische und hyperbolische PDFs werden in gekoppelten Sätze von ODEs drehen, sobald Sie sie diskretisieren. Sie haben transiente Integration zu tun, um immer wieder die Zeitentwicklung lösen. Parabolic EUO ist erste Ordnung in der Zeit; hyperbolische ODEs sind zweite Ordnung in der Zeit.

Ich lerne über CUDA und NVIDIA. Sie könnten in CUDA-Bindings für Ihre Sprache suchen.

All dies sind große Themen zu sich selbst. Bitte Google für einige Quellen, weil es nicht möglich ist, hier mehr als ein flüchtiger Überblick zu geben.

UPDATE: Ich habe vor kurzem wurde bekannt, der Microsoft Solver Foundation . Ich habe nicht in sie sehe mich, aber vielleicht wäre es hilfreich sein, C # -Entwickler in der Lösung dieses Problems.

Ein weiterer Vorschlag ist AlgLib . Ich mag das, weil im Gegensatz zu umfangreichen Bibliotheken, in denen Sie finden müssen, was Sie brauchen, AlgLib hat alle Algorithmen, getrennt, und oft in mehreren Sprachen angeboten (einschließlich C #, in den meisten / alle Fälle). In Bezug auf Kalkül AlgLib umfasst:

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

Ein Wort der Vorsicht, aber ... auf diesen Algorithmus bei AlgLib Überprüfung, stellte ich fest, dass sie nicht mehr unterstützt wurden (durch AlgLib), weil ihre Lizenzen mit AlgLib Führerschein imcompatible sein können (die GPL ist, glaube ich).

Schauen Sie sich http://www.mathdotnet.com/About.aspx , es kann, was Sie brauchen. Allerdings vermute ich, sollten Sie die beste Bibliothek für Sie Anwendungsanforderungen erhalten, und Schnittstelle, die sie dann auf Ihre .net-Anwendung ..

Sie werden wahrscheinlich mit Dingen wie diese finden, dass (es sei denn, man entweder die Sprache oder die Mathematik zu lernen verwenden) gibt es eine Reihe von Pre Dosen-Bibliotheken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top