Для проекта, над которым я работаю (в гиперболических PDE), я хотел бы получить некоторую приблизительную информацию о поведении, взглянув на некоторые цифры. Я, однако, не очень хороший программист.
Можете ли вы порекомендовать некоторые ресурсы для изучения того, как эффективно кодировать конечно-разностные схемы в Scientific Python (другие языки с небольшой кривой обучения также приветствуются)?
Чтобы дать вам представление об аудитории (я) по этой рекомендации:
- Я чистый математик по образованию, и я немного знаком с теоретическими аспектами конечно-разностных схем
- Мне нужна помощь в том, чтобы заставить компьютер вычислять то, что я хочу вычислить, особенно таким образом, чтобы я не дублировал слишком много усилий, уже приложенных другими (чтобы не заново изобретать колесо, когда пакет уже доступен). (Другая вещь, которую я хотел бы избежать, - это глупо кодировать что-то вручную, когда существуют установленные структуры данных, соответствующие цели.)
- У меня был некоторый опыт кодирования; но у меня не было ни одного в Python (поэтому я не против, если есть хорошие ресурсы для изучения другого языка [скажем, например, Octave]).
- Книги, документация были бы полезны, как и коллекции примеров кода.
Ответы:
Вот 97-строчный пример решения простого многомерного PDE с использованием методов конечных разностей, предоставленный профессором Дэвидом Кетчесоном из репозитория py4sci, который я поддерживаю. Для более сложных проблем, когда вам нужно справиться с потрясениями или сохранением при дискретизации конечного объема, я рекомендую взглянуть на pyclaw , программный пакет, который я помогаю разрабатывать.
источник
Вы можете взглянуть на Fenics , фреймворк на python / C, который позволяет решать довольно общие уравнения с помощью специального языка разметки. Он в основном использует конечные элементы, но стоит посмотреть. Учебник должен дать вам представление о том , как легко можно решить проблемы.
источник
Эта ссылка может быть очень полезной для вас. Это открытая книга в интернете. Я узнал (все еще учусь), Python из этой книги. Я нашел это очень хороший ресурс действительно.
http://www.openbookproject.net/thinkcs/python/english2e/
Для численного расчета нужно определенно пойти на «NumPy». (просто убедитесь, что вы правильно поняли «массив», «матрица» и «список») (для этого обратитесь к документации numpy)
источник