Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
семестр 1 / Задания ИТиП.docx
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
45.02 Кб
Скачать

Лабораторная работа № 14. Линейные уравнения

Цель работы: научиться составлять и решать системы линейных уравнений в numpy

Даны точки на плоскости: (j, j), (j + i, j + 2i), (j + 2i, j - 2i), (j + 3i, 2j - i2), (j + 4i, 2j + i), (j + 5i, 2j - i / 2)

Найти:

1. Многочлен минимальной степень (y = a0 + a1 x + a2 x2 + ...), проходящий через все точки.

1а. Определить порядок многочлена (зависит от количества точек)

1б. Написать многочлен в общем виде

1в. Подставить каждую точку в формулу многочлена, составить систему уравнений.

1г. Представить систему уравнений в матричном виде, решить с помощью numpy

Система уравнений вида:

Ax = b

где A -- матрица коэффициентов, b -- матрица результатов, x - матрица неизвестных

решается с помощью функции:

x = np.linalg.solve(A, b)

2. Записать формулу получившегося многочлена, построить график, сделать выводы.

Примечание:

В данной задаче неизвестными являются коэффициенты многочлена, а координаты точек (x и y) известны изначально.

Для составления системы уравнений удобно представить точки в виде двух одномерных матриц:

И находить различные степени x, возводя первую матрицу в степень поэлементно.

Важно. Чтобы не возникало переполнения массивов при возведении в большую степень, следует значения точек представить в виде float (например не 60, а 60.0)

Для составления матрицы коэффициентов системы уравнений можно создать пустую матрицу нужного размера и вставлять в неё нужные элементы:

A = np.empty((n,n))

A[:,0]=x

A[:,1]=x_v_kvadrate

Для построения графика с помощью библиотеки matplotlib.pyplot можно использовать функции:

pyplot.plot(x,y) – линия, pyplot.scatter(x,y) – только точки на графике

Лабораторная работа № 15. Загрузка и подготовка данных

Дан набор данных о составе и качестве вина:

https://drive.google.com/file/d/15LxhtTT-AfAU6Vjqo63F_3VaPyXcJfmS/view?usp=sharing

(набор данных взят из ресурса kaggle URL:https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009?resource=download)

Данные представляют собой таблицу, в которой каждый столбец, кроме последнего, соответствует одному из параметров вина, последний столбец обозначает качество (1-10), каждая строка в таблице -- образец вина.

В представленном файле каждая строка -- это строка таблицы, внутри строки столбцы разделены запятыми.

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

1. Открыть файл и представить в виде списка, каждый элемент которого -- это список параметров одного образца)

2. Создать из полученных данных массив numpy

3. Разделить (например с помощью срезов) на отдельные массивы numpy для параметров вина (кроме последнего столбца) и результатов (последний столбец)

3. Вывести данные для первых 5 образцов.

Примечание: 1 строка таблицы -- это заголовки

Полезные функции:

Конструкция with вместе с функцией open(filename) позволяет открыть файл (filename – путь к файлу) и автоматически закрывает, когда отступ пропадает:

with open(filename) as f:

Действия с файлом f

Функция file.readlines() позволяет создать список строк файла:

lines = f.readlines()

Функция str.split(sep) позволяет разделить строку на список строк, по разделителю, где sep -- разделитель:

str = "ab.cd.ef"

l_str = str.split('.') # l_str: ["ab", "cd", "ef"]

Функция map(func, list) позволяет применить функцию func к каждому элементу списка list.

Важно: сама функция лишь создаёт намерение сделать такую операцию, чтобы получить сам список, надо преобразовать результат функции в список:

l_str = ["12", "13", "15"]

map_str_fl = map(float, l_str) # map_str_fl: Объект map

t_fl = tuple(map_str_fl) # t_fl: (12.0, 13.0, 15.0)

Соседние файлы в папке семестр 1