Научная статья на тему 'Замечательные математические кривые (интерактивная графика в среде Matlab)'

Замечательные математические кривые (интерактивная графика в среде Matlab) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
4724
387
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАМЕЧАТЕЛЬНЫЕ МАТЕМАТИЧЕСКИЕ КРИВЫЕ / ИНТЕРАКТИВНАЯ ГРАФИКА / MATLAB / REMARKABLE MATHEMATICAL CURVES / THE INTERACTIVE DRAWING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тынкевич М. А., Несмелов Д. Е.

Замечательные математические кривые (интерактивная графика в среде MATLAB) / Тынкевич М.А., Несмелов Д.Е. // Вестник КузГТУ. 2012. № 4. С. 126-129. О программной реализации в среде MATLAB построения множества т.н. замечательных математических кривых и их дочерних конструкций на основе объектно-ориентированного подхода к программированию. Обеспечивается возможность оперативного подбора параметров кривой и установки замедления процесса графики. Илл. 3. Библиогр. 3 назв.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тынкевич М. А., Несмелов Д. Е.

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

Remarkable mathematical curves (the interactive drawing in MATLAB environment ) / Tynkevich M.A., Nesmelov D.E. // The bulletin of KuzSTU. 2012. No 4. P. 126-129. Information on software implementation in MATLAB of constructing a set of so-called remarkable mathematical curves and their affiliated structures based on object-oriented approach to programming is offered in order to enable quick selection of the parameters of the curve and the slowing down setting process graphics.

Текст научной работы на тему «Замечательные математические кривые (интерактивная графика в среде Matlab)»

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

УДК 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]

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