Библиотека матричных операций (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Что это за проект?)
Строка 10: Строка 10:
  
 
=== Что это за проект? ===
 
=== Что это за проект? ===
Задача проекта -- разработать библиотеку позволяющую выполнять различные операции над матрицами,
+
Задача проекта -- разработать библиотеку, позволяющую выполнять различные операции над матрицами,
  
 
=== Чему вы научитесь? ===
 
=== Чему вы научитесь? ===

Версия 16:52, 29 декабря 2014

Ментор Архангельский Сергей
Учебный семестр Весна 2015
Учебный курс 1-й курс
Проект можно развивать на летней практике



Что это за проект?

Задача проекта -- разработать библиотеку, позволяющую выполнять различные операции над матрицами,

Чему вы научитесь?

  • Использованию объектно-ориентированного подхода на практике
  • Основам линейной алгебры
  • Разнице между теоретической и вычислительной математике -- не все что можно сделать в теории, можно сделать на практике (например определить ранг матрицы)
  • Практике тестирования кода

Какие начальные требования?

  • Владение одним из языков программирования (C++ / Python) в рамках прослушанного курса
  • _Базовое_ знание линейной алгебры.

Какие будут использоваться технологии?

Те, которые предполагаются форматом проектного семинара, git, github, возможно среды разработки.

Темы вводных занятий

  • Основые алгоритмы линейной алгебры

Направления развития

  • Поддержка разреженных (sparse) матриц
  • Реализация консольного интерфейса к библиотеке, по аналогии с Matlab и R.
  • Реализация с помощью библиотеке простейших методов машинного обучения, например линейной регрессии, метода PCA.

Критерии оценки

  • Удовлетворительно: Реализация базовых операций, чтение / запись в файл и на консоль, транспонирование, доступ к элементам, сложение, умножение, решение системы линейных уравнений.
  • Хорошо: Реализация дополнительных операций -- обращение матрицы, вычисление ранга, подсчет определителя и следа матрицы.
  • Отлично: Реализация нескольких алгоритмов декомпозиции матриц, eigen-decomposition (нахождение собственных значений и векторов), LU-разложение.

Дополнительные ссылки