Saya seorang pemula dengan FE. Aplikasi saya adalah harga derivatif keuangan di mana ruang adalah lima dimensi. Jadi, menambahkan waktu, masalahnya ada enam dimensi.
Saya mencoba untuk melihat-lihat (Fenics, escript, deal.II, ...), tetapi pemahaman saya adalah bahwa perangkat lunak tersebut terbatas pada 3 + 1 (ruang 3d + waktu 1d). Apakah ini benar?
Bahasa target saya adalah Python atau C ++.
Deskripsi masalah saya,
saya ingin memberi harga produk investasi di mana, setiap bulan, investor memiliki kebebasan untuk berinvestasi kembali atau tidak. Saya ingin melakukannya dengan volatilitas stokastik, suku bunga stokastik, dan mortalitas stokastik.
PDE stokastik terlihat seperti ini
Di mana adalah konstanta tergantung waktu yang terkait dengan harga saham , dan μ S t SB S t
dStdσtdrtdqt= μStdt+ σt--√dBSt= μσtdt + νσtdBσt= μrtdt + νrtdBrt= μqtdt + νqtdBqt(persediaan)(keriangan)(suku bunga)(kematian)
μStSBStadalah proses Levy independen yang menciptakan kebisingan di harga saham . Demikian pula untuk kuantitas lainnya: adalah kuantitas yang tergantung waktu terkait dengan volatilitas .
Biarkan menunjukkan investasi yang dapat diterima pada waktu . Masalah kontrol stokastik terlihat seperti
The PDE di atas terus menerus, tetapi nilai dari produk diselesaikan hanya pada yang telah ditetapkan -times, mengatakan setiap bulan.
ν σ t σ C τ τ V τ = m aSνσtσCττV τ τVτ= m a x { c ∈ Cτ: P( mati ) E( rτf( Sτ+ 1) ) + P( a l i v e ) E( rτVτ+ 1) } .
Vττ
Saya kira Monte-Carlo selalu bisa dengan kasar memaksa masalah saya, tetapi sangat lambat.
Bentuk deterministik dari PDE stokastik
Untuk bagian ini, asumsikan bahwa nilai opsi
ditentukan pada waktu alami , bukan yang -times, dengan investasi pada waktu .
Tentukan operator diferensial
mana konstanta bergantung waktu
V: ( t , St, σt, rt, qt, ct) ↦ ( t , Vt) ,
tτctt {μ S t ,…}∂tVt+(Lt+L S t +L σ t +L r t +L q t )Vt=0,τLtLStLrtLσtLqt=∂r,S+∂r,σ+∂σ,S=σt∂S+rt∂S,S=∂r+∂r,r=∂σ+∂σ,σ=∂q+∂q,q
{μSt,…}diabaikan. PDE deterministik kemudian
yang dapat disesuaikan dengan masalah kontrol optimal pada -times .
∂tVt+(Lt+LSt+Lσt+Lrt+Lqt)Vt=0,
τ
Jawaban:
Dengan asumsi Anda ingin menyelesaikan persamaan Black-Scholes atau varian pada portofolio 5 aset, maka Anda memang memiliki 5 spasial plus satu dimensi waktu. Saya tidak tahu paket FEM yang bisa melakukan itu dari atas kepala saya (kesepakatan. Saya tidak bisa dengan mudah melakukannya, tetapi lihat di bawah) tetapi saya pikir saya ingat bahwa beberapa orang dari kelompok Chris Schwab di ETH Zurich menyelesaikan masalah seperti itu. masalah menggunakan jerat jarang. Anda mungkin beruntung melihat-lihat publikasi miliknya.
Ada persamaan lain yang memiliki dimensi ekstra. Salah satu contohnya adalah persamaan transfer radiatif yang memiliki dimensi energi 3 ruang + 1 waktu + 2 sudut + 1. Cara ini biasanya dipecahkan adalah untuk mendiskritisasi ruang 3 dimensi seperti biasa, kemudian mendiskritasikan dimensi sudut dan energi pada jerat 2 dan 1 dimensi yang terpisah dan pada setiap titik nodal mesh spasial hanya memiliki banyak variabel (masing-masing untuk setiap node dari jala sudut kali jumlah node dalam jala energi). Kami menggunakan skema ini dalam implementasi deal.II berhasil. Ini masuk akal untuk persamaan transfer radiatif, dan mungkin ditiru untuk persamaan Anda bahkan jika itu tidak alami di sana.
sumber
DUNE, Lingkungan Numerik Terdistribusi dan Terpadu http://www.dune-project.org , menampilkan beberapa kisi terstruktur dimensi sewenang-wenang (SGrid, dan Yaspgrid), lihat fitur DUNE . Saat ini, ada cabang yang mengubah yaspgrid, salah satu kisi di atas, menjadi kisi produk tensor, jika itu menarik. Sejak rilis 2.0 (yang sekarang adalah 2.2.1, dan 2.3 akan segera datang) kami memang memiliki elemen referensi untuk berbagai metode elemen hingga yang mendukung dimensi arbitrer. Oleh karena itu harus dimungkinkan mengatur diskritisasi elemen hingga dari dimensi sewenang-wenang dengan misalnya modul disunisasi dune-pdelab . Meskipun ini mungkin tidak sering diuji.
Karena itu, masih ada kutukan dimensi seperti yang ditunjukkan Wolfgang.
Untuk informasi lebih lanjut saya merujuk Anda ke milis DUNE .
sumber
Ok, jadi sepertinya yang Anda miliki adalah satu set ODE yang digabungkan, karena sejauh yang saya tahu, hanya ada turunan sehubungan dengan waktu, dan tidak ada turunan sehubungan dengan hal lain. Ada beberapa paket di luar sana untuk menyelesaikan sistem ODE dari dimensi arbitrer (Matlab memiliki hal-hal seperti
ode45
). Untuk Python, lihat pertanyaan ini untuk beberapa saran. Akhirnya, ada kode Fortran lama di netlib yang dapat dihubungkan dengan C ++ dengan mudah (kemudahan penggunaan adalah masalah lain). Mungkin ada alternatif yang lebih baik di luar sana karena sudah lama sejak saya melihat (orang lain harus berpadu).sumber