Многие программы по информатике требуют двух или трех классов исчисления.
Мне интересно, как и когда исчисление используется в информатике? Содержание CS в области компьютерных наук имеет тенденцию фокусироваться на алгоритмах, операционных системах, структурах данных, искусственном интеллекте, разработке программного обеспечения и т. Д. Существуют ли моменты, когда Calculus полезен в этих или других областях компьютерных наук?
Ответы:
Я могу придумать несколько курсов, которые потребуют исчисления, напрямую . Я использовал жирный шрифт для обычно обязательных дисциплин для степени информатики и курсив для обычно необязательных.
Могут быть и другие - это просто с моей головы.
И, кроме того, вы получаете косвенную выгоду из курса исчисления, научившись рассуждать и объяснять аргументы с технической строгостью. Это более ценно, чем обычно думают студенты.
Наконец - вам понадобится исчисление, чтобы хорошо взаимодействовать с людьми из других точных наук и инженерии. И весьма обычно, что Компьютерный Ученый должен не только говорить, но также и работать вместе с Физиком или Инженером.
источник
f(0) = 0
,f(1) = 1
,f'(0) = f'(1) = 0
и вы можете добавить любые другие ограничения , вы заботитесь о, напримерf'(0.5) = 1
. Некоторое время назад я использовал это, чтобы получить несколько различных интерполяционных полиномов для сглаживания изображений.Это несколько неясно, но исчисление оказывается в алгебраических типах данных. Для любого данного типа тип его контекстов с одним отверстием является производной этого типа. Смотрите этот отличный разговор для обзора всей темы. Это очень техническая терминология, поэтому давайте объясним.
Алгебраические типы данных
Возможно, вы встречали кортежи, называемые типами продуктов (если нет, то это потому, что они являются декартовым продуктом двух типов). Мы собираемся принять это буквально и использовать обозначение:
Эти типы выглядят как нормальные алгебраические выражения, и мы можем фактически манипулировать ими как таковыми (до некоторой степени).
Пример
В функциональных языках общее определение списка (приведенное здесь на Haskell) таково:
Это говорит о том, что список либо пустой, либо кортеж значения и другого списка. Преобразуя это в алгебраическую запись, мы получаем:
Это определение говорит тогда, что список - это либо единица, либо кортеж из одного элемента, либо кортеж из двух элементов, или из трех и т. Д., Что является определением списка!
Контексты с одним отверстием
Теперь перейдем к контексту с одним отверстием: контекст с одним отверстием - это то, что вы получаете, когда «извлекаете значение» из типа продукта. Давайте приведем пример:
Взятие значения из 3-х кортежей дает 2-кортеж, но есть три разных варианта:
Для нашего последнего примера, давайте использовать список:
Если мы возьмем наше оригинальное выражение для списка:
Мы можем переставить, чтобы получить:
(На первый взгляд это может показаться бессмысленным, но если вы возьмете ряд Тейлора этого результата, вы получите определение, которое мы получили ранее.)
Теперь, если мы дифференцируем это, мы получим интересный результат:
Таким образом, один список стал парой списков. Это на самом деле имеет смысл: два создаваемых списка соответствуют элементам выше и ниже дыры в первоначальном списке!
источник
Численные методы. Существуют громоздкие проблемы исчисления, которые являются уникальными для конкретных приложений, и они нуждаются в решениях быстрее, чем человек может практически решить без программы. Кто-то должен разработать алгоритм, который будет вычислять решение. Разве это не единственное, что отделяет программистов от ученых?
источник
Автоматизация - Подобно робототехнике, автоматизация может потребовать количественной оценки человеческого поведения.
Расчеты. Поиск решений доказательств часто требует исчисления.
Визуализации. Для использования продвинутых алгоритмов требуется исчисление, такое как cos, sine, pi и e. Особенно, когда вы вычисляете векторы, поля столкновений и сетку.
Логистика и анализ рисков. Определение возможности выполнения задачи, степени риска и вероятности успеха.
Безопасность - большая часть безопасности может быть выполнена без исчисления; однако многие люди, которые хотят объяснений, предпочитают его в математических выражениях.
ИИ - Основы ИИ могут быть использованы без исчисления; однако, расчет продвинутого поведения, умов роя интеллекта и улья, и принятие решений на основе сложных ценностей.
Медицинские расчеты. Для визуализации большинства данных о состоянии здоровья требуется исчисление, например, показание ЭКГ.
Наука и инженерия - При работе практически с любой другой научной дисциплиной требуется исчисление: аэрокосмическая, астрологическая, биологическая, химическая или инженерная.
Многие люди в программировании могут пройти всю свою карьеру без использования исчисления; Тем не менее, это может оказаться неоценимым, если вы готовы сделать работу. Для меня это было наиболее эффективно в автоматизации, логистике и визуализации. Идентифицируя определенные шаблоны, вы можете просто игнорировать шаблон, подражать шаблону или разработать более совершенный метод все вместе.
источник
Дело в том, что вероятность использования исчисления очень мала. Тем не менее, практически любая другая научная дисциплина использует исчисление, и вы работаете на ученую степень. Существуют определенные ожидания того, что должна означать университетская научная степень, и одна из тех вещей, что вы знаете исчисление. Даже если вы никогда не будете использовать это.
Это нормально, если вы плохо разбираетесь в исчислении, но убедитесь, что вы приложили некоторые усилия к дискретной математике. Существует много реальных проблем программирования, когда дискретная математика вступает в игру, и незнание ее принципов может смутить вас перед другими программистами.
источник
Многие люди уже предоставили приложения в CS. Но иногда вы можете найти исчисление, когда вы меньше всего ожидаете:
Производные регулярного выражения пересмотрены
Если вы знаете автоматы, возможно, этот PDF стоит прочитать.
источник
Несколько более конкретных примеров:
источник
К этим другим превосходным ответам я добавляю этот пункт: строгость в тестировании .
При создании тестовых случаев для некоторых приложений мне приходилось использовать исчисление для прогнозирования ожидаемого времени выполнения, объема памяти и выбора оптимальных параметров при настройке структур данных. Это включает понимание ожидаемой ошибки округления и т. Д.
Хотя статистика упоминается в других ответах, я хотел бы особо упомянуть алгоритмы Монте-Карло , такие как алгоритмы оптимизации и некоторые экономные алгоритмы потоковой передачи , которые основаны на математических принципах, включающих исчисление.
Конкретные отрасли, в которых я работал, где требовалось исчисление, включают:
Финансы (создание торговой платформы)
Страхование (численная интеграция страховых полисов в сценариях «что, если» для расчета ожидаемых потерь полиса)
Логистика (оптимизация консолидации транспортных маршрутов)
Обработка сигналов
источник
Исчисление - неотъемлемая часть - используется непосредственно в CS как основа для размышлений о суммировании. Если вы проработаете какую-либо часть раздела «Конкретная математика» Кнута по суммированию, вы быстро поймете соглашения, общие для исчисления: понимание некоторых непрерывных случаев дает вам инструменты для рассмотрения дискретных.
Многие из применений вашего исследования CS включают системы программирования, которые отслеживают изменения или, в некоторых случаях, пытаются предсказать будущее. Математика вокруг этих систем основана на дифференциальных уравнениях и линейной алгебре, а дифференциальные уравнения - это исчисление. Есть такие учителя, как Гиберт Странг, которые выступают за более быстрое продвижение в часть дифференциальных уравнений, но это все еще подмножество исчисления. Когда изменение зависит от изменений в любой системе, оно начинает быть нестабильным (и стабильным) способами, которые не интуитивны и очень хорошо понятны. Чтобы понять, почему ваша разумная линейная система ведет себя нелинейным образом, вам либо нужны инструменты исчисления, либо вам нужно заново изобретать их для своего проблемного пространства.
И, наконец, CS часто требует чтения и понимания работы других, и исчисление является первым знакомством с большим количеством общего словаря, соглашений и истории.
источник