Научная статья на тему 'Формирование мотивации к математике при построении фракталов с помощью L-систем'

Формирование мотивации к математике при построении фракталов с помощью L-систем Текст научной статьи по специальности «Математика»

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

Похожие темы научных работ по математике , автор научной работы — Секованов Валерий Сергеевич

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

Текст научной работы на тему «Формирование мотивации к математике при построении фракталов с помощью L-систем»

Л.: Искусство, 1980. - 303 с.

7. Акишина А.А. Немного о жестах и речи // Акишина А.А. и др. Жесты и мимика в русской речи. Лингвострановедческий словарь. - М.: Рус-

ский язык, 1991. - С. 141-145.

8. Скоропанова И.С. Русская постмодернистская литература: Учеб. пособие. - М.: Флинта; Наука, 1999. - 608 с.

В.С. Секованов

ФОРМИРОВАНИЕ МОТИВАЦИИ К МАТЕМАТИКЕ ПРИ ПОСТРОЕНИИ ФРАКТАЛОВ С ПОМОЩЬЮ L-СИСТЕМ

Фрактальная геометрия является бурно развивающимся направлением современной математики. Об интересе к фрактальным множествам свидетельствуют монографии и учебные пособия [2; 4-7; 1015] и др. Фрактальная геометрия и тесно связанная с ней теория хаоса стали проникать в вузовское образование (фрактальная графика, хаотическая динамика и др.). Фрактальные множества можно изучать и в школьном курсе математики, что подтверждают методические статьи [1; 3; 8; 10]. В работе [9] предлагается точка зрения, связанная с введением в школьный курс математики понятия «фрактал» (наряду с понятиями «бифуркация» и «хаос»). Отметим, что фрактальной геометрии в настоящее время посвящены десятки сайтов, проводятся конгрессы и конференции как за границей, так и в нашей стране.

В работе [10] указана связь фракталов с геометрической прогрессией и исследуются свойства снежинки Коха. В данной статье приводится универсальный алгоритм построения фрактальных множеств с помощью L-систем и рассматриваются связанные с ними математические задачи. При изложении материала мы будем следовать [4].

L-системы появились во второй половине прошлого века после работ А. Линделефа. Сначала L-системы использовались при изучении языков программирования. Позднее после бурного развития компьютерной графики с помощью L-систем стало возможным построение фрактальных множеств.

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

Для графического воспроизводства фрактальных множеств мы будем использовать тертл-гра-фику (terl - черепаха). Программы, которые будут характеризовать на мониторе компьютера движение черепашки (построение фрактала), написаны в среде turbo-Pascal.

Мы будем иметь дело с тремя параметрами, х, у, а, где х и y указывают координаты черепашки, а а - угол, под которым она должна выполнить движение. Черепашка «умеет» выполнять команды, задаваемые кодовым словом, которое читается слева направо. Кодовое слово - результат работы L-системы в своем составе может иметь различные буквы и символы. Опишем те, которые используем в работе: F - прорисовать след, переместиться на один шаг вперед; +, (-) -увеличить (уменьшить) угол а на величину в. Например, при в = ^ графическое представление

л

слова F+F+F+F - есть квадрат, при в = — графическое представление слова F+F++F++F есть равносторонний треугольник. Размер шага и величина приращения по углу в задаются заранее и остаются неизменными для всех перемещений черепашки. Если начальное направление движения а (угол, отсчитываемый от положительного направления оси X) не указано, то полагаем а равным нулю. Пусть т - упорядоченная последовательность команд, (х0, у0, а0) - начальное состояние черепахи, шаг h и угол в - являются константами. Объединение всех линий, которые будут изображены черепашкой в ответ на последовательность команд т называется черепашьей интерпретацией т. Обычно построение фрактала связано с аксиомой и порождающим правилом. Аксиома - это начальный объект, с которого начинается построение, а порождающее правило указывает на какой объект заменится аксиома в процессе построения фрактала. Рассмотрим пример.

© В.С. Секованов, 2006

Вестник КГУ им. Н.А. Некрасова ♦ № 6, 2006

