一個小問題,我希望你能幫助我。 (爲了使我的生活更簡單)LSODA到DLL - Fortran(F77)從dll調用C#
一個最受尊敬的數值求解的微分方程是LSODA,但它是Fortran語言編寫的...(http://www.netlib.org/odepack/index.html)
似乎沒有成爲一個體面的求解C#編寫我自己的代碼在C#中太耗時了,特別是因爲我有非常僵硬的方程需要解決。
網絡的NAG庫不包含ODE解算器(它們缺少D02例程)。這就是「大學方」圖書館。 但是NAG支持建議調用他們的dll,這對於簡單變量來說很好,但是讓我感到困惑的是它的外部函數和僞參數讓我放棄了。
這使得LSODA仍然是Fortran,但它的調用順序更簡單 - 所以我想知道,Odepack(包括lsoda例程在內的解算器)怎麼會變成一個沒有多少工作的dll,所以它可能是從C#調用的? (這將讓我擔心的雅可比,是一個矩陣,即二維數組) 具體來說,我想類似與Fortran的NAG庫的情況,而是爲我提供訪問lsoda:http://www.nag.co.uk/numeric/csharpinfo.asp
請記住,我是一名數學家 - 所以如果你的回答讓我失望,請耐心等待我。我爲什麼如此專注於C# - 嗯,這很簡單,特別是當你有VisualStudio 2010時。
非常感謝任何回覆提前。
我的建議是隻使用Fortran,但這當然不是解決您的問題的方法。奇怪的是,您使用VisualStudio,我在Linux上開發的一個重要原因是:沒有成本,優秀的編程環境以及訪問英特爾非商業編譯器許可證。 – steabert 2012-01-27 15:19:50
但我不想要Fortran--它似乎不想死。它意味着學習一門對數學毫無用處的編程語言...... Visual Studio - 不,並不奇怪。 Linux:如果有更好的選擇,請不要(Windows) - (我並不關心Linux,因爲如果我能避免它,我無意使用它,我有更好的事情要做,而不是花幾個星期去學習真正從中受益)。你說的對,它不是一個解決方案,只是一個臨時補丁。 – DetlevCM 2012-01-27 15:27:58
具有諷刺意味的是,你抱怨Fortran不會死亡,而另一方面你不打算編寫一個C#求解器:)另外,最終不會有什麼好處,這不是你花在編程上的幾天時間fortran等等(它基本上只是另一種語法),它會缺少學習新的東西的意願(實際上並沒有那麼不同); – steabert 2012-01-27 17:40:43