2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Сравнение интерфейсов математического ПО
Сообщение29.11.2012, 12:04 
Так уж случилось, что после многолетнего перерыва мне опять необходимо делать расчёты.
Поскольку времени прошло много (~15 лет), кроме того ось сменилась с Windows на Linux, сейчас пришлось наново пересмотреть предложения открытого и закрытого рынка в этом направлении. Программ немало, я насчитал навскидку такие: Maxima, Octave, Scilab, Sage, SMathStudio, Mathematica, Matlab, Maple (системы компьютерной алгебры упоминаю вместе с численными, ибо они тоже умеют считать). Наверное, еще есть, но и этого для начала хватит. Подобрал немного литературы, немного почитал. Вот какие впечатления от этого.
Практически все (да наверное все) авторы книг и документации характеризуют свой предмет исследования на ура. В любой программе можна сделать все, если не стоят экзотические и архисложные задачи. А вот вопрос практической работы в ПО как-то обходится стороной. Для авторов этих книг зачастую бедность средств визуализации формул, контроля за вычислениями, отладки ошибок, внесения правки - не проблема, они не придают этому должного значения. И это все так, я начинаю уже думать, может я чего-то не так понимаю? Как вариант - эти средства существуют, просто нужен дельный совет.
Теперь немного детальнее о том, что я хочу здесь донести.
После окончания ВУЗа были знания Pascal и MathCad. Тогда я четко понимал разницу между ними, что в чём лучше делать (ну конечно, это касается тех задач, которыя я решал). Всегда лучше было для меня иметь реализованный алгоритм или методику какого-то расчёта в Pascal, но опыт показывал, что этот расчёт целесообразно сначала сделать расчёт одного варианта вручную, потом программирование идёт быстрее. Расчёт вручную замечательно выполнял MathCad. Его преимущества при этом следующие.
- Формулы вводятся в натуральном виде с учётом многоэтажности, греческих букв, других символов, индексов и т.д. Как результат нет необходимости составлять таблицу идентификаторов, значительно уменьшается количество ошибок при вводе формул;
- Введенные формулы и результаты отображаются в одном месте, что улучшает контроль за расчётом;
- Лёгкость внесения правки - возвращаешся на место, где введена формула, вносиш исправления, больше ничего делать не надо.
Конечно, есть и недостатки - отсутствие средств контроля за выполнением некоторых важных функций (напр., корень уравнения решается слишком долго, или результат какой-то не такой, как ожидалось), ограниченность средств программирования (вплоть до невозможность решать задачу).
Некоторые математические программы вроде бы лишены таких возможностей (как и недостатков) и ведут себя как традиционные языки программирования, и непонятно, чем они лучше за Pascal, Fortran, Python... Недостающие функции можно постепенно реализовать, но владения языками программирования даёт возможность делать не только математические расчёты. Есть еще базы данных, работа з графикой, выполнение программы под клиента... Выходит так, что учить ещё один язык программирования нецелесообразно.
Из всего этого пока я вижу больше пользы в уклоне в сторону возможностей а-ля MathCad.
Это первый вопрос, по которому хотелося бы услышать мнение опытных и не очень пользователей.
Второй вопрос - хочу услышать мнения касательно выбора ПО и техники работы в интерфейсе этого ПО для выполнения разных задач. Именно:
1. Продвинутый калькулятор. Пример: необходимо линейкой и транспортиром снять некоторые данные с карты и быстро сделать пересчет по нескольким формулам.
2. Выполнение и оформление лабораторной работы. Ну, например, какая-то статистика - ввести данные, штук 30-40, по формулам сделать расчёт, построить график и таблицу с результатами.
3. Выполнения расчётного алгоритма, который содержит 20-30 формул, есть итерационные циклы, условия.
Добавление новых задач приветствуется.

В конце ещё хотел вернуться к перечню ПО, который я привёл вначале. Конечно, я понимаю и придаю должную важность разделению ПО на свободное и платное. Пока что мое мнение таково, что платное ПО важно для обучения, начальных шагов. Оно документировано, оснащено примерами. Когда научился, запомнил синтаксис, получается - можно переходить на гнутые программы. Особняком стоит SMathStudio. Оно самое близкое к MathCad (лидеру моего сообщения), свободно сейчас, но не открыто и таким в перспективе не будет (иначе не понятно, почему автор его не открывает). Делание ставки на него может оказаться неперспективным по двум причинам: закрытость в перспективе или же медленное развитие вплоть до прекращения, ибо автор действует в одиночку.
Это третий вопрос, который хотелось бы обсудить.
Спасибо всем, кто дочитал до конца. Надеюсь на полезный обмен мнениями.

 
 
 [ 1 сообщение ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group