Я хотел бы решить следующее 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, но я никогда не использовал их. Другой вариант — это Численные рецепты на Си, против которых я бы порекомендовал. Худшие числовые коды, которые я когда-либо видел, использовали процедуры «Числовые рецепты» в качестве черных ящиков. GSL является бесплатным, и я очень успешно использовал его для решения систем связанных ODE, но в GSL нет решателей PDE.
Других решений пока нет …