Здравствуйте, tensor1982, Вы писали:
T>Здравствуйте! T>Ранее программировал на Matlab. Сейчас надо С++. Для старта в С++ почитал первое что попалось под руку «Шилдт Г. C++ Руководство для начинающих». Очень скучно, примеры тривиальные – но с чего-то же надо начинать. T>Есть ли что-нибудь серьезное на С++ с уклоном на алгоритмы, прикладную математику, работу с матрицами, численные методы, решение уравнений, обыкновенные дифференциальные уравнения и т.д.?! T>Спасибо!
Все зависит от того, что собственно требуется. Если хочется просто изучить синтаксис языка, то любая книжка пойдет. Но ни в одной не будет какого-то подробного описания использования языка в контексте алгоритмов, так как с++ — язык общего назначения. Более того, считаю, что именно с++ мало годится для реализации алгоритмов в том смысле, что все его сила (классы, шаблоны и прочее) скорей всего не понадобятся для решения алгоритмических задач — вполне сойдет тот набор, что предоставляет собственно язык С, возможно с привлечением алгоритмов STL (в простейших случаях). Синтаксис знать нужно, чтобы хоть что-то написать, но этого мало. Надо понимать как это работает изнутри, во что компилятор преобразует те или иные конструкции языка, что такое стек, куча, выравнивание данных, разделяемые ресурсы (прошу прощения что свалил все эти термины в одну кучу), а для алгоритмистов особенно важно понимание численной арифметики, округления, переполнения и многое многое что связано с ограничениями вычислительной техники. Это в контексте тех высказываний, что код математиков "из ряда вон". Не знаю, есть ли ли что-то в книгах об этом, мне кажется это просто с опытом приходит.
А вот если говорить о реализации алгоритмов в рамках языка с++, да и любого другого, то было бы полезно ознакомиться с готовыми библиотеками, такими как LAPACK и их различными (реинкарнациями) расширениями, оптимизациями, как например интеловская MKL. Там много готовых базовых алгоритмов из линейной алгебры, FFT, sparse, заточенных под конкретное "железо".