Saat ini saya menggunakan C dan beberapa FORTRAN untuk menyelesaikan sistem persamaan diferensial numerik.
Saya agak muak dengan kedua bahasa ini tetapi saya perlu memiliki beberapa (lebih) kode efisien ... Saya sedang berpikir untuk beralih ke OCaml.
Apakah itu layak?
Jawaban:
Orang-orang di Jane Street Capital benar-benar berpikir begitu. Mereka memberi ceramah di CMU pada 2009 tentang penggunaan OCaml.
Satu-satunya kelemahan yang dapat saya pikirkan adalah bahwa matriks bukan warga negara kelas satu.
sumber
Pertama-tama, saya ingin membuat pernyataan yang tidak biasa bahwa untuk perhitungan numerik, bahasa tingkat tinggi jauh lebih berguna dalam jangka panjang daripada bahasa tingkat rendah. Izinkan saya mengutip seorang peneliti dari Fraunhofer Institut yang bekerja dalam simulasi numerik yang digunakan dalam prakiraan cuaca.
Jelas, ada lebih banyak parameter untuk diperhitungkan sebagai kecepatan dan algoritma CPU, seperti disk atau RAM, tetapi pernyataan itu membantu kami untuk memahami bahwa, jika Anda memilih bahasa tingkat rendah, Anda fokus pada faktor yang salah (1000 bukannya 1000 * 1000).
Tentu saja, mengingat algoritma numerik tertentu yang dapat diharapkan C atau Fortran untuk mengalahkan OCaml atau Common Lisp oleh faktor (sebenarnya bukan itu) yang besar. Tetapi jika Anda benar-benar tertarik pada masalah numerik dan bersedia untuk meningkatkan algoritma, Anda harus memilih bahasa tingkat tinggi yang akan memungkinkan Anda untuk mengekspresikan ide-ide Anda di tingkat tinggi dan dengan mudah meningkatkan algoritma.
Sebagai catatan tambahan, jika Anda mempertimbangkan untuk menulis kode numerik dalam OCaml, Anda harus tahu tentang bagaimana OCaml meneruskan parameter ke fungsi, fungsi sebaris dan unbox floats. Semua ini dirinci dalam catatan Xavier Leroy .
sumber
Untuk
to solve numerically systems of differential equations
pertama-tama Anda membutuhkan perpustakaan yang tepat. Jadi pemeriksaan wajib adalah: apakah bahasa pemrogramanx
mendukung mereka.Secara pribadi saya ingin menulis kode tingkat tinggi dari
C
atauFortran
, dengan demikian saya telah menggunakanMatlab
,Octave
,numpy\scipy
.sumber
Saya menyukai OCaml, setidaknya sampai saya melihat pemrograman multi-threaded.
sumber