Domanda

Sto lavorando su un progetto (C # e .NET Framework), che mi obbliga a risolvere alcune equazioni differenziali alle derivate parziali. Ci sono delle librerie specifiche basate su .NET Framework che ho potuto vedere e fare il mio lavoro più semplice?

Ho lavorato con MATLAB e soluzione di equazioni differenziali parziali è molto semplice lì. Come posso risolvere questo problema?

È stato utile?

Soluzione

Si potrebbe risolvere il problema in MATLAB e utilizzare il MATLAB Compiler + < a href = "http://www.mathworks.co.uk/products/netbuilder/" rel = "nofollow noreferrer"> Builder NE toolbox per creare un assembly .NET che collega al resto della vostra applicazione.

Altri suggerimenti

dipende da quale PDE si desidera risolvere e come si desidera avvicinarsi a loro.

Ogni approccio che io sappia richiederà algebra lineare. Avrai voglia di trovare un buon pacchetto matrice per NET, il meglio che si può trovare, uno in grado di gestire in modo efficiente da matrici sparse.

ellittico lineare (costante diffusione allo stato), parabolica (diffusione transitoria) e PDE iperboliche (F = ma dinamici) richiedono approcci leggermente diversi.

Tutti e tre questi PDE può usare differenza classica finiti, elementi finiti (ponderata residua), o elementi di contorno (funzioni di Green) per creare la matrice del sistema si desidera risolvere. PDE generali non lineari sono probabilmente meglio attaccati utilizzando un'elementi finiti / ponderata tecnica residua.

Ma i PDF paraboliche ed iperboliche si trasformerà in set accoppiati di equazioni differenziali una volta che li discretizzare. Devi fare integrazione transitoria ripetutamente risolvere l'evoluzione temporale. ODE parabolici sono primo ordine nel tempo; ODE iperboliche sono secondo ordine in tempo.

Sto imparando su CUDA e NVIDIA. Si potrebbe desiderare di guardare in attacchi CUDA per la vostra lingua.

Tutti questi sono grandi argomenti a se stessi. Si prega di Google per alcune fonti, perché non è possibile dare più di una visione superficiale qui.

UPDATE: Sono diventato da poco a conoscenza del Risolutore di Microsoft Foundation . Non ho guardato dentro me stesso, ma forse sarebbe utile per gli sviluppatori C # nella soluzione di questo problema.

Un altro suggerimento è AlgLib . Mi piace questo perché a differenza di librerie complete in cui bisogna trovare ciò che serve, AlgLib ha tutte le algoritmi separati, e spesso offerti in diverse lingue (tra cui C #, nella maggior parte dei / tutti i casi). Per quanto riguarda il calcolo AlgLib comprende:

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

Una parola di cautela, però ... al momento del check questi algoritmo a AlgLib, ho notato che non erano più supportati (da AlgLib), perché le loro licenze possono essere imcompatible con licenza di AlgLib (che è GPL, credo).

http://www.mathdotnet.com/About.aspx , è possono avere quello che ti serve. Tuttavia ho il sospetto si dovrebbe ottenere il miglior biblioteca per voi requisiti di applicazione, e quindi interfacciarsi alla candidatura .net ..

Probabilmente troverete che con le cose come questo (eccetto dove si utilizza per imparare sia la lingua o la matematica) ci sono una serie di pre librerie in scatola.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top