Вы находитесь на странице: 1из 5

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ


УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«Санкт-Петербургский государственный морской технический университет»
Факультет цифровых промышленных технологий
Кафедра Киберфизических систем

Практическая работа №1
«Управление дискретно-непрерывными системами»

Выполнила:
Студентка группы 20321,
Шефер Д.А.
Преподаватель:
Портнов И.М.

г. Санкт-Петербург
2023
Формулировка задания

1. Вычислить расстояние между a и b по заданной метрике.


2. Вычислить норму a .
3. Вычислить норму b .
Задание можно выполнить письменно или написать код (язык
программирования любой). Предоставить отчет (файл word) или рукописный.
Таблица 1 – Формулы для вычисления
Метрика Норма a Норма b
17
(∑| )
n 1
p p
ai−bi|
i=1 max|ai| max|bi|
1 ≤i ≤ n 1 ≤i ≤ n
p=3

Таблица 2 – Матрицы a и b
a b

() ()
17 96 48
−78 −99
46 −61
85 89
−59 56
75 −69
17 −9
−71 −46
−99 −17
20 36
−49 −18
2 −43

2
Ход работы

Вариант работы – 17. Для вычисления расстояния между a и b, а также


норм матриц воспользуемся формулами из таблицы 1. Значения для матриц a и
b возьмем из таблицы 2.
Вычисления будем проводить с применением языка Python. Для удобства
расчетов воспользуемся функциями abs(), max(), и инициализируем библиотеку
numpy.
Объявляем переменные a, b и p, и заполняем их значениями из таблиц 1,
2. Затем вводим формулы для расчета метрики и норм матриц. Результат
вычисления выведем в консоль.
Результат вычислений был проверен вручную (рис. 1, рис. 2).

3
Рисунок 1 – Ручной подсчет задания 1

Рисунок 2 - Ручной подсчет заданий 2 и 3

4
Полученные результаты

Результат выполнения программы показан на рисунке 3. Листинг кода


представлен в Листинге 1.

Рисунок 3 — Результат вычисления метрики и норм матриц a и b


Листинг 1 — Код расчета метрики и норм матриц a и b
import numpy as np

a = np.array([96,-78,46,85,-59,75,17,-71,-99,20,-49,2])
b = np.array([48,-99,-61,89,56,-69,-9,-46,-17,36,-18,-43])
p = 3

# Считаем метрику
metrics = sum(abs(a-b)**p)**(1/p)

# Считаем норму a
normaA = abs(max(a, key = abs))

# Считаем норму b
normaB = abs(max(b, key = abs))

print("Метрика: " + str(metrics))


print("Норма матрицы a: " + str(normaA))
print("Норма матрицы b: " + str(normaB))

Вам также может понравиться