171

"L

Рис. 1

I Вход I

Аксиома (axiom): 'F'

Порождающее правило (newf): 'F-F+F+F-F'

Начальный угол (а): 0

Угол поворота (в): п/2

Рис. 2.

Пусть Е0 - начальный отрезок единичной длины (аксиома). 1. Уберем среднюю треть и добавим три новых отрезка как показано на рисунке 1. Назовем полученное множество Е1 (порождающее правило). Повторим данную процедуру многократно, на каждом шаге заменяя среднюю треть тремя новыми отрезками. Обозначим через Еп фигуру, получившуюся после п-го шага. Интуитивно ясно, что последовательность \еп ^ сходится к кривой, которую мы обозначим Е.

2. На языке ¿-систем запишем построение кривой Е в виде таблицы (рис. 2).

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

Начальные условия: Аксиома: W="F", Порождающее правило newf: newf="F-F+F+F-F" (рис. 2), рабочая ячейка Т: Т=" ", угол а: а=0, ж

угол в: в = —. Пусть далее черепашка находится

в точке с координатами (х0, у0), где х0=100, у0=300, й=20. На рисунке 4 точка (х0, у0) обозначается точкой 1.

Предположим, что нам нужно построить вторую итерацию Е2 кривой Е. Мы считаем, что строка есть одномерный массив. Т. е., если, например, W="F+++F+F+F-F", то W[1]= 'Т", W[2]="+", W[3]="+" ... W[10]="-", W[11]="F". Итак, мы имеем Т=" ", level=2, W="F", len(W)=1. Цикл пройдет один раз, в ячейку Т запишется порождающее правило T="F-F+F+F-F". Далее цикл закроется в ячейку W из ячейки Т запишется порождающее правило W=T, в ячейку Т запишется пу-

стая строка: Т=" ", а значение переменной level уменьшится на единицу. level=2-1=1. Далее имеем: W="F-F+F+F-F". Далее цикл вновь продолжит свою работу. Теперь он будет работать 9 раз, поскольку lenW=9. После первого прохода цикла в ячейку T запишется строка "F-F+F+F-F". После второго прохода цикла в ячейку T запишется строка "F-F+F+F-F-". При значении 1=3 в ячейку T запишется строка "F-F+F+F-F-F-F+F+F-F" и т.д. После девятого прохода цикла в ячейку T запишется строка "F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F". Далее в ячейку W поместится значение T. То есть W="F-F+F+F-F-F-F+F+F-F+F-F+F+F-F+F-F+F+F-F-F-F+F+F-F", в ячейку T запишется пустая строка, а в ячейке level окажется значение level= 1-1=0. Далее цикл блокируется и алгоритм 3 a завершает свою работу.

Теперь строится вторая итерация - кривая Е2 по алгоритму 3б. Нетрудно подсчитать, что число символов переменной W будет равно 49. Далее отмечается точка (x., y.) (на рисунке 4 - точка 2), x=x+h cos 0=x0+h, y.=y0+h sin 0=y0 и строится отрезок, соединяющий точки 1 и 2 (рис. 4).

нач. условия {аксиома, порожд. правило, и др., углы...) W=axiom; Т=";

, 9 ч

x1 =xO+h"cos((i) y1 =yO-lVsin(a)

' Г

Iine(x0,y0, i

X

а)

Рис. 3.

_Г _1

12 12

1 2 5 1 2 5 6 Рис. 4.

Теперь переменной х0 присвоится значение х1, а переменной у0 присвоится значение у1. Далее, учитывая экранные координаты (начало координат находится в верхнем левом углу монитора), черепашка повернется на 90 градусов против часовой стрелки (поскольку, учитывая экранные координаты в = - —) (см. рис. 4). Далее отме-

чается точка (xj, y j), Xj = x0 + h ■ cos| —— | = x0.

y1 = y0 + h ■ sin ~J = У o ~ h и строится отрезок, соединяющий эти точки (рис. 4).

На следующем шаге черепашка поворачивается на 90 градусов по часовой стрелке и строится следующая часть итерации.

