Идеи проекта для дискретного курса математики с использованием MATLAB? - PullRequest
9 голосов
/ 30 июля 2009

Профессор попросил меня помочь составить спецификацию для проекта колледжа.К тому времени, когда студенты должны знать основы программирования.

Профессор - математик и имеет небольшой опыт работы с другими языками программирования, поэтому он действительно должен быть в MATLAB.

Я хотел бы немногоидеи проектов.Проект должен

  1. длиться от 1 до 2 месяцев
    • должен быть выполнен индивидуально
    • иметь веб-интерфейс было бы здорово
    • не обязательно иметьуглубиться в математику, но некоторые были бы хороши
    • использовать базу данных (или хранить данные в файлах)

Какой проект сделает студентовв восторге?

Если у вас есть другие советы, я буду признателен.

ОБНОВЛЕНИЕ: Студенты второкурсники и уже изучали векторное исчисление.Этот проект рассчитан на один год обучения по дискретной математике.

ОБНОВЛЕНИЕ 2: Темы, охватываемые курсом:

  1. Формальная логика
  2. Доказательства, рекурсия и анализ алгоритмов
  3. Множества и комбинаторика
  4. Отношения, функции и матрицы
  5. Графы и деревья
  6. Алгоритмы графов
  7. Булева алгебра и компьютерная логика
  8. Моделирование арифметики, вычислений и языков

И это будет основано на этой книге Математические структуры для информатики: современный подходк дискретной математике Джудит Л. Герстинг

Ответы [ 8 ]

8 голосов
/ 30 июля 2009

Общие предложения:

На есть множество учебных материалов , которые могут дать вам некоторые идеи для курсовых проектов. Некоторые примеры ссылок:

Конкретные предложения:

Один из моих проектов в области нелинейной динамики, который мне показался интересным, касался осцилляторов Лоренца . Осциллятор Лоренца - это нелинейная система трех переменных, которая может демонстрировать хаотическое поведение. Такая система предоставит возможность познакомить студентов с числовыми вычислениями ( итерационные методы для моделирования систем дифференциальных уравнений, устойчивости и сходимости и т. Д.).

Самое интересное в этом проекте было то, что мы использовали генераторы Лоренца для кодирования и декодирования сигналов. Этот аспект «зашифрованной связи» был действительно классным и основывался на следующей журнальной статье:

Кевин М. Куомо и Алан В. Оппенгейм, Схема реализации синхронизированного хаоса с приложениями на связь , Физический обзор Письма 71 (1), 65-68 (1993)

В статье рассматриваются аппаратные реализации хаотической системы связи, но эквивалентная программная реализация должна быть достаточно простой для выведения (и намного более простой для реализации студентами!).

Некоторые другие полезные аспекты такого проекта:

  • Поведение системы можно визуализировать на 2-х и 3-х мерных графиках, таким образом, учащиеся получают доступ к ряду графических утилит в MATLAB ( PLOT , PLOT3 , COMET , COMET3 и т. Д.).
  • Аудиосигналы могут быть считаны из файлов, зашифрованы с использованием уравнений Лоренца, записаны в новый файл, а затем еще раз расшифрованы. Вы можете даже попросить учеников зашифровать сигнал с помощью кода осциллятора Лоренца и передать его другому ученику для расшифровки. Это познакомит их с различными файловыми операциями ( FREAD , FWRITE , SAVE , LOAD и т. Д.), И вы можете даже представить они работают с форматами файлов аудиоданных .
  • Вы можете познакомить студентов с использованием команды PUBLISH в MATLAB, которая позволяет форматировать M-файлы и публиковать их в различных типах вывода (например, HTML или Word). документы). Это научит их методам создания полезной справочной документации для их кода MATLAB.
3 голосов
/ 06 августа 2009

Я обнаружил, что реализация и визуализация Динамические системы - это здорово за введение в программирование и интересную ветвь Прикладная математика. Потому что можно увидеть «жизнь» в этих системах, наши студенты действительно наслаждаются этим практическим модулем.

Обычно мы начинаем с визуализации 1D аттрактора, чтобы мы могли наложить правило эволюции / скорость изменения с текущим состоянием система. Таким образом, вы можете учить вычислительные аспекты (интеграция системы) и визуализация и разделение обоих в реализации (на простом уровне, обновление графика на каждом n-м шаге вычислений, но в C ++, приводящем к потокам, вы не уверены в возможностях MATLAB здесь).

Затем мы добавляем шум, а затем добавляем сигмоидальную нелинейность к линейному аттрактору. Мы объединяем это расширение с введением в управление версиями (для этого мы используем SVN-репозиторий с песочницей): Студенты сначала должны создать ветви, изменить правило эволюции, а затем объединить это обратно в голову.

При переходе в режим 2D вы можете просто начать вращение и изменить его, чтобы он стал осциллятором Хопфа, и визуализировать его, изменяя сетку во времени или переходя в режим 3D, начиная с отдельной точки. Вы также можете визуализировать бифуркационную диаграмму в 3D. Таким образом, вы снова комбинируете общие навыки MATLAB, такие как 3D-черчение, с математикой. Чтобы перейти по другим темам, поищите в википедии: вы можете использовать модели охотников / хищников, хаотические системы, физические системы и т. Д. И т. Д.

