Алгоритм умножения матриц на языке C

В данной статье мы рассмотрим алгоритм умножения матриц и приведем его код на языке программирования С.

Умножать можно такие прямоугольные матрицы, в которых число столбцов первой матрицы равно числу строк во второй (про такие матрицы говорят, что их форма согласована), то есть их размерность должна быть следующая: матрица A[m, n], матрица B[n, q].

Алгоритм умножения матриц

В результате умножения получится матрица C[m, q]:

Результирующая матрица после умножения

элементы которой находятся по формуле:

Алгоритм умножения матриц - формула

На языке C алгоритм умножения матриц может быть записан следующим образом:

Рассмотрим пример программы, которая умножает две квадратные матрицы размерностью N, заполненные случайными числами.

Подключим необходимые библиотеки к программе:

Объявим константу число N – размерность матриц:

Переходим к функции main(). Вначале необходимо выделить память под матрицы A, B и C:

Заполним матрицы A и B случайными числами.

srand(time(NULL)) – инициализация генератора случайных текущим временем компьютера.

rand() % 10 – берём остаток от деления на 10, следовательно элементы матрицы будут заполняться числами от 0 до 9.

Выполняем умножение матриц:

Выводим результат вычислений на экран:

Не забываем прибираться за собой. Освобождаем память:

Результат работы программы представлен на рисунке ниже:

Программа, умножающая матрицы - реализация алгоритма

Если вы хотите скачать исходник этой программы, но нажмите на кнопку.

Скачать исходник

 

 

Алгоритм умножения матриц на языке C
4.33 (86.67%) 6 votes

Поделиться в соц. сетях:

3 комментария(ев) к статье “Алгоритм умножения матриц на языке C

    1. admin Автор статьи

      Справедливо. В языке Си нет операторов new и delete. Переписал программу, используя СИшные malloc и free.

Добавить комментарий для wp2 Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">