ИТ и Матан

А вот слабо составить список конкретных тем матана, которые пригодились? Пусть как в анекдоте про интеграл и шляпу из лужи. Интересно же.

Точный - признаюсь, слабо. Конспекты не сохранились :frowning: Примерный список, впрочем, вот(тут я постараюсь вспомнить сами темы, но вот к чему конкретно это относилось - не смогу сказать в некоторых случаях):

  1. Теория множеств. Везде. Впрочем, она на стыке сотен математических дисциплин, так что не уверен, что ее считать стоит.
  2. Ряды в принципе + отдельные темы вроде рядов Тейлора. Применение обычно скатывается в “Вот ряд, который сходится к функции F. Заменим…”, так что особой функциональной нагрузки объяснение теории всех этих рядов не несет.
  3. Ряды Фурье (ЦОС - Д/БПФ, Мат. основы ИИ(магистратура), обработка изображений(магистратура)).
  4. Общие понятия о всяких первокурсных словах вроде непрерывности, пределов, и т.д. Считаю это некоторого рода базой(которую знать таки надо), и при различного рода размышлениях аналогии в этом виде достаточно часто в голову приходят. Даже помогают порой :smile:

Анекдот про интеграл и шляпу из лужи - лучший пример состояния матанализа в годы моего бакалавриата. За другие годы, впрочем, утверждать не буду - там курсы часто менялись. :smile:

P.S. Интегралы таки появлялись пару раз, то здесь, то там. Решать, впрочем, ни разу не пришлось.

1 лайк

Не представляю, как заниматься моим любимым рендерингом без глубокого понимания континуальщины :blush:

А что такое глубокое понимание континуальщины?

Ну, понятное дело, что если углубляться - найдутся темы, в которых она нужна. Просто в курсах они абсолютно нигде не рассматриваются, либо рассматриваются чрезвычайно обзорно, и порой после них остается только вопрос - зачем вообще было про это говорить.

Углубляться? О чем Вы вообще? Я спросил осенью у третьего курса: “как будем искать определитель?” ПМщики - ответили, ИТшники - ответили красноречивой тишиной. Я подсказал: “Гауссом. Какова сложность алгоритма Гаусса?” Аналогичная картина. Я это к чему: не надо углубления, хотя бы фундамент! Но если нет желания, то фундамент не будет освоен.

PS: прошу эту историю воспринимать как данность и только в ключе темы, т.е. нежелания ИТшников учить математику (матан, алгебру). Ни в коем случае не хочу холивара о ИТ vs ПМИ.

Имеется в виду, что если бы пришлось, например, заниматься компьютерной графикой на серьезном уровне - пригодилось бы. Только в курсах этого нет.

ИТшников ни в чем не осудишь. Почему? Понятие определителя матрицы возникло только в курсе самой алгебры, и ни разу(подчеркиваю, ни разу) впоследствии. Курс вычмата не в счет - там точно математика ради математики, которую более нигде не использовали. Знания - как данные в кэше. Будучи неиспользованными, рано или поздно, исчезают.

Считал бы с помощью LU-разложения. Сложность, если не ошибаюсь, O(N^3).

А пересечения прямых и плоскостей не искали? А смена базиса в лин пространстве? А определитель Вандермонда в теории кодирования? А в БПФ?

Имелось ввиду, что без знания хотя бы классической части математического анализа и дифференциальной геометрии в компьютерной графике делать вообще нечего. А вообще прийдется еще серьезно разбираться с теорией рассеивания и решать всякие in-scattering интегралы (я не знаю, как это по-русски называется). И это только то, с чем прийдется столкнуться сразу же. Это примерно та причина, по которой рендеринг-инженеры зарабатывают существенно больше своих коллег из других областей. Так что стимул учить матан все же есть :smile:

Scattering - теория рассеивания. Я встречал именно такой перевод.

Да, я знаю, что scattering - это рассеивание. Я не знаю, какой термин соответствует in-scattering integral. Это совокупная светимость, излучаемая в направлении положения наблюдателя. Может, в русской традиции более короткого термина и нет, я не знаю.

Насколько я понимаю, в русской литературе этому соответствует интеграл рассеяния. Когда-то в теорию рассеяния наши внесли существенный вклад, к примеру Захаров, Фаддеев.
А если по теме, то это не просто матан, это “несколько” больше матана.

Ну… Все это было давно и неправда :slight_smile: В любом случае, проскочило в виде лекции один раз на третьем курсе - не более того. Первые два - так и вовсе из курса алгебры того же первого курса, если мне память не изменяет. БПФ - достаточно сложный в изучении момент. Сложный по той причине, что уже реализован десятки раз в куче уважающих себя библиотек: fftw, ipp, opencv, есть множество opencl/cuda реализаций(правда, плохих). Для реальной задачи такое практически никогда не придется писать самому. Хотя, поддержу Вас в том, что определитель - на самом деле очень базовый элемент, и не знать что это - стыдно.

Ну, в любом случае, это наглядный пример того, зачем бывает нужна достаточно сложная математика в важных, нужных и “близких к потребителю” областях разработки программного обеспечения.

Артем Михайлович, а можно чуть подробнее, пожалуйста?

Этому флейму годков то поболее будет, чем спорам между C-шниками и PASC-вилянтами. Кто должен рассказывать правила приближенных вычислений? Это должно произойти в курсе математического анализа или методов вычислений? В ощущениях, очевидно, что никто это не рассказывает. У всех нехватка времени, чтобы объяснять непрофильные элементарные факты. Может быть всё надеются, что студенты сами прочтут классический текст акад. Крылова? Или на ночь будут читать стандарт по числам с плавающей запятой? Ага, вот прямо таки вижу, как студенты массово прорабатывают кнутовскую “Бетонную математику” и “Искусство программирования…” - конспектируют, однако.

интересно, мое поведение просто “не-этично” или уже безнравственно?

очень хочется привести пошлый анекдот, но не буду. Замечу только, что во времена мейнфреймов он был вполне себе продуктивен и конструктивен. Поскольку PL/1, СОВOL и прочие распространенные языки, кроме целых и чисел с плавающей запятой использовали ещё и числа с фиксированной запятой. И арифметика с фиксированной запятой полностью поддерживалась языками и библиоеками. Модные ныне языки все произошли с микрокомпьютеров и поддержки фиксированной запятой в них нет совсем (ну кроме ADA). Поэтому и не продуктивно - поскольку библиотеки поддержки фиксированной запятой приходится привинчивать отдельно и без всякого синтаксического сахара. Тем более всякие экзотически-продвинутые способы - типа p-адической арифметики или вычислений в остатках.

6 сообщений перенесены в новую тему: Больше практики для вычметодов

Вы это про что?

Причем здесь фиксированная? Я про плавучку написал.

Мы как раз с Вами привинчивали. Так что я в курсе.

И снова пишут, что плавающая точка это сложно: Visual C++ strtod(): Still Broken. Напомню, функция strtod из стандартной библиотеки C переводит строку в double.

Мне тут московские коллеги сказали, что даже архитектура x86 не полностью поддерживает IEEE 754, что уж там про компиляторы …