2013-03-06 19 views
3

我想解決以下PDE爲雙變量函數f(q,y)包求解非線性antiparabolic PDE在C/C++

d f(q,y)/dq + 1/2 (d^2f(q,y)/dy^2 + x(q)*(df(q,y)/dy)^2) = 0, 

在間隔-\inf < y < \inf, 0<=q<=1 和帶邊界條件f(1,y) = g(y),其中g(y)是一個已知的功能。

什麼是最好的C/C++包來解決這個方程的數值?

+1

究竟有沒有分析解決方案?什麼是g(y)?由於「PDE」在q中沒有導數,g(y)是否滿足q = 1時的PDE?對於0 <= q <1,f(y)= exp( - (x(q) - 1/2)y) – Keith 2013-03-06 03:53:32

+0

我很抱歉有一個錯字。有一個q-導數。並且沒有解析解 – James 2013-03-06 13:12:59

+0

x(q)是一個已知函數嗎? – 2013-03-23 03:05:36

回答

0

如果您有權訪問NAG庫(昂貴),請嘗試使用NAG庫。如果您的大學/公司/機構擁有合適類型的許可證,NAG的人員將爲您提供幫助。我遇到了來自NAG的人,他們對技術支持非常認真。有些人以NAG圖書館發誓;我很少使用它們,因爲它們太貴了,我總是害怕我的下一份工作無法訪問它們,所以我不想依賴它們。

就免費圖書館而言,Netlib中有一些PDE求解器,但我從未使用它們。另一個選項是C中的Numerical Recipes,我實際上會推薦它。我見過的最差的數字代碼使用了Numerical Recipes例程作爲黑盒子。 GSL是免費的,我已經非常成功地用它來解決耦合ODE系統,但GSL中沒有PDE解算器。