УДК 51-7
Паникарова А.А.,
студентка группы 21ис-1 ОГАПОУ «Ульяновский авиационный колледж - Межрегиональный центр компетенций»,
г. Ульяновск, РФ Научный руководитель: Ершова Н.А., Преподаватель
ОГАПОУ «Ульяновский авиационный колледж - Межрегиональный центр компетенций»,
г. Ульяновск, РФ
ПРИМЕНЕНИЕ МАТРИЦ В ПРОГРАММИРОВАНИИ
Аннотация
В данной статье рассматриваются матрицы и их история, то, как матрицы применяются в программировании, решение математических задач на примере языка программирования С#.
Ключевые слова
матрица, программирование, математическая задача, язык программирования С#.
В современном мире информационные технологии вживаются в нашу рутину все сильнее, они значительно упрощают нашу жизнь. К примеру, банально смартфоны, которыми мы пользуемся каждый день, запрограммированы на определенные задачи. Поэтому тема программирования на данный момент весьма актуальна.
Но нельзя представить программирование без математики, они тесно связаны между собой. В данной работе я хочу рассмотреть матрицы, так как они проникли во все сферы человеческой жизни. Они используются почти во всех областях науки. Для решения практических задач, где применяются массивы и таблицы, непосредственно необходимы знания о матрицах и действиях над ними.
Целью данной работы является применение знаний о матрицах в программировании.
Исходя из поставленной цели вытекает ряд задач:
1) изучение источников по данной тематике;
2) описание понятия и истории матриц;
3) применение матриц в программировании;
4) решение математической задачи на примере языка программирования С#.
Объектом исследования данной работы являются матрицы.
Предметом исследования является применение матриц в программировании.
Для начала необходимо понять, что же такое матрицы и их историю. Прямоугольная таблица чисел, содержащая т строк и п столбцов, называется матрицей размера т х п. Но если говорить со стороны программирования, то это двумерный массив. В жизни мы постоянно используем матрицы, простым примером являются билеты в кино или на спектакль, зал можно представить в виде матрицы, ряд - строка , а место - столбец.
а11 а12 а1п А=(а21 а22 а2п) ат1 ат2 атп
Впервые матрицы упоминались ещё в древнем Китае, тогда они назывались «волшебным квадратом».
ISSN 2410-700X
международный научный журнал «символ науки»
# 2-2 / 2023
Рисунок 1 - Волшебный квадрат
В основном, они применялись для решения линейных уравнений. Идея сложения и вычитания матриц появился уже позднее, когда «волшебные квадраты» были известны среди арабских математиков. В конце XVII века, Габриэль Крамер начал работу над своей теорией в XVIII столетии и опубликовал «правило Крамера» в 1751 году. Приблизительно в этот период появился «метод Гаусса». Основные разработки в теории матриц берут свое начало от Вейерштрасса, Жордана, Фробениуса. Непосредственно сам термин «матрица» ввел Джеймс Сильвестр в 1850 г.
Над матрицами, как и над числами, можно производить ряд алгебраических операций, причем большинство из них схожи с операциями над числами:
1) их сложение и вычитание;
2) умножение самих матриц;
3) умножение на число;
4) возведение в степень;
5) также над матрицами можно выполнить их транспонирование.
Многие задачи в программировании связаны с обработкой многомерных массивов данных. Наиболее распространены при этом двумерные массивы. В математике двумерные массивы представляются матрицей. Обычно при работе с двумерными массивами используются вложенные циклы.
К примеру, для объявления матрицы (двумерного массива) в языке программирования C# применяется следующая запись:
int[,] matrix = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
Выполняя различные действия над двумерными массивами (матрицами), можно решить огромное количество задач.
Рассмотрим одну из задач и ее решение на языке программирования C#:
Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной и побочной.
Главная диагональ:
for ( i = О; i < N; i++ ) { // работаем с A[i][i] )
Побочная диагональ:
for ( i = 0; i <N; i++ ) {
// работаем с A[i][N-l-i]
jJ_
Главная диагональ и под ней:
for ( i = 0; i <N; i++ )
for { j = 0; j<= i ; j++ ) {
// работаем с A[i][j] }
m
Рисунок 2- Перебор элементов матрицы
float SumParalGL = B; float SumParalPoboch = B; float SumParalGLAn d Pobo t± - 6; float SumGlavDiag = 9; Console .WriteLineCBBeflHTe noppflOK ii t H = . , ParseCConsols . ReadLineO] f int[,3 matrix = new int[ie, U]; for tint i's I; i M+l; i++)
T^
for Cint k =■ l; k < H+l; k++J {
Console.Write(i"ii}: i Console.WritetiMW:");
matrix[iF 3-i3 = :..it. ParseCConsole . ReadLinjeQ};
i } }
for Cint i = 1; i < H+l; i++) {
for tint k - lj k: < H+l; k++) t
if Ci != k as i + k •= H+i ) {
SumParalGLAndPoboch += matrix[i, k];
}
if Ci = k) {
SumGlavDiag += matrix[i, h];
}
if Ci I~ k) {
SumParalGL += matrix [ij k]
i
if Ci + k !- H+ll {
SumParalPoboch += matrix[i, k];
}
i
>
Console WriteLineCSuraParalGL); Con: .WriteLineCSumParalPoboch); Console.WriteLineCSumParalGLAndPoboch}; Console .WriteLineCSiuiGlavDiag];
Рисунок 3 - Решение задачи
Таким образом, программирование нельзя представить без использования матриц. Будь то математическая, экономическая или просто рутинная задачи, двумерные массивы просто необходимы. С каждым годом они внедряются в нашу жизнь все больше и больше. Список использованной литературы:
1. Линейная алгебра: учеб. пособие / Н.В. Гредасова, М.А. Корешникова, Н.И. Желонкина [и др.]; Мин-во науки и высш. образования РФ — Екатеринбург: Изд-во Урал. ун-та, 2019.— 88 с.
2. Массивы// Metanit: сайт - 2023 URL: C# и .NET | Массивы (metanit.com) (дата обращения: 15.02.2023). -Текст: электронный.
3. Разложение матрицы // Microsoft: сайт - 2023 URL: C# - Разложение матрицы | Microsoft Learn (дата обращения: 15.02.2023). - Текст: электронный.
© Паникарова А.А., 2023