Библиотека матричных операций (проект) — различия между версиями
Материал из Wiki - Факультет компьютерных наук
м (→Что это за проект?) |
|||
(не показано 7 промежуточных версии 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Карточка_проекта | {{Карточка_проекта | ||
− | |name=Библиотека матричных операций | + | |name=Библиотека матричных операций |
|mentor=Архангельский Сергей | |mentor=Архангельский Сергей | ||
− | |mentor_login={{URLENCODE: | + | |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. |
=== Критерии оценки === | === Критерии оценки === | ||
− | * | + | * 4-5 баллов: Реализация базовых операций, чтение / запись в файл и на консоль, транспонирование, доступ к элементам, сложение, умножение, решение системы линейных уравнений. |
− | * | + | * 6-7 баллов: Реализация дополнительных операций -- обращение матрицы, вычисление ранга, подсчет определителя и следа матрицы. |
− | * | + | * 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-разложение.