есть идейка написать несколько базовых классов для численных методов - нужно провести рассчёты по диплому, рассчёты нужны для другой проги, и хочу чтобы они выполнялись автоматически. задача - аппрокчимировать аналитическую функцию полиномом. для этого придётся вычислить значения двойного интеграла, решить систему линейных уравнений и пр. мелочь. вот думаю как лучше реализовать. Код (Text): class CFunction { public: virtual double get_value(double arg) = 0; }; class CIntegral { private: CFunction *m_p_func; public: CIntegral(CFunction *p_function) {m_p_func = m_p_func;} void set_limits(..); void set_steps_count(..); double calculate(..); }; т.к. интеграл нужно рассчитывать двойной то думаю как-то абстрагироваться от конкретных CIntegral и аргументов.. типа, в качестве CFunction использовать CIntegral.. вобщем не могу придумать оптимальную иерархию классов..
Для такого рода задач есть спец. пакеты ПО. MathCad, MabLab ... MathCad - у меня вел расчет курсового по ТАУ, исходные данные только номер варианта. Если данные были нормальными, то конечный результат был за 20сек. Некие варианты проходилось подгонять, ну минут 5 мак. Удобен очень для начинающего, так как формулы имеют точно натойже вид как в книжке. Т.е. взял формулу интеграла и почти как в книге "вколбасил" ее. И получил результат.
Для такого рода задач есть спец. библиотеки с исходниками на разных языках. Numerical Recipes... h**p://www.nr.com/oldverswitcher.html
Я ближе к окончанию универа все вычисления проводил в maxima, и символьные, и численные. Очень удобно, всё сосчитал, выдрал TeX-код для промежуточных и конечных выражений, воткнул в текст. Скомпилировал/распечатал отнёс преподу. И не надо долго формулы набирать, и можно быть уверенным в том, что все промежуточные преобразования выполнены безошибочно.
r90 рассчёты нужно автоматизировать. типа, меняешь какой-нибудь параметр - у тебя сразу же в исходники другой проги прошивается другой полином. так что стандартные пакеты, типа maple не подходят. с алглиб уже разобрался - всё шикарно работает. сам удивился ))