octave или SciLab или MathLab удобны если студенты не знакомы с программированием на C++ или Pascal или Java ... , похож на эти средства и Fortran.
Если изучали, например, C++, то можно и изучать алгоритмы путем их непосредственного программирования, и их использовать подключая boost
http://www.boost.org/doc/libs/1_40_0/libs/libraries.htm#Math . Например, решить СЛАУ методом LU разложения можно так
Код:
x=boost::math::tools::solve(A,b);
, а вычислить спецфункцию, например Бесселя, так
Код:
boost::math::cyl_bessel_k(0,x)
.
Правда возможности выполнения символьных вычислений в C++ не видел.
-- Сб ноя 14, 2009 23:18:55 -- Под самое завершение выяснилось, что без символьного дифференцирования не обойтись. Быстренько написал врапер на Python + Sympy, все работает, но пришло понимание, что все целиком изначально надо было писать на Python.
Очень интересно!
Могли бы привести пример кода программы, в котором выполняется одновременно и операция символьного дифференцирования и численная операция. Например, вычислить
в какой-нить точке.