Обходя кривую в порядке нумерации, где нижний индекс, стоящий около круглых скобок справа, означает порядковый номер вершины кривой, выпишем координаты всех 26 вершин второй итерации (рис. 5):

(100, 300)^(120, 300)^(120, 280)3^ ^•(140, 280)4^(140, 300)5^(160, 300)6^ ^■(160, 280)7^(140, 280)8^(140, 260)^ ^■(160, 260)10^(160, 240)n^(180, 240)12^

^(180, 220)13^(200, 220)14^(200, 240)15^ ^■(220, 240)16^(220, 260)^(240, 260)18^-^•(240, 280)19^(220, 280)^(220, 300)21^ ^•(240, 300)^(240, 280)23^(260, 280)^ ^ (260, 300)25^(280, 300)26. Мы замечаем, что кривая не выйдет за пределы видимой части экрана.

Задача 1. Приняв за начальное положение точку М(100, 300), h=20, выпишите координаты всех вершин третьей итерации Е3 фрактала Е.

Данный алгоритм можно написать на любом удобном для ученика языке программирования. Мы приводим паскаль-программу, адаптированную А.В. Смирновым из [4], которая строит данную кривую. Приведем алгоритм, построения фрактальных множеств, написанный на паскале. uses crt,graph; var f,f1:text; axiom,newf,word,s, s 1: string; n,level,x0,y0,i,h,k:integer; alpha, tetta:real; stack:array[1. .100,1..3]of real; procedure Kox_1;

begin axiom:='F';newf:='F-F+F+F-F'; alpha:=0; tetta:=pi/2 end;

begin initgraph(x0,y0,'d:\works\tp0\bgi'); assign(f, 'd:\text. txt'); assign(f1,'d:\text1.txt'); Kox_1;

h:=100; level:=1; x0:=100; y0:=300; rewrite(f); for i:=1 to length(axiom) do write(f,axiom[i]); close(f); n:=length(axiom); while level>0 do begin

reset(f); rewrite(f1); s1:="; while not eof(f) do begin

X —►

10 7

13 14

11 12 15 16

17 18 20 19

23 24

21 22 25 26

Рис. 5.

readln(f,s);

for i:=1 to length(s) do begin

if length(s 1)+length(newf)+2>=255 then begin writeln(f1,s1); s1:='' end; if s[i]='+' then s1:=s1+'+'; if s[i]='-' then s1:=s1+'-'; if s[i]='F' then s1:=s1+newf; end end;

write(f1,s1); close(fl); close(f); reset(fl); rewrite(f);

while not eof(fl) do begin readln(f1,s); writeln(f,s) end; close(fl); close(f); level:=level-1 end;

k:=0; reset(f); while not eof(f) do begin readln(f,s);

for i:=1 to length(s) do begin

if s[i]='+' then alpha:=alpha+tetta; if s[i]='-' then alpha:=alpha-tetta; if s[i]='F' then begin Iine(x0,y0,round(x0+h*cos(alpha)), round(y0+h*sin(alpha)));

x0:=round(x0+h*cos(alpha)); y0: = round(y0+h*sin(alpha)) end; end end;

readkey End.

Обычно ученики решают задачи по геометрии, связанные с треугольниками, квадратами, трапециями и др. Фракталы и предфракталы, как правило, не являются выпуклыми множествами. Построение данных множеств с помощью карандаша и линейки затруднительно. Данные множества позволяют сформулировать для учащихся ряд интересных и необычных на первый взгляд математических задач:

1) найти площадь всех квадратов, получившихся после второй и третьей итераций; найти периметр второй, третьей и п-итераций;

2) найти диаметр второй итерации;

3) сколько вершин имеют вторая и третья итерации;

4) сколько самопересекающихся вершин имеют вторая и третья итерации;

5) сколько звеньев содержат вторая и третья итерации;

6) чему равен диаметр второй итерации;

7) можно ли провести окружность, проходящую через вершины 1, 11, 16, 26.

