Griefin Цитата: Известно ли уважаемым пользователям, что в Mathematica крайне тормозная реализация функции Plot? Например, если вручную сделать таблицу точек, а затем нарисовать ее используя ListPlot, то получится в десятки раз быстрее, чем просто с Plot.
Ну да, и причины понять нетрудно. Например, построим график:
Plot[x, {x, 0, 10}]
А теперь посмотрим, как он выглядит "Изнутри":
%//InputForm
Нетрудно подсчитать, что прямая линия y=x построена как
ломаная, состоящая из 77 отрезков!
Точно такой же график можно построить и иначе, по двум точкам:
ListPlot[{{0, 0}, {10, 10}}, Joined -> True]
Результат визуально идентичен, вероятность каких-либо искажений при импорте в другие приложения или выводе на печать близка к нулю, в отличие от первого варианта!
Однако вышесказанное - ещё цветочки! В случае, если функция не является гладкой во многих местах, возможны заметные тормоза из-за того, что Plot[] будет пытаться "уточнить" форму функции в местах большой кривизны!
Всё это - плата за универсальноть и, по сути, претензий к разработчикам по этому поводу у меня нет. Насколько я понимаю, Plot[] не пытается брать производные и на их основе выполнять анализ поведения функции. В общем-то, это наиболее простое и разумное поведение.
Гораздо хуже то, что разработчики не спешат исправлять очевидные баги в таких базовых функциях, как Show[], Export[] и т.п. Написав о нескольких таких багах в официальную группу новостей, я понял, почему авторы одной статьи о системах символьной математики назвали отношение разработчиков Mathematica к аргументированной критике в свой адрес
"болезненным"! Вот как они себя ведут: на сообщения о реальных багах просто не отвечают, оставляя их безо всякого внимания. Многие такие сообщения не пропускают модераторы. Авторов таких сообщений банят после 2-3 постов о багах или после даже одного поста с действительно обоснованной, аргументированной критикой в адрес компании. На сообщения о тупейших недоработках, тянущихся десятилетиями от версии к версии, они отвечают, что "это известное ограничение". И, судя по тому, что пишут в группе новосей, никому до этого дела нет! Многие пользователи занимают следующую позицию: "чтобы извлечь больше пользы от программы, не следует бороться с ней!". И при этом забывают, что для извлечения большей пользы надо уметь использовать программу наиболее гибким образом, а при таком использовании неизбежно натыкаешься на тупые баги! А сообщать о них нельзя - разработчикам неприятно...