Научная статья на тему 'КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ В ПРЕПОДАВАНИИ МАТЕМАТИЧЕСКИХ ДИСЦИПЛИН'

КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ В ПРЕПОДАВАНИИ МАТЕМАТИЧЕСКИХ ДИСЦИПЛИН Текст научной статьи по специальности «Математика»

CC BY
40
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРАФ / МАТРИЦА СМЕЖНОСТИ / МАТРИЦА ИНЦИДЕНТНОСТИ / МАТРИЦА КИРХГОФА / ОСТОВ ГРАФА / MAPLE / МАШИННАЯ КОМАНДА

Аннотация научной статьи по математике, автор научной работы — Горюшкин А.П.

Обсуждается методика использования компьютера при изучении вузовских курсов «Дискретная математика» и «Теория графов». В работе показывается применение пакета символьных вычислений Maple для обнаружения свойств основных матриц графа и экспериментальной проверки этих свойств.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPUTER EXPERIMENT IN TEACHING MATHEMATICAL DISCIPLINES

The method of using a computer in the study of university courses «Discrete Mathematics» and «Graph Theory» is discussed. The paper shows the use of the symbolic computing package Maple to detect the properties of the main matrices of the graph and experimental verification of these properties.

Текст научной работы на тему «КОМПЬЮТЕРНЫЙ ЭКСПЕРИМЕНТ В ПРЕПОДАВАНИИ МАТЕМАТИЧЕСКИХ ДИСЦИПЛИН»

Вестник КРАУНЦ. Физ.-мат. науки. 2022. Т. 38. №1. C. 74-83. ISSN 2079-6641

УДК 519.71

Научная статья

Компьютерный эксперимент в преподавании математических дисциплин

А. П. Горюшкин

Камчатский государственный университет имени Витуса Беринга, 683032, г. Петропавловск-Камчатский, ул. Пограничная, 4 E-mail: as2021@mail.ru

Обсуждается методика использования компьютера при изучении вузовских курсов «Дискретная математика» и «Теория графов». В работе показывается применение пакета символьных вычислений Maple для обнаружения свойств основных матриц графа и экспериментальной проверки этих свойств.

Ключевые слова: граф, матрица смежности, матрица инцидентности, матрица Кирхгофа, остов графа, Maple, машинная команда.

Для цитирования. Горюшкин А. П. Компьютерный эксперимент в преподавании математических дисциплин // Вестник КРАУНЦ. Физ.-мат. науки. 2022. Т. 38. № 1. C. 74-83. DOI: 10.26117/2079-6641-2022-38-1-74-83

