Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
куляев текст с рамкой.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
955.39 Кб
Скачать

2.3 Умножение матрицы на вектор

По определению произведения матриц умножение возможно только в том случае, если количество столбцов первого множителя равно количеству строк второго. Следовательно, вектор-строку удастся умножить только на матрицу, в которой столько же строк, сколько элементов в вектор-строке. Аналогично, вектор-столбец можно умножить только на матрицу, в которой столько же столбцов, сколько элементов в вектор-столбце.

Умножение матриц некоммутативно, то есть если A и B —матрицы, то A*B ≠ B*A. Более того, существование произведения A*B вовсе не гарантирует существования произведения B*A. Например, если матрица A имеет размеры 3*4, а матрица B — 4*5, то произведение A*B —матрица размером 3*5, а B*A не определено.

Пусть задан: вектор-строка A = [a1, a2, a3 … an] и матрица B размерности n*m, элементы которой равны: [b11, b12, b13, … b1m; b21, b22, b23, … b2m; … bn1, bn2, bn3, … bnm].

Тогда произведение A*B будет вектор-строкой размерности 1*m, причем каждый элемент ее равен:

Cj = ∑ai*bij (i = 1 … n, j = 1 … m)

Иными словами, для нахождения i-того элемента произведения нужно умножить каждый элемент вектора-строки на соответствующий ему по порядку элемент i-того столбца матрицы и просуммировать эти произведения.

Аналогично, если задана матрица A размерности m*n и вектор-столбец B размерности n*1, то их произведение будет вектором-столбцом размерности m*1, i-тый элемент которого равен сумме произведений элементов вектора-столбца B на соответствующие им элементы i-той строки матрицы A.

В приложении представлена программа для умножения матрицы A на вектор B, выполненные на языке программирования C++.

Рисунок 5 Решение умножения матрицы на вектор

Рисунок 6 Интерфейс решения программы

умножения матрицы на вектор

3.Блок-схемы программы

3.1. Блок-схемы программы вычисления уравнения методом половинного деления.

3.2. Блок-схема программы вычисления уравнения

3.2. Блок-схемы методом Эйлера

    1. Блок-схема программы вычисления умножения

матрицы на вектор

Заключение

В заключение хотелось бы отметить, что методы структурного программирования позволяют более мобильно и качественно проводить работу по модернизации программного обеспечения. Так достаточно усовершенствовать отдельный модуль откомпилировать его и главный модуль, для достижения, желаемого результата. Более того, текст главной программы более читаем, и занимает меньше места. Имеющиеся наработки в отдельных модулях можно использовать в других про граммах, не задумываясь об их работоспособности. Четко вычерченная структура позволяет яснее представить цели и задачи стоящие перед программистом. Не нужно все время перемещаться по тексту взад и вперед. В любой промежуток времени работы над очень большой программной появляется возможность сконцентрироваться на отдельном модуле. Открывается возможность совместной работы нескольких человек над одной громоздкой программной. Удачно разработанный модуль одного программиста становиться, доступен другим.

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