Обычно мы не преподаем объектно-ориентированное программирование из MATLAB, хотя это возможно, и вы можете легко создавать свои собственные сценарии использования в настройке динамических систем. При введении наследования мы уже перешли на C ++, и я снова не знаю о возможностях MATLAB здесь.

Возвращаясь к вашим пяти пунктам:

  • Продолжительность легко регулируется, потому что простой 1D аттрактор может быть сделано быстро и с тех пор, расширения являются достаточными и модульными.
  • Мы назначаем это как отдельное задание, но разрешаем и поощряем обсуждение среди студентов.
  • Про веб-интерфейс я в растерянности: что именно вы имеете в виду, почему это важно, что бы это добавило к заданию, как это связано с изучением MATLAB. Я бы порекомендовал сбросить это.
  • Сложность: простой аттрактор легко понять, но небо это предел:)
  • Использование базы данных действительно сильно отличается от конфигурационных файлов. Что касается первого, там набор инструментов для доступа к базам данных из MATLAB Лишь немногие институты имеют лицензию, и, кроме того: это ИМХО не относится к такому курсу. Я предлагаю познакомиться с концепцией конфигурационных файлов, например, для определения местоположения и силы аттрактора, а затем для соответствующих свойств системы.

Все это говорит, я бы по крайней мере также сказал вашему профессору (и вашим студентам!), Что Python восстает против MATLAB. Мы находимся в процессе разработки Python с нашими учебниками, но я понимаю, если кто-то хочет придерживаться того, что знакомо.

Кроме того, нам на самом деле понадобится научное содержание позже, поэтому полезность для вас, вероятно, будет зависеть от того, с каким отделом будет связан ваш курс.

2 голосов
/ 11 августа 2009

MATLAB начал свою жизнь как MATrix LAB, так что, возможно, концентрация на задачах линейной алгебры была бы естественной.

Дискретные математические задачи с использованием матриц:

  1. Охватывающие деревья и кратчайшие пути
  2. Проблема брака (двудольные графы)
  3. Соответствующие алгоритмы
  4. Максимальный поток в сети
  5. Транспортная проблема

См. «Введение в прикладную математику» Джила Странга или «Конкретную математику» Кнута для идей.

2 голосов
/ 07 августа 2009

Вы хотите сделать проект с веб-интерфейсом и базой данных, но без какой-либо серьезной математики ... и вы делаете это в MATLAB? Понимаете ли вы, что MATLAB специально разработан для "глубокой математики", а не для веб-интерфейсов или баз данных?

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

Почему бы не сделать что-то с аудио? Я участвовал в студенческом проекте, в котором мы использовали MATLAB для автоматического подбора разных мелодий и диджейского микса между ними. Полная программа заняла весь семестр, но вы могли сделать подмножество. wavread () и т.п. встроены и просты в использовании.

Или выполните простую обработку изображений, например , нахождение Уолдо с использованием кросс-корреляции .

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

2 голосов
/ 06 августа 2009

Многое возможно.

Первый пример, который приходит на ум, - это модель сети общественного транспорта (сеть вашего города с метро, ​​автобусами, трамваями, ...). Он представлен взвешенным ориентированным графом (например, для его представления можно использовать разреженную матрицу).

Вы можете, например, попросить их вычислить кратчайший путь от одной станции к другой (например, алгоритм Мура-диджекистра) и отобразить его.

Итак, для студентов, следующие несколько шагов:

  • выберите подходящее представление для сети (это могут быть некоторые объекты для представления свойств станций и линий и разреженную матрицу для сети)
  • загрузить все данные (вы можете предоставить им данные в XML-файле)
  • сможет нарисовать сеть (так как вы положите координаты станций)
  • вычислите кратчайший путь из одной точки в другую и отобразите его довольно красиво
  • создать интерфейс (с графическим интерфейсом)

Конечно, это может быть затруднено добавлением времени соединения (когда вы переходите с одной линии на другую), запросом нескольких вариантов (кратчайший путь с минимальным количеством соединений, учитывайте время, которое вы теряете, ожидая поезд / автобус). , ...)

Уровень детализации будет зависеть от уровня учеников и времени, которое они могут потратить на это (это может быть очень просто или очень реалистично)

0 голосов
/ 11 августа 2009

db I / O и необычные интерфейсы неуместны в дискретном курсе математики.

В моих лабораториях matlab обычно использовались алгоритмы с диаграммами в качестве вывода и простым вводом файлов.

Насколько твердый материал? В Matlab обработка изображений действительно проста. Можете ли вы провести некоторую дискретную 2D-фильтрацию? размывает и прочее. http://homepages.inf.ed.ac.uk/rbf/HIPR2/filtops.htm

0 голосов
/ 06 августа 2009

Я всегда думал, что тот, кого мне назначили в аспирантуре, был хорошим выбором - симулятор с магнитной линзой . Математика не совсем сложна, поэтому вы можете больше сосредоточиться на изучении языка, и это хорошее введение в графические возможности (например, анимация пути внеосевого электрона, проходящего через линзу).

0 голосов
/ 31 июля 2009

Вы можете посмотреть здесь: http://www.mathworks.com/academia/student_center/tutorials/launchpad.html на веб-сайте MathWorks. Интерактивный учебник (вторая ссылка) довольно популярен.

- Loren

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...