А вот слабо составить список конкретных тем матана, которые пригодились? Пусть как в анекдоте про интеграл и шляпу из лужи. Интересно же.
Точный - признаюсь, слабо. Конспекты не сохранились Примерный список, впрочем, вот(тут я постараюсь вспомнить сами темы, но вот к чему конкретно это относилось - не смогу сказать в некоторых случаях):
- Теория множеств. Везде. Впрочем, она на стыке сотен математических дисциплин, так что не уверен, что ее считать стоит.
- Ряды в принципе + отдельные темы вроде рядов Тейлора. Применение обычно скатывается в “Вот ряд, который сходится к функции F. Заменим…”, так что особой функциональной нагрузки объяснение теории всех этих рядов не несет.
- Ряды Фурье (ЦОС - Д/БПФ, Мат. основы ИИ(магистратура), обработка изображений(магистратура)).
- Общие понятия о всяких первокурсных словах вроде непрерывности, пределов, и т.д. Считаю это некоторого рода базой(которую знать таки надо), и при различного рода размышлениях аналогии в этом виде достаточно часто в голову приходят. Даже помогают порой
Анекдот про интеграл и шляпу из лужи - лучший пример состояния матанализа в годы моего бакалавриата. За другие годы, впрочем, утверждать не буду - там курсы часто менялись.
P.S. Интегралы таки появлялись пару раз, то здесь, то там. Решать, впрочем, ни разу не пришлось.
Не представляю, как заниматься моим любимым рендерингом без глубокого понимания континуальщины
А что такое глубокое понимание континуальщины?
Ну, понятное дело, что если углубляться - найдутся темы, в которых она нужна. Просто в курсах они абсолютно нигде не рассматриваются, либо рассматриваются чрезвычайно обзорно, и порой после них остается только вопрос - зачем вообще было про это говорить.
Углубляться? О чем Вы вообще? Я спросил осенью у третьего курса: “как будем искать определитель?” ПМщики - ответили, ИТшники - ответили красноречивой тишиной. Я подсказал: “Гауссом. Какова сложность алгоритма Гаусса?” Аналогичная картина. Я это к чему: не надо углубления, хотя бы фундамент! Но если нет желания, то фундамент не будет освоен.
PS: прошу эту историю воспринимать как данность и только в ключе темы, т.е. нежелания ИТшников учить математику (матан, алгебру). Ни в коем случае не хочу холивара о ИТ vs ПМИ.
Имеется в виду, что если бы пришлось, например, заниматься компьютерной графикой на серьезном уровне - пригодилось бы. Только в курсах этого нет.
ИТшников ни в чем не осудишь. Почему? Понятие определителя матрицы возникло только в курсе самой алгебры, и ни разу(подчеркиваю, ни разу) впоследствии. Курс вычмата не в счет - там точно математика ради математики, которую более нигде не использовали. Знания - как данные в кэше. Будучи неиспользованными, рано или поздно, исчезают.
Считал бы с помощью LU-разложения. Сложность, если не ошибаюсь, O(N^3).
А пересечения прямых и плоскостей не искали? А смена базиса в лин пространстве? А определитель Вандермонда в теории кодирования? А в БПФ?
Имелось ввиду, что без знания хотя бы классической части математического анализа и дифференциальной геометрии в компьютерной графике делать вообще нечего. А вообще прийдется еще серьезно разбираться с теорией рассеивания и решать всякие in-scattering интегралы (я не знаю, как это по-русски называется). И это только то, с чем прийдется столкнуться сразу же. Это примерно та причина, по которой рендеринг-инженеры зарабатывают существенно больше своих коллег из других областей. Так что стимул учить матан все же есть
Scattering - теория рассеивания. Я встречал именно такой перевод.
Да, я знаю, что scattering - это рассеивание. Я не знаю, какой термин соответствует in-scattering integral. Это совокупная светимость, излучаемая в направлении положения наблюдателя. Может, в русской традиции более короткого термина и нет, я не знаю.
Насколько я понимаю, в русской литературе этому соответствует интеграл рассеяния. Когда-то в теорию рассеяния наши внесли существенный вклад, к примеру Захаров, Фаддеев.
А если по теме, то это не просто матан, это “несколько” больше матана.
Ну… Все это было давно и неправда В любом случае, проскочило в виде лекции один раз на третьем курсе - не более того. Первые два - так и вовсе из курса алгебры того же первого курса, если мне память не изменяет. БПФ - достаточно сложный в изучении момент. Сложный по той причине, что уже реализован десятки раз в куче уважающих себя библиотек: fftw, ipp, opencv, есть множество opencl/cuda реализаций(правда, плохих). Для реальной задачи такое практически никогда не придется писать самому. Хотя, поддержу Вас в том, что определитель - на самом деле очень базовый элемент, и не знать что это - стыдно.
Ну, в любом случае, это наглядный пример того, зачем бывает нужна достаточно сложная математика в важных, нужных и “близких к потребителю” областях разработки программного обеспечения.
Этому флейму годков то поболее будет, чем спорам между C-шниками и PASC-вилянтами. Кто должен рассказывать правила приближенных вычислений? Это должно произойти в курсе математического анализа или методов вычислений? В ощущениях, очевидно, что никто это не рассказывает. У всех нехватка времени, чтобы объяснять непрофильные элементарные факты. Может быть всё надеются, что студенты сами прочтут классический текст акад. Крылова? Или на ночь будут читать стандарт по числам с плавающей запятой? Ага, вот прямо таки вижу, как студенты массово прорабатывают кнутовскую “Бетонную математику” и “Искусство программирования…” - конспектируют, однако.
интересно, мое поведение просто “не-этично” или уже безнравственно?
очень хочется привести пошлый анекдот, но не буду. Замечу только, что во времена мейнфреймов он был вполне себе продуктивен и конструктивен. Поскольку PL/1, СОВOL и прочие распространенные языки, кроме целых и чисел с плавающей запятой использовали ещё и числа с фиксированной запятой. И арифметика с фиксированной запятой полностью поддерживалась языками и библиоеками. Модные ныне языки все произошли с микрокомпьютеров и поддержки фиксированной запятой в них нет совсем (ну кроме ADA). Поэтому и не продуктивно - поскольку библиотеки поддержки фиксированной запятой приходится привинчивать отдельно и без всякого синтаксического сахара. Тем более всякие экзотически-продвинутые способы - типа p-адической арифметики или вычислений в остатках.
Вы это про что?
Причем здесь фиксированная? Я про плавучку написал.
Мы как раз с Вами привинчивали. Так что я в курсе.
И снова пишут, что плавающая точка это сложно: Visual C++ strtod(): Still Broken. Напомню, функция strtod
из стандартной библиотеки C переводит строку в double
.
Мне тут московские коллеги сказали, что даже архитектура x86 не полностью поддерживает IEEE 754, что уж там про компиляторы …