ВЕСТНИК ТГГПУ. 2011. №4(26)
УДК 512.5;519.6;519.8;372.851;378.02
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ТЕОРИИ КРИВЫХ ВТОРОГО ПОРЯДКА В ПАКЕТЕ КОМПЬЮТЕРНОЙ МАТЕМАТИКИ
© Ю.Г.Игнатьев, А.Р.Самигуллина
В статье описана библиотека программных процедур полного автоматизированного исследования и оснащенной визуализации кривых второго порядка в пакете компьютерной математики "Мар1е".
Ключевые слова: аналитическая геометрия, системы компьютерной математики, алгоритмы, кривые второго порядка.
Введение
Как известно, теория кривых (поверхностей) второго порядка, тесно связанная с теорией квадрик в евклидовом пространстве и теорией приведения их к канонической форме с помощью преобразований движения, находит многочисленные приложения в математическом анализе, механике и теории поля. С другой стороны, теория кривых (поверхностей) второго порядка недостаточно хорошо усваивается студентами не только естественно - научных специализаций, но даже и студентами математических отделений. Повышение качества усвоения абстрактного математического материала возможно интегрированием методов математического моделирования и оснащенной динамической визуализации в компьютерном математическом пакете Мар1е [1; 2; 3; 4]. Для создания компьютерных моделей с требуемыми свойствами необходима разработка многопараметрических программных процедур автоматизированного исследования кривых второго порядка и их визуализации, что позволит осуществить информатизацию этого важного модуля учебной программы. Решению этого вопроса и посвящена данная статья. Заметим, что в свое время была предложена программа автоматической оснащенной визуализации эллипса по его каноническим уравнениям [1], но задача распознавания кривых второго порядка по их каноническим уравнениям и построения их в произвольной системе координат не решалась. Отметим также, что созданная библиотека программных процедур одинаково хорошо работает во всех последних версиях Мар1е 10-14. Математическая модель приведения уравнений кривых второго порядка к каноническому виду
Как известно, кривые второго порядка описываются уравнениями второго порядка относительно координат плоскости (х, у):
(1)
B (x) = aikxixk + btx' + c =
= Q (x) + L (x)+ c = 0; (i, k = 1,2),
где x1 = x, x2 = y; ak - коэффициенты симметричной матрицы квадратичной формы Q(x), bt
- коэффициенты линейной формы L(x), c - свободный член. Квадратичная форма (1) приводится к канонической форме преобразованиями движения плоскости:
P : x = x 'cosa-sy 'sina + x0;
, • , (2)
y = x sin a + sy cos a + y0,
где a - угол поворота, а X0 =(x0, y0) - вектор параллельного переноса декартовой системы координат, s = ±1. Приведение квадрики B (x)1 к
каноническому виду удобно осуществлять в два этапа. На первом этапе квадрика (1) преобразуется с помощью поворота (x0,y0 в (2) равны нулю), и из условия равенства нулю коэффициента a '12 преобразованной квадратичной формы оп-
ределяется угол поворота a :
a '12 = 0 .
(3)
На втором этапе определяются координаты вектора параллельного переноса2. В зависимости от полученных значений коэффициентов квадратичной формы и квадрики с помощью элементарных действий определяется окончательная каноническая форма уравнения второго порядка относительно новой декартовой системы координат.
Программные процедуры оснащенной визуализации кривых второго порядка
Для возможности проведения полного исследования кривых второго порядка в библиотеку AnalGeo встроены программные процедуры оснащенной визуализации кривых второго порядка
- эллипса, гиперболы и параболы, соответствен-
1 Т.е. левой части уравнения (1).
2 См., например, [5].
но, подверженных преобразованию движения (2):
AnalGeo[Ell](a,b,alpha,X0, ^^2);
AnalGeo[Hyp](a, Ь^, alpha,X0,c1,c2,d);
AnalGeo[Parbol](p,q,alpha,X0,c1,c2),
где a,b - полуоси эллипса или гиперболы, p/2 -
расстояние от вершины параболы до ее фокуса,
параметр q=±1 является индексом главной оси
гиперболы или оси параболы в канонической
системе координат (+1 соответствует главной
Из приведенного примера видно, что изображение кривой автоматически оснащается изображением новой (канонической) системой координат, вершин и фокусов, а также асимптот,
оси Oix' , -1 - главной оси Oiy'); alpha - угол поворота системы координат (в радианах), X0 -вектор параллельного переноса, задаваемый в списочном формате [x0,y0]; c1,c2 - параметры цвета линий и текстовых вставок, d - безразмерный параметр, в случае гиперболы указывающий границы изображения ее ветвей3. На рис.1 показан результат исполнения процедуры построения гиперболы с полуосями 4, 3 и главной осью O1x'.
директрис ^1^2) и прямоугольника, вне которого лежит вся фигура. В случае эллипса или параболы оснащение, очевидно, будет отличаться.
3 Этот параметр равен отношению расстояния от проекции конца гиперболы на ее главную ось до соответствующего фокуса к расстоянию от фокуса до центра гиперболы.
Б Maple 13 - [AnalGeo_stat.mws - [Server 1]]
Geo[Hyp](4,3,1,Pi/7,[1,2],blue,black,0.5)
Подчеркнем малозаметное, но существенное свойство полученного изображения: программная процедура сама отыскивает оптимальные границы изображения и всех его деталей. Это свойство удается получить составлением списков координат всех фигур изображения и последующим вычислением их минимальных и максимальных значений с помощью стандартных команд Maple max() и min().
Программные процедуры распознавания и приведения к каноническому виду квадрики на плоскости Перейдем теперь к описанию программных процедур автоматического распознавания коэффициентов квадрики по заданному уравнению 2го порядка вида (1), последующего преобразования ее с помощью движения (2), определения параметров этого движения.
Программные процедуры определения коэффициентов квадрики
Для определения коэффициентов квадрики (1) библиотека AnalGeo имеет программную процедуру Coeffs2(Eq,X), где Eq - общее уравнение кривой второго порядка, X - список координат в первоначальной системе координат в форме [x,y]. При выполнении команды выводится
список, где первый элемент - матрица (a^ коэффициенты симметричной матрицы квадратичной формы Eq), второй элемент - вектор [столбец] - линейной формы L, третий элемент - число - свободный член квадрики. Приведем коды этой процедуры:
>AnalGeo[Coeffs2]:=proc(Eq,X)local Q,xx,yy,a_11,a_12,
a_22,AA,b_1, b_2,cc,dd,Q2,LQ,BB:Q:=lhs(Eq):xx: = X[1]:
yy:=X[2]:a_11:=coeff(Q,xxA2):a_22:=coeff(Q,yyA2): dd:=1/2*coeff(Q,yy):a_12:=coeff(dd,xx): AA:=Matrix([[a_11,a_12], [a_12,a_22]]): Q2:=a_11*xxA2+2*a_12*xx*yy+a_22*yyA2: LQ:=simplify(Q-
Q2):b_1:=coeff(LQ,xx):b_2:=coeff(LQ,yy): BB:=Vector([b_1,b_2]):cc: =simplify(LQ-b_1*xx-b_2*yy):
[AA,BB,cc]: endproc:
и покажем пример ввода и исполнения программной процедуры:
> QQ:=3*xA2-5*x*y+2*yA2-3*x-4*y+5=0:
> AnalGeo[Coeffs2](QQ,[x,y]);
„ -5"
-3
-4
Программные процедуры преобразования квадрики с помощью движения
На следующем этапе находятся коэффициенты квадратичной формы, преобразованной с помощью поворота O, O с P ^ Q' = O (Q) с помощью 5-параметрической процедуры Anal-Geo[Trans2(Eq,X,X1,s,p):
> AnalGeo[Trans2]:=proc(Eq,X,X1,s,p) local xx,yy,xx1,yy1,Q,AA,BB,cc,a_11,a_12,a_22,b_1 ,b_2, Q2,LQ,LQ1,TR1,Q21,aaJ1,aaJ2,aa_22,AAJ1,A A_12,AA_22, BB_1,BB_2: xx:=X[1 ]:yy:=X[2]:xx1:=X1[1]:yy1:=X1[2]: Q:=lhs(Eq):AA:=AnalGeo[Coeffs2](Eq,X)[1]:BB: = AnalGeo[Coeffs2](Eq,X)[2]:cc:=AnalGeo[Coeffs2] (Eq,X)[3]:
a_11:=AA[1,1]:a_12:=AA[1,2]:a_22:=AA[2,2]:b_ 1:=BB[1 ]:b_2:=BB[2]:Q2:=a_n*xxA2+2*a_12*x x*yy+a_22*yyA2:
LQ:=b_1*xx+b_2*yy:TR1:=(s,p)->{xx=xx1*cos(s)-
p*yy1*sin(s),yy=xx1*sin(s)+p*yy1*cos(s)}:
Q21:=(s,p)-collect(collect(subs(TR1(s,p),Q2),xx1),
yy1A2):
AA_11:=(s,p)->coeff(Q21(s,p),xx1A2):AA_12:=(s,p) -> simplify(1/2*coeff(coeff(Q21(s,p), yy1),xx1)): AA_22:=(s,p)->coeff(Q21(s,p),yy1A2):LQl:=(s,p)->collect( collect(subs(TR1(s,p),LQ),xx1),yy1): AA:=(s,p)->Matrix([[AA_11(s,p),AA_12(s,p)], [AA_12(s,p), AA_22(s,p)]]): BB_1:=(s,p)->simplify(coeff(LQ1(s,p),xx1)):BB_2:=(s,p) -> sim-plify(coeff(LQ1(s,p),yy1)):BB:=(s,p)->[BB_1(s,p), BB_2(s,p)]:[AA(s,p),BB(s,p),cc]: end proc:
Параметрами этой процедуры служат Eq -уравнение (1); X,X1 - список "старых" и "новых" переменных в формате [x,y]; s - угол поворота, p=s - параметр движения (2). Приведем пример исполнения этой процедуры.
[> QQ:=3*xA2+4*x*y-4*x-8*y=0;
[>AnalGeo [Trans2](QQ,[x,y], [x1,y1], alpha,epsilon);
-5cos (a) sin (a) + 3 cos (a)2 + 2sin (a)2,
-2£(2cos(a)sin(a) + 10cos(a)2 -5)
-2s^2cos(a)sin(a) + 10cos(a)2 -5),
3s2sin (a)2 + 2s2 cos (a)2 + 5s2 sin (a)cos (a)
Определение угла поворота координатной системы
Угол поворота системы координат, a, находится аналитически из уравнения (3). Точнее говоря, находится не само значение этого угла, а значения sin(a) и cos(a), поскольку эти величины, в отличие от величины самого угла поворота, определяются аналитически, а с другой стороны,
именно они и нужны для полного определения движения (3).
> AnalGeo[Angle2]:=proc(Eq,X,s) local Q,xx,yy,dd,a_11,a_12, a_22,AA,b_1 ,b_2, cc,Q2,LQ,B B,sss:
Q:=lhs(Eq):
xx:=X[1]:yy:=X[2]:dd:=1/2*coeff(Q,yy): a_11:=coeff(Q,xxA2):a_22:=coeff(Q,yyA2): a_12:=coeff(dd,xx): if a_12<>0 then sss: =[cos(s) =1/sqrt(2)*sqrt(1+abs(a_11-a_22)/ sqrt((a_11-a_22)A2+4*a_12A2)),sin(s)=sign((a_11-a_22) *a_12)/sqrt(2)* sqrt(1-abs(a_11-a_22)/sqrt((a_11-a_22)A2+4*a_12A2))]:
elif a_12=0 then sss:=[cos(s)=1,sin(s)=0]: end if: sss: end proc:
Приведем пример исполнения этой процедуры:
> AnalGeo[Angle2](QQ,[x,y], alpha);
t v л/2л/676 + 26л/26 cos (a) = —
52
sin
(а) =
л/2д/676 - 26л/26
52
Следующая программная процедура AnalGeo[Trans3](Eq,X,X1,s) интегрирует действие промежуточных процедур и выводит трехэлементный список, первым элементом которого является матрица преобразованной поворотом квадратичной формы, вторым элементом - список преобразованных коэффициентов линейной формы, третьим - значение свободного коэффициента преобразованной квадрики:
> АпаЮео/ТгатЗ]:=proc(Eq,X,X1,s): simplify(combine(subs({op(AnalGeo[Angle2] (Eq,X,s)),p=1},AnalGeo[Trans2] (Eq,X,X1 ^,р)))):єп ё рте:
Результат исполнения этой процедуры имеет следующую форму:
0
> AnalGeo[Trans3](QQ,[x,y], [xi,eta], alpha);
V26 5 2 2
5 ^ V26 2 2 _
3^338 +13^26 2д/338-13/26
0
26
13
3>/338 -13>/26 2V338 + 13/26
26
13
Программные процедуры распознавания типа кривой второго порядка, её основных элементов и автоматизированной оснащенной визуализации
Объединим программным способом созданные программные процедуры для получения конечного результата - полного автоматизированного исследования кривой второго порядка по ее общим уравнениям и автоматической оснащенной ее визуализации. Эти программные процедуры объединяются в трехпараметрической процедуре АпаЮео CanonF](Eq,X,X1,s), где Eq - общее уравнение кривой второго порядка, X - список координат в первоначальной системе координат в формате [х,у], XI - список координат в новой системе координат в формате [х1,у1 ], s - имя переменной угла поворота системы координат. При выполнении команды выводится название типа кривой; матрица ее параметров (список собственных значений квадратичной формы, каноническое уравнение кривой, преобразование движения, приводящее к каноническому уравнению, список параметров [с,е,с1] - [расстояние от центра до фокусов, эксцентриситет, расстояние от центра до директрис], [а,Ь,р] - [значения полуосей и параметра в каноническом уравнении параболы].
Ю.Г.ИГНАТЬЕВ, А.Р.САМИГУЛЛИНА
Рис.2. Окно программы Maple 13 с результатом исполнения команды
AnalGeoCanonF](5*xA2+4*x*y+8*yA2+8*x+14*y+5=0,[x,y],[xi,eta],alpha)
Из приведенного рисунка видны уникальные возможности представленного программного пакета: одной простой командой осуществляется полное исследование произвольного уравнения второго порядка на плоскости. При этом результаты представляются одновременно в двух формах: аналитической - в виде матрицы и определяющей - все элементы канонического вида квадрики, канонического движения, тип полученной геометрической фигуры и численное зна-
чение всех ее параметров, а также изображение полученной фигуры, оснащенное изображением всех ее элементов, первоначальной и канонической систем координат.
Заключение Описанная библиотека программных процедур показывает уникальные возможности СКМ Maple для осуществления идеи аналитического тестирования знаний по математике [1].
1. Проблемы информационных технологий в математическом образовании: учеб. пособ. / под ред. Ю.Г.Игнатьева. - Казань: ТГППУ, 2005. - 118 c.
2. Игнатьев Ю.Г. Пользовательские графические процедуры для создания анимационных моделей нелинейных физических процессов // Системы компьютерной математики и их приложения: матер. международной конференции. - Смоленск: СмолГУ, 2009. - Вып.10. - С.43-44.
3. Розакова Л. И. Методы математического и компьютерного моделирования в СКМ Maple графи-
ческих и анимационных материалов для школьных курсов математики // Вест. ТГГПУ. - 2010. -№3(21). - С.64-68.
4. Самигуллина А.Р. Математическое моделирование объектов линейной алгебры и аналитической геометрии в системе компьютерной математики Maple // Вест. ТГГПУ. - 2010. - №3(21). - С.69-74.
5. Кайгородов В. Р. Курс аналитической геометрии и линейной алгебры. - Казань: Казан. гос. ун-т. -1985. - 238 с.
SOFTWARE SUPPORT OF SECOND ORDER CURVES THEORY IN THE "MAPLE" PACKAGE COMPUTER MATHEMATICS
Yu.G.Ignatyev, A.R.Samigullina
The library of program procedures of the completely automated analysis and equipped visualization of the second order curves in the Maple package computer mathematics is described.
Key words: analytic geometry, computer mathematic systems, algorithm, second order curves.
Игнатьев Юрий Геннадьевич - доктор физико-математических наук, профессор, заведующий кафедрой высшей математики и математического моделирования Института математики и механики Казанского (Приволжского) федерального университета.
E-mail: [email protected]
Самигуллина Алсу Ринатовна - аспирант кафедры высшей математики и математического моделирования Института математики и механики Казанского (Приволжского) федерального университета.
E-mail: [email protected]
Поступила в редакцию 21.11.2011