OCaml sayısal analiz için iyi midir? [kapalı]


10

Şu anda diferansiyel denklemlerin sayısal sistemlerini çözmek için C ve bazı FORTRAN kullanıyorum.

Biraz bu dillerin her ikisi ile bıkmış ama bazı (oldukça) verimli bir kod olması gerekir ... OCaml geçiş düşünüyorum.

Buna değer mi?


4
SciPy tavsiye - ücretsiz, Matlab gibi görünüyor (ama Python) ve bunu yapmak için sadece birkaç satır alır! scipy.org/Cookbook/…
Job

1
MATLAB. Diferansiyel denklem sistemlerinin sayısal çözümü çözülmüş bir sorundur ve oldukça uzun süredir kullanılmaktadır. Amacınız sayılarınızı gevşetmekse, bunu yapmak için son birkaç on yıl içinde geliştirilen araçları kullanın. Ne kadar eğlenceli olursa olsun, tekerleği yeniden icat etmeyin. Kendinize çok zaman kazandıracak ve ağırlaştıracaksınız.
John R. Strohm

Yanıtlar:



7

Her şeyden önce, sayısal hesaplamalar için, yüksek seviyeli dillerin uzun vadede düşük seviyeli dillerden çok daha kullanışlı olduğu alışılmadık bir ifade yapmak istiyorum . Hava tahminlerinde kullanılan sayısal simülasyonlarda çalışan Fraunhofer Institut'tan bir araştırmacıya gevşekçe alıntı yapmama izin verin.

Son on yılda, CPU'lar 1000 kat daha hızlı, algoritmalar 1000 * 1000 daha hızlı oldu. Bu, günümüzün CPU'larında çalışan algoritmaların, günümüzün CPU'larında çalışan algoritmaların 1000 katına çıkacağı anlamına gelir.

Açıkçası, CPU hızı ve diskler veya RAM gibi algoritmalar olarak dikkate alınacak çok daha fazla parametre var, ancak bu ifade, düşük seviyeli bir dil seçerseniz, yanlış faktöre (1000 yerine) odaklandığınızı anlamamıza yardımcı oluyor. 1000 X 1000).

Elbette, herhangi bir belirli sayısal algoritma göz önüne alındığında, C veya Fortran'ın OCaml veya Common Lisp'i (aslında bu değil) büyük bir faktörle yenmesini bekleyebiliriz. Ama aslında sayısal problemlerle ilgileniyorsanız ve algoritmaları geliştirmeye istekliyseniz, fikirlerinizi yüksek düzeyde ifade etmenizi ve algoritmaları kolayca geliştirmenizi sağlayacak üst düzey bir dil seçmelisiniz.

Bir yan not olarak, OCaml'de sayısal kod yazmayı düşünüyorsanız, OCaml'nin parametreleri işlevlere, satır içi işlevlere ve kutu açmalarını nasıl geçirdiğini kesinlikle bilmelisiniz. Bütün bunlar Xavier Leroy'un notlarında detaylandırılmıştır .


Cevap için teşekkürler. O zamandan beri J'ye başvurdum ve çok sevdim . OCaml benim için çok yakın.
Eelvex

6

To to solve numerically systems of differential equationsHepinize uygun kütüphanelerin ilk gerekir. Yani zorunlu bir kontrol: bir programlama dili xonları destekliyor mu?

Şahsen ben daha yazma kodu üst seviyeye mi Cyoksa Fortranböylece ben kullandım, Matlab, Octave, numpy\scipy.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.