Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
2-ИЗО-Д16, 2-ИЗО-Д43, 2-ИЗО-Д23, 2-ИЗО-Д1, 2-ИЗО-Д23 ИУП, 2-ИЗО-Д1 ИУП
ЛЕКЦИЯ №2
Цель работы – познакомиться с основными средствами создания матриц и векторов, а также с основными средствами работы с матрицами и векторами, входящими в состав панели Vector and Matrix Toolbar.
2. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
2.1. Панель Vector and Matrix Toolbar
Рис. 2.1. Панель Vector and Matrix Toolbar
(Matrix or vector) – средство создания матриц и векторов [5]. С помощью этой пиктограммы можно получить доступ к диалоговому окну, с помощью которого задаются матрицы и векторы (рис. 2.1).
На свободном месте рабочего листа системы MathCAD помещаем курсор, щёлкнув левой кнопкой мыши, и вводим имя матрицы (или вектора), например, М. Вводим оператор присваивания и, нажав левой кнопкой мыши по пиктограмме Matrix or vector, открываем диалоговое окно Insert Matrix (рис. 2.2), в котором указываем число строк и столбцов матрицы. Rows – число строк матрицы или вектора.
Columns – число столбцов матрицы. Для вектора число столбцов всегда надо задавать равным единице.
Рис. 2.2. Панель Insert Matrix (Вставить матрицу)
Нажимаем левой кнопкой мыши по виртуальной кнопке OK и получаем шаблон, в который вводим значения элементов матрицы:
Вводим, например, следующие значения:
Подобным же образом задаём вектор vc:
Есть и другие способы задания матриц, о которых расскажем ниже.
Xn (Subscript) – средство задания элемента вектора или матрицы.
На свободном месте рабочего листа системы MathCAD помещаем курсор, щёлкнув левой кнопкой мыши. Щёлкаем левой кнопкой мыши по пиктограмме Xn. Появляются два местозаполнителя.
В верхний местозаполнитель вводим имя матрицы, а в нижний номер строки и, через запятую, номер столбца того элемента матрицы, который будем использовать. Например, если хотим просто узнать, чему равен элемент вышеприведённой матрицы M, расположенный в строке с номером 1 и в столбце с номером 1, то получим следующий результат . Напоминаем, что счёт строк и столбцов матрицы, по умолчанию, ведётся начиная с нуля. Элемент вектора vc, расположенный в строке с номером 2, будет равен . Для элемента вектора достаточно задавать только один индекс – номер строки, так как у вектора всегда один столбец (или одна строка, если это вектор-строка).
X-1(Inverse) – определение обратной матрицы.
Например, для вышеприведённой матрицы M обратная матрица будет выглядеть следующим образом:
Если применить эту операцию не к матрице, а к вектору, то получим новый вектор, каждый элемент которого будет равен обратному элементу исходного вектора. Например, для вектора vc применение этой операции приведёт к следующему результату:
|X| (Determinant) – вычисление определителя матрицы M.
Зададим матрицу
Вычислим её определитель:
(Vectirize) – векторизированные вычисления.
Используются, когда надо выполнить однотипные действия над соответствующими элементами векторов или матриц, например, если надо перемножить соответствующие элементы двух векторов или матриц.
Зададим две матрицы
и
С помощью векторизированного вычисления получим матрицу M, элементы которой равны произведениям соответствующих элементов двух исходных матриц:
(Matrix column) – возвращает столбец матрицы.
Например, хотим определить вектор V, равный нулевому столбцу матрицы M:
В результате получим
(Matrix transpose) – транспонирование матрицы (замена строк столбцами).
Например, хотим определить транспонированную матрицу M:
В результате получим
Если хотим определить не нулевой столбец матрицы M, как в предыдущем примере, а нулевую строку матрицы M, то надо предварительно транспонировать исходную матрицу:
m..n (Range Variable) – задание ранжированной переменной.
Ранжированная переменная является вектором. Она задаётся двумя способами: с помощью дух параметров или с помощью трёх параметров.
Зададим ранжированную переменную с помощью двух параметров:
X:=0..5.
Первый параметр определяет начальный элемент вектора, второй параметр определяет последний элемент вектора. В случае задания ранжированной переменной с помощью двух параметров каждый последующий элемент отличается от предыдущего на единицу:
Зададим ранжированную переменную с помощью с помощью трёх параметров:
X:=−1, −0.5..1.5.
Первый параметр определяет начальный элемент вектора, второй параметр определяет следующий после начального элемент вектора. Третий параметр определяет последний элемент вектора. В случае задания ранжированной переменной с помощью трёх параметров каждый последующий элемент отличается от предыдущего величину, равную разности между вторым параметром и первым параметром:
(Dot product) – скалярное произведение векторов.
Это произведение равно сумме произведений элементов векторов, имеющих одинаковые индексы:
Скалярное произведение двух векторов можно также определить как произведение длин векторов на косинус угла между ними:
Зададим два вектора
Вычислим их скалярное произведение:
Укажем сценарий в системе MathCAD, с помощью которого определим угол между двумя трёхмерными векторами v и w:
Координаты векторов выбраны таким образом, чтобы угол между ними был равен 30о. Вектор v лежит на оси X, и его длина равна 1. Вектор w лежит в плоскости XY. Его длина равна 2. Проекция на ось Y равна 1, а проекция на ось X равна
Арккосинус (acos) возвращает угол, измеренный в радианах.
Найдём угол, измеренный в градусах:
Длины векторов определяются с помощью функции Absolute Value из панели Calculator. Не перепутайте с аналогичным значком из панели Matrix, с помощью которого вычисляется определитель (Determinant) матрицы.
Если попытаться по тому же сценарию определить угол между двумя векторами
то получим тот же ответ, хотя угол между векторами v и w1 равен не 30о, а −30о. Это объясняется тем, что , поэтому сценарий с использования функции acos не позволяет отличить положительный угол от отрицательного угла.
(cross product) – векторное произведение векторов.
Зададим два вектора
Вычислим их векторное произведение:
Векторное произведение векторов равно вектору, модуль (длина) которого равна произведению модулей векторов на синус угла между ними, а направление перпендикулярно плоскости, в которой лежат векторы-сомножители
.
(Vector Sum) – сумма элементов вектора.
Зададим вектор
Определим сумму элементов вектора
(Picture) – картина.
В начале этой работы (см. Панель Vector and Matrix Toolbar) было указано, как можно создавать матрицы вручную с помощью панели Matrix and Vector. Такой способ хорош только для матриц небольшого размера.
Зададим матрицу P новым способом, так как это будет очень большая матрица, содержащая, например, 256 строк и 256 столбцов. Элементы матрицы зададим с помощью формулы. В матрице предусмотрим 256 строк и 256 столбцов. Эти величины задаём с помощью ранжированных переменных
;
.
Каждый элемент матрицы содержит информацию о яркости соответствующего элемента изображения (пиксела). Чтобы получить изображение надо щёлкнуть левой кнопкой мыши по пиктограмме Picture. Появится шаблон для формирования изображения. Для получения чёрно-белого изображения надо в левом нижнем местозаполнителе шаблона ввести имя одной матрицы P. Если то соответствующий пиксел будет чёрным. Если то соответствующий пиксел будет белым. Остальные значения (от 1 до 254) соответствуют градациям серого оттенка.
Реальная яркость кодируется одним байтом (8 двоичных разрядов). Один байт может представить 28=256 различных целых положительных чисел (от 0 до 255). Поэтому реальная яркость пиксела определяется как частное от деления по модулю 256 чисел Pi,j. Частное от деления по модулю 256 любого числа равно остатку от деления этого числа на 256. Например, (100 mod 256) = 100, (356 mod 256) = 100, (1124 mod 256) = 100. Поэтому в изображении появляется периодичность (рис. 2.3).
Рис. 2.3. Изображение, построенное с помощью матрицы яркостей P
Для того чтобы получить цветное изображение, надо создать три матрицы: R – матрица красного цвета для каждого пиксела; G – матрица зелёного цвета для каждого пиксела; B – матрица голубого цвета для каждого пиксела. (R – Red, G – Green, B – Blue). Имена матриц можно выбрать другими. Эти матрицы надо указать через запятую в левом нижнем местозаполнителе компонента Picture.