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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
м (Что это за проект?)
 
(не показано 7 промежуточных версии 3 участников)
Строка 1: Строка 1:
 
{{Карточка_проекта
 
{{Карточка_проекта
|name=Библиотека матричных операций
+
|name=Библиотека матричных операций  
 
|mentor=Архангельский Сергей
 
|mentor=Архангельский Сергей
|mentor_login={{URLENCODE:{{REVISIONUSER}}|WIKI}}
+
|mentor_login={{URLENCODE:Vertix|WIKI}}
 
|semester=Весна 2015
 
|semester=Весна 2015
 
|course=1
 
|course=1
 
|summer=on
 
|summer=on
 
|categorize=yes
 
|categorize=yes
 +
|is_archived=yes
 +
|is_remote=
 
}}
 
}}
 
 
=== Что это за проект? ===
 
=== Что это за проект? ===
 
Задача проекта -- разработать библиотеку, позволяющую выполнять различные операции над матрицами.
 
Задача проекта -- разработать библиотеку, позволяющую выполнять различные операции над матрицами.
Строка 15: Строка 16:
 
* Использованию объектно-ориентированного подхода на практике
 
* Использованию объектно-ориентированного подхода на практике
 
* Основам линейной алгебры
 
* Основам линейной алгебры
* Разнице между теоретической и вычислительной математике -- не все что можно сделать в теории, можно сделать на практике (например определить ранг матрицы)
+
* Разнице между теоретической и вычислительной математикой -- не все, что можно сделать в теории, можно сделать на практике (например определить ранг матрицы)
 
* Практике тестирования кода
 
* Практике тестирования кода
  
Строка 31: Строка 32:
 
* Поддержка разреженных (sparse) матриц
 
* Поддержка разреженных (sparse) матриц
 
* Реализация консольного интерфейса к библиотеке, по аналогии с Matlab и R.
 
* Реализация консольного интерфейса к библиотеке, по аналогии с Matlab и R.
* Реализация с помощью библиотеке простейших методов машинного обучения, например линейной регрессии, метода PCA.
+
* Реализация с помощью библиотеки простейших методов машинного обучения, например линейной регрессии, метода PCA.
  
 
=== Критерии оценки ===
 
=== Критерии оценки ===
* Удовлетворительно: Реализация базовых операций, чтение / запись в файл и на консоль, транспонирование, доступ к элементам, сложение, умножение, решение системы линейных уравнений.
+
* 4-5 баллов: Реализация базовых операций, чтение / запись в файл и на консоль, транспонирование, доступ к элементам, сложение, умножение, решение системы линейных уравнений.
* Хорошо: Реализация дополнительных операций -- обращение матрицы, вычисление ранга, подсчет определителя и следа матрицы.
+
* 6-7 баллов: Реализация дополнительных операций -- обращение матрицы, вычисление ранга, подсчет определителя и следа матрицы.
* Отлично: Реализация нескольких алгоритмов декомпозиции матриц, eigen-decomposition (нахождение собственных значений и векторов), LU-разложение.
+
* 8-10 баллов: Реализация нескольких алгоритмов декомпозиции матриц, eigen-decomposition (нахождение собственных значений и векторов), LU-разложение.
  
 
=== Дополнительные ссылки ===
 
=== Дополнительные ссылки ===
 
* [https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0 Метод Гаусса решения систем линейных уравнений]
 
* [https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0 Метод Гаусса решения систем линейных уравнений]
 
* [https://ru.wikipedia.org/wiki/LU-%D1%80%D0%B0%D0%B7%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 LU разложение]
 
* [https://ru.wikipedia.org/wiki/LU-%D1%80%D0%B0%D0%B7%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 LU разложение]

Текущая версия на 22:07, 19 января 2015

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


Внимание! Данный проект находится в архиве и реализован не будет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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