ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
УДК 519.6:004
М.А. Тынкевич, Д.Е. Несмелов
ЗАМЕЧАТЕЛЬНЫЕ МАТЕМАТИЧЕСКИЕ КРИВЫЕ (ИНТЕРАКТИВНАЯ ГРАФИКА В СРЕДЕ MATLAB)
Знакомство с миром т. н. замечательных математических кривых, возникших в свое время из потребностей механики и астрономии, является, конечно, лишь крошечным элементом математической культуры - существенного элемента общей культуры человека, интеллектуально мыслящего и способного ориентироваться в усложняющемся информационном мире. В этом мире, рядом с общеизвестными (!?) окружностью или эллипсом, соседствуют спирали Архимеда, Галилея, Ферма и Корню, улитка Паскаля, лемниската Бернулли, декартов лист и другие геометрические конструкции, названные по имени их создателей или в знак благодарности потомков знаменитым ученым прошлого.
Знакомство с этим миром полезно не только историкам математики или преподавателям теоретической механики, но и преподавателю точных наук для стимуляции любопытства ученика или воспитания у него чувства прекрасного (на рис.1 приведены необычные орнаменты, получающиеся сочетанием математического знания и искусства программирования). Услышав название «конхоида Никомеда» и увидев ее, современный, не лишенный любопытства школьник, конечно, обратится в Интернет и, между делом, узнает о существовании Древней Греции и о том, как трудно разделить угол на три равные части или «откуда есть и пошли точные, естественные и сверхесте-
ственные науки»
Целенаправленный поиск в Интернете обнаруживает множество текстовой и графической информации об искомой конкретной функции, в том числе демонстрационных примеров, выполненных с исключительным изяществом .
Тем не менее представляет интерес программная реализация, обеспечивающая возможность построения любой из фиксированного, но достаточно широкого множества кривых и ее дочерних, нестандартных конструкций.
Так в 2003 г. студентами КузГТУ Волковым С.А., Веревкиным М.А. и Шинкаревой Д.Д. [2 ] под руководством автора была построена соответствующая программа, использующая унифицированный подход к представлению данных. При таком подходе любая кривая может быть отображена без написания дополнительного программного кода хранением информация о кривых в формате XML
В основу нашей программной реализации положено представление кривых в параметрическом задании x=R(P, t) -cos jut, y=R(P, t) ■sin jut, t e [ t0, tk ], где P - совокупность параметров кривой. Исключение из общего правила составляют только овалы Кассини в варианте их распада на отдельные фрагменты, где удобнее использование представления в декартовых координатах.
Состав семейства программных реализаций
400 -300 -
-400 — -400
400
а
Рис. 1. а) Спираль x= tcos(t); y= psin(t); t=0 :1.15: 115,1; б) Окружность x= cos t ; y= sin t; t=(0:1.15: 230,1)
200
100
0
-100
-200
-300
0
100
200
300
(см. таблицу), как нам кажется, достаточно широк и за его пределами остались лишь немногие из упоминаемых в математической литературе [3] .
Программа реализует демонстрацию построения графиков кривых в интерактивном режиме. Пользователь имеет возможность выбрать конкретную кривую, согласиться с задаваемыми по умолчанию параметрами кривой или экспериментировать с различными их сочетаниями (в частно-
сти, математические выражения для начала, конца и шага по интервалу значений ^ например рі/32). Более того, построение графического объекта здесь происходит в динамике - не конечный результат, а появление рисунка с выбранным уровнем замедления (3 уровня), что способствует уяснению самого процесса построения объекта. Любая из упомянутых корректур выполнима а любом этапе рисования.
Состав пакета замечательных математических кривых
Окружность и ее производные х = R Cos 2nt , y = R Sin 2nt , t e [ 0 , 1 ]. При шаге Иг Ф 1/к, где к -целое, звездоподобные фигуры, многоугольники и орнаменты, вписанные в кривую
Эллипс и его производные x = a Cos 2nt , y = b Sin 2nt , t e [ 0 , 1 ].
Астроида и ее производные x = R Cos3(2nt/4), y = R Sin3(2nt/4) , t e [0,4] То же при шаге кг Ф 4/к
Розы (кривые Гвидо Гранди) x = R sin(2nkt)Sin 2nt, y = R sin(2nkt)Cos 2nt. При нечетном к=т/п к лепестков, при четном - 2к.
Кривые Хабенихта x = R ■ Cos 2nt, y = R ■ Sin 2nt , R =A +B ■Cos(2nkt)+C ■Sin2(2%kt) +D Sin4(2nkt) к - лепестковость; А,Б,С,Б - форма, вытянутость и изрезанность лепестков, махровость цветка.
Улитка Паскаля x = (R ■Cos 2nt + L ) Cos 2nt y = (RCos 2%t + L ) Sin 2%t , t e [ 0 , 1 ], L >0.
Конхоида Никоме-да x = (A / Cos 2nt ±L ) Cos y = (A / Cos 2nt ± L ) Sin 2nt, -0.25< t < 0.25
Декартов лист x = R -Cos 2nt; y = R ■Sin 2nt, R = 3A/2 ■ Sin(4nt) /(Co^(2nt)+Sin3(2nt)) , -0.125< t < 0.375
Декартов овал x = R ■Cos 2nt; y = R Sin 2nt , R - корень уравнения (M2-1)R2-2R(M2d cos2nt -A)+(Md)2 -A2 =0 Мф1 - два овала; М=1, А>В - эллипс;. М=-1, А<Б - гипербола; М=А/ё - улитка Паскаля.
Лемниската Бернулли x = ± R ■ Cos 2nt ; y = R ■ Sin 2nt , R = A^j2|Cos(4at)|, -0.125 < t <0.125
Трактриса x = ± A ■ lnA—-—A — + VA2 -12 ,y = t, L t J 0< t< A При вращении вокруг оси X (перемените местами х и у) образуется т.н. псевдосфера.
Циклоида x = R -2nt - d■Sin(2nt) ; y = R - d■Cos(2nt) ; (Xmin +d) /2%R < t < (Xmax -d)/ 2%R
Эпитрохоида и ее производные x = (R+r) -Cos(2nt) - h ■ Cos2%(k+1)t y = (R+r) ■ Sin(2nt) - h ■ Sin2%(k+1)t, k = R/r к=г - эпициклоида , К=г -улитка Паскаля. к=Я+г -трохоидальная роза --д- з -k “5 ^ - Л « - Xй S я ю s и О сз еч от ан
Эпициклоида и ее производные x = (R+r) ■Cos(2nt) - r ■ Cos2n(k+1)t y = (R+r)■ Sin(2nt) - r ■ Sin2n(k+ 1)t , k = R/r к=1 - кардиоида, при целых к к непересекаю-щихся ветвей
Гипотрохоида и ее производные x = (R-r) ■Cos(2nt) + h ■ Cos2n(k-1)t y = (R-r) ;Sin(2nt) - h ■ Sin2n(k-1)t , k = R/r к=г- гипоциклоида. Я=2г - эллипс " Й & с « а нль ятс ыб І П б н
Гипоциклоида и ее производные x = (R-r) ■Cos(2nt) + r ■ Cos2%(k-1)t y = (R-r) ■Sin(2%t) - r ■ Sin2%(k-1)t , k = R/r к=2 - отрезок прямой; к=3 -кривая Штейнера; к=4 -астроида; к целое - кривая из т ветвей
Спираль Архимеда x = t ■ Cos (t), y = t ■Sin (t), t e [ 0 , да).
Инволюта x = Cos t + t Sin t, y =Sin t - t Cos t, t e [0 , да) Эвольвента спирали Архимеда
Гиперболическая x = Cos (t) / t, y = Sin (t) / t , t e [0 , да)
спираль
Квадратичная спираль х = Ґ2 Cos (ґ) , у = ^ Біп (ґ), ґ є [0 , да)
Логарифмическая спираль х = А Cos(t) , у = АБіп(ґ) , ґ є [0 , да). при А<1 - по часовой стрелке и при А>1 - против.
Спираль Галилея х =(А ґ2-Ь) Cos (ґ) , у =(А ґ2-Ь) Біп (ґ), ґ є [0 , да).
Спираль Ферма х = ±у[ґ • Со8(ї), у = ±Л • Біп(ґ) , ґ є [0 , да).
Спираль Корню ±і х = 1 , у = 1 , ґ є [0 , да). 0 0 клотоида, клофоида, спираль Эйлера
8ІСІ - спираль 1 1 х = | СО!і(2)й2, у = 8і(і) = | віп(^й2 ,ґ>>0 да да закручивается против часовой стрелки к центру
Жезл Овалы Кассини х = ± йр , у = ± О™ , ґ є [0 , да). X = Я ^(2Ш) , У = Я Біп(2пї) , гє [-1/4 , 1/4 ] Я - корень уравнения Я4- 2с2 Я2 Со8(4лҐ) = А4- с4 При А > С^2 - овал, С < А < С^2 - линия с талией, А < С - два овала , А = С - лемниската Бернулли
По соображениям возможности расширения списка кривых, единообразия процедур их рисования и исключительно удобного интерфейса для компьютерной реализации выбрана среда МаНаЪ, в современных версиях которой возможно использование полноценного объектно-ориентированного подхода к написанию программ. Имеется
возможность создавать описывать классы, свойства, методы, задавать членам классов атрибуты, реализовывать наследование и прочие. Каждая кривая представляет собой объект, инкапсулирующий в себе проверку полей данных и введенных параметров, реализующий метод вычисления значений функции, и являющийся наследником от
Рис. 2. Интерфейс программы
базового класса «Сшт>, который, в свою очередь, содержит объявление обязательных полей и некоторые служебные методы, необходимые всем производным классам.
Для запуска программы достаточно копировать программные файлы предлагаемой папки в
папку, созданную по адресу C:\ Documents and Settings, войти в среду Matlab и открыть в списке файлов этой папке файл FormMain.m. В открывшемся окне редактора нажать кнопку Run или клавишу F5.
Эяитрокоиоа и «е произвола*
.
/ - [ / V I / \ і ) :\ V 0/ 1
f г* , ■■ ? т ( 1* у
( Ч V s.\ -\..п 0 -• Ь/ /
1$ 1 * і т
Фигуры Гмссвгу
—юбії
yrv : 4 I / / J
.. . . <У> і <J ї і>< _ і С/
L Ч
4т-
-U й it ч] 4 -аз
_:Г_
М
U J J* СЙ us
Рис. 3. Образцы вывода
СПИСОК ЛИТЕРАТУРЫ
1. http://www.mathworks.com/help/techdoc/matlab_oop/ug_intropage.html
2. С. А. Веревкин, М.А. Волков, Д. Д.Шинкарева. Замечательные математические кривые (унифицированный подход к отображению и хранению) //Вестник КузГТУ, 2003, №4. С.78-81.
3. Виноградов И.М. (ред.) Математическая энциклопедия. В 5 томах . - М.: Советская энциклопедия, 1977 -1985
□ Авторы статьи:
Тынкевич Моисей Аронович, канд.физ.-мат. наук, проф.каф. прикладных информационных технологий КузГТУ. Email: [email protected]
Несмелов Дмитрий Евгеньевич , студент гр.ПИ-091КузГТУ. Email: [email protected]