Бакалавриат
2019/2020
Компьютерный практикум по алгебре на языке Python
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 2, 3 модуль
Формат изучения:
без онлайн-курса
Язык:
русский
Кредиты:
3
Контактные часы:
36
Программа дисциплины
Аннотация
Курс состоит из практических занятий в компьютерном классе, на которых студенты решают задачи по линейной алгебре и аналитической геометрии, используя такие пакеты Python как Numpy, Sympy и пр. Дисциплина относится к проектной и исследовательской работе и является дисциплиной по выбору. Курс охватывает такие разделы алгебры как численные и символьные преобразования, действия над матрицами, системы линейных уравнений, линейные операторы, квадратичные формы и комплексные числа. В курсе также изучаются методы решения задач аналитической геометрии, связанные со взаимным расположением прямых на плоскости и прямых и плоскостей в пространстве. Для решения задач используются средства Python. На занятии на примере конкретной задачи преподаватель показывает, как применяется тот или иной математический аппарат. Далее студенты выполняют аналогичные задания самостоятельно, консультируясь, если нужно, с преподавателем. Затем студенты самостоятельно решают свою индивидуальную задачу. Решение всех задач каждого занятия студенты показывают преподавателю или учебному ассистенту, отвечают на вопросы по решению. Задание каждого практического занятия оценивается по 10-балльной шкале. В конце курса студенты сдают письменный экзамен, на котором отвечают на теоретические вопросы, связанные с решением алгебраических задач в Python.
Цель освоения дисциплины
- приобретение студентами навыков решения наиболее важных с прикладной точки зрения задач
Планируемые результаты обучения
- Уметь решать системы линейных уравнений средствами Python
- Исследовать взаимное расположение прямых и плоскостей средствами Python
- Исследовать кривые и поверхности второго порядка
- Находить корни многочленов в Python
- Контролировать точность вычислений в Python
- Уметь проводить вычисления в Python
- Осуществлять переход к новому базису
Содержание учебной дисциплины
- Вычисления в PythonЧисленные и символьные преобразования. Действия над матрицами. Вычисление определителей. Обратная матрица.
- Программирование в PythonОсновы программирования в Python. Условный оператор. Циклы. Функции.
- Системы линейных уравнений в PythonКлассификация СЛАУ, ранг СЛАУ, вычисление ранга. Точные методы решения СЛАУ: формулы Крамера, метод Гаусса. Итерационные методы решения СЛАУ. Переопределенные СЛАУ. Недоопределенные СЛАУ. СЛАУ с плохо обусловленной матрицей. Матричные уравнения.
- Аналитическая геометрия в PythonПроизведения векторов (скалярное, векторное, смешанное). Уравнения прямых на плоскости и в пространстве. График прямой на плоскости и в пространстве. Взаимное расположение прямых на плоскости и прямых и плоскостей в пространстве.
- Линейные операторыМатрица линейного оператора в разных базисах, переход к новому базису. Собственные числа и собственные векторы линейного оператора.
- Квадратичные формыМатрица квадратичной формы. Канонический вид квадратичной формы. Знакоопределенные квадратичные формы. Кривые и поверхности второго порядка, тип, каноническое уравнение, график.
- Комплексные числаПредставление комплексных чисел в Python. Действия с комплексными числами.
- Контроль точности вычисленийТочность вычисления числовых выражений. Погрешность решения СЛАУ.
Элементы контроля
- Работа на семинаре (ЛР1)
- Работа на семинаре (ЛР2)
- Работа на семинаре (ЛР3)
- Работа на семинаре (ЛР4)
- Работа на семинаре (ЛР5)
- Работа на семинаре (ЛР6)
- Работа на семинаре (ЛР7)
- Работа на семинаре (ЛР8)
- Работа на семинаре (ЛР9)
- Работа на семинаре (ЛР10)
- Работа на семинаре (ЛР11)
- Работа на семинаре (ЛР12)
- Работа на семинаре (ЛР13)
- Работа на семинаре (ЛР14)
- Работа на семинаре (ЛР15)
- Работа на семинаре (ЛР16)
- Работа на семинаре (ЛР17)
- Экзамен (Э)Экзамен письменный, без прокторинга. Задания выполняются студентами и отправляются преподавателю на проверку
Промежуточная аттестация
- Промежуточная аттестация (3 модуль)Окончательная оценка = Округление(1/34 *(ЛР1+... +ЛР17)+ 1/2 * Экз) - Окончательная оценка за дисциплину
Список литературы
Рекомендуемая основная литература
- Romano, F. (2015). Learning Python. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=nlebk&AN=1133614
Рекомендуемая дополнительная литература
- Andrew Bird, Dr Lau Cher Han, Mario Corchero Jiménez, Graham Lee, & Corey Wade. (2019). The Python Workshop : A New, Interactive Approach to Learning Python. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2291496