Esistono software ad elementi finiti che gestiscono più di cinque dimensioni?


10

Sono un principiante con FE. La mia applicazione è il prezzo dei derivati ​​finanziari in cui lo spazio è di cinque dimensioni. Quindi, aggiungendo tempo, il problema ha sei dimensioni.

Ho provato a guardarmi intorno (Fenics, escript, deal.II, ...), ma la mia comprensione è che quei software sono limitati a 3 + 1 (spazio 3d + 1d tempo). È corretto?

Il mio linguaggio di destinazione è Python o C ++.

Descrizione del mio problema
Vorrei valutare un prodotto di investimento in cui, ogni mese, l'investitore ha la libertà di reinvestire o meno. Vorrei farlo con volatilità stocastica, tasso di interesse stocastico e mortalità stocastica.
I PDE stocastici assomigliano a questo Doveμ S t è una costante dipendente dal tempo associata al prezzo delle azioniS, eB S t è un processo di prelievo indipendente che crea rumore nel prezzo delle azioniS. Analogamente per le altre quantità:ν σ t è una quantità dipendente dal tempo associata alla volatilitàσ. SiaCτdenota gli investimenti ammissibili al momentoτ

dSt=μtSdt+σtdBtS(stock)dσt=μtσdt+νtσdBtσ(volatility)drt=μtrdt+νtrdBtr(interest rate)dqt=μtqdt+νtqdBtq(mortality)
μtSSBtSSνtσσ
Cττ. Il problema del controllo stocastico appare come I PDE sopra indicati sono continui, ma il valore del prodotto V τ
Vτ=max{cCτ:P(death)E(rτf(Sτ+1))+P(alive)E(rτVτ+1)}.
Vτè risolto solo a tempi predefiniti , diciamo ogni mese.τ

Immagino che Monte-Carlo possa sempre forzare il mio problema, ma è molto lento.


V:(t,St,σt,rt,qt,ct)(t,Vt),
tτctt
Lt=r,S+r,σ+σ,SLtS=σtS+rtS,SLtr=r+r,rLtσ=σ+σ,σLtq=q+q,q
{μtS,}
tVt+(Lt+LtS+Ltσ+Ltr+Ltq)Vt=0,
τ

3
Sei sicuro di dover usare elementi finiti per questo problema? Sarebbe utile se riuscissi a descrivere un po 'di più il problema (in particolare il PDE che vuoi risolvere).
Victor Liu,

@Liu ho aggiunto maggiori dettagli. Ho pensato a FE perché MC è molto lento.

1
vpp

3
Penso che otterrai risposte migliori se pubblichi anche i PDE deterministici che risolverai. Potresti chiarire quali sono le variabili indipendenti? In questo momento, sembra che l'unica variabile indipendente sia il tempo. Stai risolvendo queste equazioni differenziali stocastiche usando espansioni polinomiali del caos, ed è per questo che avrai un sistema di equazioni differenziali deterministiche?
Geoff Oxberry,

1
Da un lato potresti affrontare le complicazioni dell'uso di FE in dimensioni moderate e la maledizione della dimensionalità, oppure puoi lavorare su metodi di accelerazione per MC o QMC migliore. Quest'ultimo mondo non è necessariamente peggio, in realtà è l'approccio di scelta nel mondo quant per molte ragioni, quindi fai attenzione a respingerlo così facilmente.
Quarzo,

Risposte:


8

Supponendo che tu voglia risolvere le equazioni di Black-Scholes o una variante su un portafoglio di 5 risorse, allora hai effettivamente 5 dimensioni spaziali più una dimensione temporale. Non conosco nessun pacchetto FEM in grado di farlo dalla mia testa (affare. Non posso prontamente farlo, ma vedi sotto) ma penso di ricordare che alcune persone del gruppo di Chris Schwab all'ETH di Zurigo hanno risolto tale problemi con l'utilizzo di mesh sparse. Potresti essere fortunato guardando le sue pubblicazioni.

Ci sono altre equazioni che hanno dimensioni extra. Un esempio è l'equazione del trasferimento radiativo che ha 3 spazio + 1 volta + 2 angolari + 1 dimensione energetica. Il modo in cui questo in genere viene risolto è discretizzare lo spazio tridimensionale come al solito, quindi discretizzare le dimensioni angolari ed energetiche su maglie bidimensionali e monodimensionali separate e in ciascun punto nodale della mesh spaziale hanno semplicemente molte variabili (una per ogni ciascun nodo della maglia angolare moltiplicato per il numero di nodi nella maglia di energia). Usiamo questo schema nelle implementazioni deal.II con successo. Questo ha senso per l'equazione del trasferimento radiativo e può essere emulata per la tua equazione anche se non è naturale lì.


5

DUNE, l'ambiente numerico distribuito e unificato http://www.dune-project.org , presenta alcune griglie strutturate di dimensione arbitraria (SGrid e Yaspgrid), vedi le caratteristiche di DUNE . Attualmente, esiste un ramo che trasforma yaspgrid, una delle griglie di cui sopra, in una griglia di prodotti tensore, se ciò è interessante. Dalla versione 2.0 (quella attuale è la 2.2.1 e la 2.3 è in arrivo) abbiamo elementi di riferimento per vari metodi agli elementi finiti che supportano dimensioni arbitrarie. Pertanto, dovrebbe essere possibile impostare discretizzazioni agli elementi finiti di dimensione arbitraria con, ad esempio, il modulo di disinfezione dune-pdelab . Anche se questo potrebbe non essere testato spesso.

Detto questo, c'è ancora la maledizione della dimensionalità, come ha sottolineato Wolfgang.

Per ulteriori informazioni vi rimando alle mailing list di DUNE .


0

Ok, quindi sembra che quello che hai sia un insieme accoppiato di ODE, dal momento che per quanto posso dire, ci sono solo derivati ​​rispetto al tempo e nessun derivato rispetto a qualsiasi altra cosa. Ci sono alcuni pacchetti là fuori per risolvere sistemi di ODE di dimensione arbitraria (Matlab ha roba simile ode45). Per Python, guarda questa domanda per alcuni suggerimenti. Infine, c'è un vecchio codice Fortran su netlib che può essere interfacciato con C ++ abbastanza facilmente (la facilità d'uso è un'altra cosa). Probabilmente ci sono alternative migliori là fuori da quando ho guardato (altri dovrebbero entrare).


1
Aggiungendo i PDE deterministici, vedo che la mia domanda non era chiara. Scusa e grazie per aver cercato di aiutare.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.