c++ - 在 C/C++ 中求解非线性反抛物线 PDE 的包

标签 c++ c pde

我想解决以下PDE对于二元函数 f(q,y)

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++ 包来求解这个方程?

最佳答案

如果您可以访问 NAG 库(昂贵),请尝试使用它们。如果您的大学/公司/研究所拥有正确类型的许可证,NAG 的人员将帮助您。我遇到了来自 NAG 的人,他们非常重视技术支持。有些人对 NAG 图书馆发誓;我几乎没有用过它们,因为它们太贵了,而且我总是担心我的下一份工作用不到它们,所以我不想依赖它们。

在免费库方面,Netlib 中有一些 PDE 求解器,但我从未使用过它们。另一种选择是 C 中的数字食谱,我实际上不建议这样做。我见过的最糟糕的数字代码将 Numerical Recipes 例程用作黑匣子。 GSL 是免费的,我已经非常成功地使用它求解耦合 ODE 系统,但 GSL 中没有 PDE 求解器。

关于c++ - 在 C/C++ 中求解非线性反抛物线 PDE 的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15238352/

相关文章:

c++ - 如何通过ifstream打开文件时共享文件删除权限

c++ - 如何在 C++ 中执行 std::string indexof 返回匹配字符串的索引?

c++ - gcc,包括文件依赖

algorithm - 边值问题的快速算法

python - 使用 FFT 和 Python 高效计算 3D 拉普拉斯

python - 在 Fipy 中求解多个偏微分方程

c++ - 如何使用 VC++ 2010 构建 koolplot 库

C++流负数转换

c - GTK:设置C中网格的大小

c - scanf() 将换行符保留在缓冲区中