Контент публикуется на условиях лицензии Creative Commons Attribution 4.0 International (https://creativecommons.Org/licenses/by/4.0/deed.ru)

© Горюшкин А. П., 2022

Введение

Решения конкретных задач курса дискретной математики и теории графов, связанных с громоздкими матричными вычислениями, существенно облегчает компьютерная техника (например, [1]—[4]). Однако компьютер позволяет не только значительно упростить практическую часть курса, но и существенно облегчить усвоение теоретического материала.

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

Финансирование. Исследование выполнялось без финансовой поддержки фондов.

d DOI: 10.26117/2079-6641-2022-38-1-74-83

Поступила в редакцию: 13.03.2022

В окончательном варианте: 15.04.2022

Здесь предлагаются компьютерные эксперименты, связанные со свойствами основных матриц, задающих граф: матрицей смежности, матрицей инцидентности и матрицей Кирхгофа.

Эксперименты с матрицей смежности

Войдем в подпакет «Теория графов», зададим значения числа вершин исследуемого графа (n) и число ребер (m), затем войдем в подпакет «Случайный граф» и дадим команду компьютеру построить случайный граф на n вершинах с m ребрами. Для примера положим n = 4 и m = 4.

> with(GraphTheory): # вход в подпакет «Теория графов»

> with(RandomGraphs): # вход в подпакет «Случайный граф»

> n := 4; m := 4; # задание значений параметров

> G := RandomGraph(n, m); # создание случайного неориентированного невзвешенного графа на п вершинах с m ребрами

G := Graph 1: an undirected unweighted graph with 4 vertices and 4 edge(s)

Граф создан, но он пока невидим, сделаем его видимым с помощью списка ребер.

> Edges(G);

Сейчас у нас полная информация о графе G, но даже простые вопросы о связности или планарности графа, заданного списком ребер (особенно если этот список не такой маленький, как в этом примере), могут вызвать затруднения. Впрочем, эти вопросы можно задать машине.

> IsPlanar(G, 'F'); # граф G - планарный?

true

> IsConnected(G); # граф G - связный?

true

Наконец посмотрим на графическую интерпретацию графа G и найдем его матрицу смежности

> DrawGraph(G);

> A := AdjacencyMatrix(G);

Матрица смежности показывает число путей длины один между вершинами графа. Например, в четвертой строке (соответствующей вершине номер 4) стоят четыре единицы, и, следовательно, эта вершина связана путем длины 1 с каждой из остальных вершин нашего графа.

Сделаем матрицу смежности более наглядной, для этого присвоим ребрам графа С имена.

А

d У 4а

В матрице смежности графа С заменим безымянные единицы именем соответствующего ребра. Для работы с матрицей придется войти в подпакет «Линейная алгебра».

> -И;Ь(Ипа^);

> V := Ыа-Ьпх([[0, а, 0, Ь], [а, 0, 0, с], [0, 0, 0, а], [Ь, с, а, 0]]);

Проведем эксперимент с матрицей V; а именно: возведем эту матрицу в квадрат. > вуа1ш(У2);

Результат опыта легко объяснить. Элемент а2 + Ь2 в первой строке первого столбца - это два пути из вершины 1 в вершину 1 (по ребру а туда и обратно или по ребру Ь туда и обратно). Аналогично, второй элемент первой строки Ьс - это путь из вершины 1 в вершину 2 сначала по ребру Ь, а затем по ребру с, а четвертый элемент четвертой строки а2 + Ь2 + с2 - это перечень трех путей длины два из вершины 4 в вершину 4.

Похоже, что квадрат матрицы смежности показывает число путей длины два между вершинами графа. Для контроля этой гипотезы возведем в квадрат исходную матрицу смежности с числами. > еуа1ш(Л2};

Все сходится. Очень реальной становится гипотеза: к-ая степень матрицы смежности показывает число путей длины к между вершинами графа.

Проверим это предположения, возведя в третью степень матрицу V и для контроля и матрицу А. > еуа1ш(У3};

> evalm(A3

Предположение полностью подтвердилось. Заменяя исходные параметры, этот опыт можно производить снова и снова и с тем же результатам.

Разумеется, такого рода эксперименты не заменяют доказательства высказанной гипотезы - но, во-первых, у учащегося уже до доказательства предложения возникает убеждение в его правильности, а во-вторых, матрицы с буквами уже раскрывают тайну появления этих путей (строгое доказательство содержится, например, в [1]}.

Для студентов, которые к моменту изучения курса «Теория графов» не помнят, как умножаются матрицы, такое наблюдение, сделанное самостоятельно, трудно переоценить.

Поэкспериментируем теперь с матрицей инцидентности графа.

Эксперименты с матрицей инцидентности

Продолжим исследование нашего графа С. Найдем теперь матрицу инцидентности для С. > В := IncidenceMatrix(G);

Столбцы матрицы В соответствуют ребрам графа С. В наших предыдущих обозначениях а, Ь, d, с — это ребра с номерами 1, 2, 3, 4 в матрице инцидентности. Заменим в матрице инцидентности единицы на соответствующие обозначения ребер.

> С := Ма^х([[а, Ь, 0, 0], [а, 0, с, 0], [0, 0, 0, d], [0, Ь, с, d]])

В рассматриваемом примере матрица В получилась квадратная, но так будет не всегда, и поэтому квадрат В может и не существовать. Но всегда существует произведение В и ее транспонированной Вт. Посмотрим, как выглядит такое произведение для матрицы С с буквами вместо единиц. > Б := еуа1ш('&*'(С, ^агароБе(С)));

Сразу видно, что на диагонали в ьом месте стоят суммы элементов ьой строки. На прочих местах стоят такие же буквы, что и в «буквенной матрице» смежности V нашего графа, только возведенные в квадрат.

Рабочая гипотеза следующая: если из матрицы В*Вт вычесть матрицу смежности А, то в результате получится диагональная матрица, причем по диагонали должен стоять вектор степеней нашего графа. Проверим это сначала для нашего маленького графа, а затем организуем повторяющийся эксперимент для проверки такой гипотезы.

> В1 := ^апзрозе(В):

> Б := еуа1ш('&*'(В, В1)):

> еуа1ш(Б -А);

> DegreeSequence(G);

По крайней мере, для нашего маленького графа эта гипотеза оправдалась. Отметим, что по команде еуа1ш(Б - 2А) будет вычислена матрица Кирхгофа графа С. Эта матрица замечательна тем, что алгебраические дополнения всех ее элементов равны между собой и равны числу остовных деревьев графа.

Эксперименты с матрицей Кирхгофа

Запишем для нашего маленького графа матрицу Кирхгофа, используя обозначения ребер.

> -И;Ь(Ипа^):

> К := Ыа1пх([[а+Ь, -а, 0, -Ь], [-а, а+с, 0, -с], [0, 0, а, -а], [-Ь, -с, -а, Ь+с+а]]);

Вычислим алгебраическое дополнение первого элемента первой строки. > ае1(ш1пот(К, 1, 1));

а Ъ с! + а с с1 + Ь с с!

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

А теперь найдем алгебраических дополнения каждого из шестнадцати элементов матрицы Кирхгофа. Все шестнадцать оказались равны одному и тому же выражению.

> 11о п ао !ог ] 1о п ао рпп1((-1) " (1+])*ае1(штог(К, 1, ]))) епа ао епа ао;

abd-\-acd-\-bcd

abd-\-acd+bcd

Если заменить буквы а, Ь, с, d их исходными значениями (равными единице), получим

Алгебраическое дополнение любого элемента матрицы Кирхгофа связного графа G равно числу остовных деревьев графа G.

Перейдем к примеру с числовыми параметрами.

В пакете символьных вычислений Maple для нахождения матрицы смежности A и матрицы инцидентности B есть соответствующие команды, однако команды для вычисления матрицы Кирхгофа (обозначим ее K) в пакете Maple пока нет. Для нахождения K воспользуемся связью между этими тремя матрицами: матрица Ai = B ■ BT отличается от матрицы K лишь тем, что вне диагонали в матрице Ai стоят единицы, а в матрице K в точности на этих же местах находятся числа -1. Поэтому матрицу K можно получить просто вычтя из матрицы B ■ BT удвоенную матрицу смежности A:

Дадим компьютеру задание построить случайный граф на десяти вершинах с двадцатью ребрами. Если команде (8) будет выдан результат false, то вернемся к команде (4), а если граф - связный (по команде (8) выдано true), то продолжаем нажимать клавишу «Enter».

abd + acd + bcd = 3.

K = B • BT - 2A

>with(GraphTheory): >with(RandomGraphs): >n: = 10: m:=20: >G:=RandomGraph(n, m): >A:=AdjacencyMatrix(G): >B:=IncidenceMatrix(G): >DrawGraph(G,style=spring); >IsConnected(G) ;

>K := evalm('&*'(B, transpose(B))-2*A) >for i to n do for j to n do print((-1) " (i+j)*det(minor(K, i, j))) end do end do;

(1) (2)

(3)

(4)

(5)

(6)

(7)

(8)

(9)

(10)

В нашем примере граф связный и имеет вид.

По команде (9) будет выдана матрица Кирхгофа этого графа.

5 -1 -1 -1 -1 0 -1 0 0 0

1 4 1 1 0 1 0 0 0 0

-1 -1 6 0 0 -1 -1 -1 0 -1

-1 -1 0 4 -1 0 0 0 0 -1

-1 0 0 -1 4 0 -1 0 -1 0

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0 1 1 0 0 3 0 1 0 0

-1 0 -1 0 -1 0 5 -1 0 -1

0 0 -1 0 0 -1 -1 4 -1 0

0 0 0 0 -1 0 0 -1 2 0

0 0 1 1 0 0 1 0 0 3

Результатом выполнения команды 10 будет сто раз написанное число 23 472, равное числу остовных деревьев в нашем графе.

Просто возвращаясь к команде (3) и последовательно нажимая «Enter», мы будем повторять наш эксперимент снова и снова с разными графами с таким же числом вершин и ребер.

Изменив значения n и m в команде (2), и снова просто снова и снова нажимая «Enter», получим серию опытов для графов уже с другими параметрами.

Заметим, что параметры могут быть и достаточно большими. Например, компьютер не откажется исследовать граф хоть с тысячей вершин. Явно матрицы, задающие граф, показаны не будут, но число остовов будет вычислено. Правда, машинная геометрическая интерпретация графа с тысячью вершин совершенно бесполезна - для связного графа - это просто синий круг с желтой границей. Впрочем, уже изображение графа всего лишь со ста вершинами и двумястами ребрами тоже не очень наглядно.

Однако в течение долей секунды компьютер сообщит, что число остовных деревьев у этого графа равно 19 546 783 684 400 953 949 712 207 141 459 628 318 727 277 931.

Конкурирующие интересы. Конфликтов интересов в отношении авторства и публикации нет.

Авторский вклад и ответственность. Автор участвовал в написании статьи и полностью несет ответственность за предоставление окончательной версии статьи в печать.

Список литературы

[1] Горюшкин А. П. Дискретная математика для бакалавров [учеб. пособие для бакалавров вузов]. Петропавловск-Камчатский: Камч. гос. ун-т им. Витуса Беринга, 2014. 594 с.

[2] Горюшкин А. П. Теория графов [учеб. пособие для бакалавров вузов]. Петропавловск-Камчатский: Изд-во КамчатГТУ, 2014. 172 с.

[3] Горюшкин А. П. Машинное решение задач дискретной математики // Вестник КРАУНЦ. Физ.-мат. науки. 2011. №2(3). С. 58-68.

[4] Горюшкин А. П. Дискретная математика с элементами математической логики [http://www.iprbookshop.ru/96556.html.]: учебное пособие для СПО. Саратов: Профобразование, 2020. 503 с.

Горюшкин Александр ПетровичА - кандидат физико-математических, доцент, профессор кафедры математики и физики КамГУ им. Витуса Беринга, г. Петропавловск-Камчатский, Россия, СЖСГО 0000-0003-4680-3119.

Goryushkin Aleksandr Petrovichte - Ph. D. (Phys. and Math.), Associate Professor, Department of Mathematics and Physics, Vitus Bering Kamchatka State University, Petropavlovsk-Kamchatsky, Russia OR-CID 0000-0003-4680-3119.

Vestnik KRAUNC. Fiz.-Mat. Nauki. 2022. vol. 38. no. 1. P. 74-83. TSSN 2079-6641

MSC 03G05 Research Article

Computer experiment in teaching mathematical disciplines

A. P. Goryushkin

Kamchatka State University by Vitus Bering, 683032, PetropavlovskKamchatskiy, Pogranichnaya st, 4, Russia E-mail: as2021@mail.ru

The method of using a computer in the study of university courses "Discrete Mathematics" and "Graph Theory" is discussed. The paper shows the use of the symbolic computing package Maple to detect the properties of the main matrices of the graph and experimental verification of these properties.

Key words: graph, adjacency matrix, incidence matrix, Kirchhoff matrix, graph backbone, Maple, machine command.

d DOT: 10.26117/2079-6641-2022-38-1-74-83

Original article submitted: 13.03.2022 Revision submitted: 15.04.2022

For citation. Goryushkin A. P. Computer experiment in teaching mathematical disciplines. Vestnik KRAUNC. Fiz.-mat. nauki. 2022, 38: 1,74-83. d DOT: 10.26117/2079-6641-2022-381-74-83

Competing interests. The author declares that there are no conflicts of interest regarding authorship and publication.

Contribution and Responsibility. The author contributed to this article. The author is solely responsible for providing the final version of the article in print. The final version of the manuscript was approved by the author.

The content is published under the terms of the Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/deed.ru)

© Goryushkin A. P., 2022

References

1. Goryushkin A. P. Diskretnaya matematika dlya bakalavrov [Discrete Mathematics for Bachelors]. Petropavlovsk-Kamchatsky: Vitus Bering Kamchatka State University, 2014. 594 c. (Tn Russian)

2. Goryushkin A. P. Teoriya grafov [Graph theory]. Petropavlovsk-Kamchatsky: KamchatGTU, 2014.172 c. (Tn Russian)

3. Goryushkin A. P. Machine solution of discrete mathematics problems, Vestnik KRAUNC. Fiz.-Mat. Nauki, 2011. T. 2, №3, C. 58-68 (Tn Russian).

4. Goryushkin A. P. Diskretnaya matematika s elementami matematicheskoy logiki: uchebnoye posobiye dlya SPO [Discrete Mathematics with Elements of Mathematical Logic: Textbook for Open Source Software]. Saratov: Profobrazovaniye, 2020. 503 c. (Tn Russian)

Funding. The study was carried out without financial support from foundations.

i Надоели баннеры? Вы всегда можете отключить рекламу.