Решение задачи 7 не представляет труда. Соединим вершины 1, 11, 16, 26. Получим равнобочную трапецию, около которой можно описать окружность (рис. 6).

Усложним задачу 7 для самостоятельной работы:

Задача 8. Можно ли провести окружность через вершины 6, 8, 9, 11, 16, 18, 23, 21.

В работе [8] для каждого фрактала пишется своя программа в среде Ма1ЬаЬ. Наша программа универсальна в следующем смысле: изменяя только порождающие правила, мы получим на мониторе компьютера различные предфракталь-ные кривые (рис. 7 а-е). Поясним сначала смысл термина «предфрактал». Фракталом называется фигура, которая получается при бесконечном процессе взятия итераций. Изобразить такую кривую невозможно. Предфрактал же получается после конечного числа итераций.

Укажем порождающие правила и углы поворота предфракталов, изображенных на рисунке 7. Сначала отметим, что у каждого из данных кривых аксиомой является отрезок, изображенный на рисунке 7.

Рис. 7а: "-F+FF+F-", в = —;

4

Рис. 7б: "F-F++F-F", в = -;

3

Рис. 6.

Рис. 7в: "F-F+F+F-F", в = -;

2

Рис. 7г: "F- -F+F++F+F—F", в = -;

4

Рис. 7д: "F-F++F- -F++F-F", в = -;

3

Рис. 7-е: "F-F++FF- -F+F", в = —.

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

3

аксиома

а

б

Д

Рис. 7.

В

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

В качестве мониторинга за образовательной траекторией студента полезно предложить следующие задачи:

1) придумать аксиому, порождающее правило и на их базе построить фрактал, используя выше приведенную программу;

2) вычислить периметр n-ой итерации фрактала;

3) чему равно слово на выходе кодовое слово L-системы после двух итераций:

axiom="F", порождающее правило - newf="F-

F++F—F++F-F" ; а = 0, в = —.

3

4) определить периметр ломаной линии, изображенной на экране монитора после второй итерации.

Библиографический список

1. Азиевич А.И. Фракталы: геометрия и искусство // Математика в школе. - 2005. - N°4.

2. Божокин С.В., Паршин Д.А. Фракталы и мультифракталы. - М.; Ижевск, 2001.

3. Диков А. В. Команды на LOGO конструируют фракталы // Математика в школе. - 2005. - N°4.

4. Кроновер Ричард М. Фракталы и хаос в динамических системах / Пер. с англ.; под ред. Т.Э. Крэнкеля. - М.: Постмаркет, 2000. - 352 с.

5. Мандельброт Б. Фрактальная геометрия

природы. - М.; Ижевск: Институт компьютерных исследований, 2002.

6. Морозов А.Д. Введение в теорию фракталов. - М.; Ижевск, 2002. - 159 с.

7. Пайтген Х.-О., Рихтер П.Х. Красота фракталов. - М.: Мир, 1993. - 176 с.

8. Попов К.А. Векторы, фракталы и компьютерное моделирование // Математика в школе. -2006. - №№8.

9. Розов Н.Х. Проблема размещения новых понятий и объектов в школьном курсе математики // Труды третьих Колмогоровских чтений. -Ярославль: Из-во ЯГПУ, 2005. - С. 51-64.

10. Секованов В.С. Геометрическая прогрессия и геометрия фракталов // Математика в школе. - 2006. - №№8.

11. Секованов В.С. Методическая система формирования креативности студента университета в процессе обучения фрактальной геометрии. - Кострома: КГУ им. Н.А. Некрасова, 2005.

12. Секованов В.С. Элементы теории фрактальных множеств. - Кострома: КГУ им. Н.А. Некрасова, 2005.

13 . Секованов В.С. Элементы теории фрактальных множеств. Издание 2 пер. и доп. - Кострома: КГУ им. Н.А. Некрасова, 2006.

14. ФедерЕ. Фракталы. - М.: Мир, 1991.

15. Шредер М. Фракталы, хаос, степенные законы. Миниатюры из бесконечного рая. -Ижевск: НИЦ «Регулярная и хаотическая динамика», 2005.

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