программирование и численный анализ

Осенью я беру уроки численного анализа с сильным прикладным / программным уклоном. У меня так себе опыт программирования (я прошел несколько курсов и работал над Java-программированием на стажировке), но я хочу отточить свои навыки, прежде чем начать этот класс. Итак, мой вопрос: какие навыки программирования полезны для численного анализа?

Насколько важны структуры данных, ООП, алгоритмы? Есть ли какие-либо ресурсы, которые вы бы порекомендовали мне изучить перед началом занятий?


person Emir    schedule 15.08.2012    source источник
comment
Теоретически язык не должен иметь значения. На практике - посмотрите, сможете ли вы узнать, какой язык они используют, и посмотрите, нужно ли вам освежить этот язык до начала занятий. ПО МОЕМУ МНЕНИЮ...   -  person paulsm4    schedule 15.08.2012
comment
Для курса нет установленного языка, я подумываю использовать Java или C ++.   -  person Emir    schedule 15.08.2012
comment
Если вы выбираете между Java или C ++ ... выбирайте Java !!! Это будет намного легче для вашей конституции;) Если вы уже знакомы с Java (даже относительно поверхностно), тогда вы должны быть готовы перейти к вашему классу. ПО МОЕМУ МНЕНИЮ...   -  person paulsm4    schedule 15.08.2012
comment
В основном меня интересует C ++ из-за его использования в промышленности, у меня есть опыт работы с Java, но я только начал с C ++. Я считаю, что изучение этого класса верхнего уровня по C ++ поможет мне овладеть языком. Это плохая идея? :(   -  person Emir    schedule 16.08.2012


Ответы (2)


Алгоритмы и структуры данных. Не столько ООП. В курсе численного анализа, который я прошел в колледже, мы много программировали алгоритмы на Python и Matlab.

person mittmemo    schedule 15.08.2012

Лучше всего использовать numpy и / или scipy, если вы хотите быстро создавать прототипы с помощью численного анализа. Учебник по python для python 2.7 или версии 3 занимает около 120 страниц и доступен на docs.python.org, и его очень легко получить за день. numpy и scipy требуют некоторого обучения.

Выгоды от использования ООП могут быть значительными, но для этого требуется много навыков. Если бы я использовал C ++, я бы использовал книгу Брайана Х. Флауэрса, которая может дать вам быстрое введение в прикладную инженерию, а первые 5 глав дадут вам возможность писать хорошие классы ООП на C ++ примерно за 8 часов работы, включая написание тестовых сценариев. Проблема в том, что многие пакеты ООП находятся в стандартных библиотеках шаблонов. Многие люди изобретают велосипед заново, потому что не знают, что есть в наличии. Вот почему вам может быть лучше просто пойти на Python numpy или scipy или, как было предложено выше, просто использовать Matlab, поскольку большинство вещей предопределено. Оба языка хороши для быстрого прототипирования, но если вы хотите делать довольно сложные вещи, такие как создание конечно-элементных / конечно-разностных сеток, вам нужно будет перейти к библиотекам BLAS Dongarra.

person Eamonn Kenny    schedule 19.07.2016