Введение
Статья продолжает цикл методических разработок авторов (Куланин Е. Д., Степанов М. Е., Нуркаева И.М., 2020; Куланин Е. Д., Степанов М. Е., Нуркаева И.М., 2021; Куланин Е. Д., Степанов М. Е., 2024; Лунгу К.Н., Норин В.П., Письменный Д.Т., Шевченко Ю.А., Куланин Е.Д., 2013). Непосредственно она продолжает статью «Алгебраические кривые низших порядков в преподавании высшей математики» (Куланин, Степанов, 2025). В ней обсуждаются некоторые проблемы, связанные с путями повышения культуры математического мышления студентов-математиков. Главным объектом обсуждения являются алгебраические кривые степени выше двух. Авторы опираются на опыт работы на факультете информационных технологий МГППУ.
В статье (Куланин, Степанов, 2025) рассматривались алгебраические линии не выше второго порядка, а также их семейства. Там же описан метод построения алгебраических кривых на экране компьютера с помощью сканирования декартовой плоскости. Этот метод позволяет строить любые линии, описанные неявными уравнениями, в том числе трансцендентные. По этой причине многие задания, рассмотренные в данной статье, могут быть перенесены на более широкий круг математических тем.
В большинстве заданий в этой статье предлагается написать компьютерную программу, визуализирующую алгебраические кривые и их семейства. Авторы считают, что геометрические образы должны максимально интенсивно использоваться в обучении высшей математике (Куланин Е. Д., Нуркаева И. М., Степанов М. Е., 2020; Куланин Е. Д., Нгуен Ву Куанг, Степанов М. Е., 2019; Куланин Е. Д., Степанов М. Е., 2022 DOI: https://doi.rg/10.17759/mda.2022120407; Куланин Е. Д., Степанов М. Е.,2022 DOI: https://doi.org/10.17759/mda.2024140212).
Предоставление возможности студентам с помощью компьютера самостоятельно строить алгебраические кривые, является одной из важных целей данной статьи.
Ещё одной не менее важной целью является описание вопросов, которые могут стать темами курсовых и дипломных работ.
Построение образов алгебраических кривых на экране
Традиционные формы преподавания высшей математики используют чертежи, как обязательный методический приём. Экстремисты от математики с удивительной активностью пытались изгнать визуальные образы математических объектов из курсов не только высшей, но и школьной математики (Дьедонне Ж., 1972).
Однако по мнению авторов данной статьи использование различных образов является одним из важнейших способов развития математической интуиции студентов. В частности, построение на экране кривых и поверхностей даёт учащемуся возможность увидеть большое количество геометрических объектов, которые до появления компьютеров строились с большим трудом. Если же студент сам пишет подобную программу, он, кроме всего прочего, должен детально разобраться в математических аспектах описания соответствующего объекта.
Рассмотрим несколько примеров построения алгебраических кривых на экране компьютера. При этом хорошим путеводителем по замечательным кривым является книга (Савёлов А. А., 1960). Ориентируясь на изложенный в ней материал, рассмотрим одну из описанных там кривых.
Будем строить трисектрису Маклорена, используя её геометрическое описание. Трисектриса Маклорена является подэрой параболы относительно такой точки её оси, которая удалена от директрисы на расстояние, равное расстоянию директрисы от фокуса (фокальное расстояние). Подэрой данной кривой относительно какой-либо точки плоскости называется новая кривая, представляющая собой геометрическое место оснований перпендикуляров, опущенных из этой точки на касательные к заданной кривой (Савёлов А. А., 1960).
Задание 1. Построить на экране параболу и семейство касательных к ней.
Построенное программой изображение показано на рисунке 1.
GraphicsWindow.Width = 600
GraphicsWindow.Height = 600
'Фокальное расстояние параболы
p = 1
'Начало экранных координат
x0 = 300
y0 = 300
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
GraphicsWindow.DrawLine(0,y0,600,y0)
GraphicsWindow.DrawLine(x0,0,x0,600)
'Количество пикселов в единичном отрезке
ed = 100
'Сетка единичных квадратов
For x=-3 To 3 Step .01
For y=-3 To 3 Step 1
xe=x0 + ed*x
ye=y0 - ed*y
GraphicsWindow.SetPixel(xe,ye,"green")
EndFor
EndFor
For x=-3 To 3 Step 1
For y=-3 To 3 Step .01
xe=x0 + ed*x
ye=y0 - ed*y
GraphicsWindow.SetPixel(xe,ye,"green")
EndFor
EndFor
'Построение параболы
For y = 0 To 9 Step .01
x = y*y/(2*p)
xe=x0 + ed*x
ye=y0 - ed*y
GraphicsWindow.SetPixel(xe,ye,"")
ye=y0 + ed*y
GraphicsWindow.SetPixel(xe,ye,"")
EndFor
'Касательные к параболе
For yk = .5 To 9 Step .1
xk = yk*yk/(2*p)
xe=x0 + ed*xk
ye=y0 - ed*yk
k = yk/(2*xk)
b = yk/2
For t = - 3 To 3 Step .01
u = k*t + b
xe=x0 + ed*t
ye=y0 - ed*u
GraphicsWindow.SetPixel(xe,ye,"")
ye=y0 + ed*u
GraphicsWindow.SetPixel(xe,ye,"")
EndFor
EndFor
Задание 2. Построить трисектрису Маклорена как подэру параболы. Найти уравнение асимптоты к ней.
В программе часть, посвящённую проведению касательных, следует заменить на новые строки. Результат работы программы показан на рисунке 2.
'Точка на плоскости
xe = x0 - p*ed
GraphicsWindow.FillEllipse(xe - 5, y0 - 5, 10, 10)
'Построение подэры
'Параметры касательной
For yk = .1 To 9 Step .01
xk = yk*yk/(2*p)
xe=x0 + ed*xk
ye=y0 - ed*yk
k = yk/(2*xk)
b = yk/2
'Основания перпендикуляров
k1 = -1/k
b1 = -p/k
xt = -(b - b1)/(k - k1)
yt = k*xt + b
xe=x0 + ed*xt
ye=y0 - ed*yt
GraphicsWindow.SetPixel(xe,ye,"")
ye=y0 + ed*yt
GraphicsWindow.SetPixel(xe,ye,"")
EndFor
'Асимптота
xe = x0 - p*ed*1.5
GraphicsWindow.DrawLine(xe, 0, xe, 600)
В статье (Куланин Е. Д., Степанов М. Е., 2025, с.210-251) показан метод построения кривых сканированием.
Решение. Результат работы программы показан на рисунке 3.
GraphicsWindow.Width = 200
GraphicsWindow.Height = 600
x0 = 50
y0 = 300
ed = 10
b = 10
c = 5
GraphicsWindow.DrawLine(c*ed+x0,0,c*ed+x0,600)
For x = -5 To 15 Step .01
For y = -30 To 30 Step .01
z = x*(x*x + y*y) - y*(c*y - b*x)
If Math.Abs(z)<.3 Then
xe = x0 + x*ed
ye = y0 - y*ed
GraphicsWindow.SetPixel(xe, ye, "blake")
EndIf
EndFor
EndFor
GraphicsWindow.DrawLine(x0 + c*ed, 0, x0 + c*ed, 600)
Рис. 3. Офиурида
Fig. 3. Ophiuride
Задание 4. Офиурида является подэрой параболы относительно какой-либо точки, лежащей на касательной к вершине этой параболы. Построить офиуриду, отправляясь от этого факта.
Меняя формулу, описывающую кривую, можно с помощью последней программы ознакомиться с формой многочисленных линий. Однако для более удобного изучения кривых следует написать интерактивную программу, позволяющую пользователю выбирать очередную кривую из определённого набора. Для более чёткой фиксации важности этого типа программ сформулируем требование их разработки в виде задания.
Задание 5. Написать программу, позволяющую в интерактивном режиме просматривать некоторый набор алгебраических кривых.
О возможных решениях. Предлагаемое задание можно выполнить различными способами в зависимости от конкретных требований к программе. Это может относится к списку кривых, которые можно просматривать; к подробности описания каждой из кривых, например, по типу заданий 1 и 2. Тем более, самыми различными могут быть интерфейсы программ. Учитывая это, можно предлагать разработку подобных программ как тему курсовой и даже дипломной работы.
Приведём пример конкретной темы, которая может стать примером дипломной работы. С этой целью мы рассмотрим циссоиду Диоклеса (рис. 4) и циссоидальные преобразования (Савёлов А. А., 1960).
Задание 6. Написать программу, которая строит циссоиду по уравнению с помощью сканирования. Кроме того, на экране следует отобразить окружность, прямую АВ, произвольно заданный отрезок ОВ (например, с помощью выбора угла наклона) и точки С и D. В итоге будет построен рисунок 4. Факт прохождения циссоиды через точку D должен подтвердить согласованность двух определений циссоиды Диоклеса.
Решение. Приведём соответствующую программу.
Pi = Math.Pi
GraphicsWindow.Width = 300
GraphicsWindow.Height = 600
x0 = 50
y0 = 300
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
ed = 10
a = 10
u0 = pi/5
h = 2*a*Math.Tan(u0)
x1 = x0 + 2*a*ed
y1 = y0 - h*ed
GraphicsWindow.FillEllipse(x0 - 5, y0 - 5,10,10)
GraphicsWindow.DrawLine(x1,0,x1,600)
GraphicsWindow.DrawLine(0,y0,300,y0)
GraphicsWindow.DrawEllipse(x0, y0 - a*ed, 2*a*ed, 2*a*ed)
GraphicsWindow.DrawLine(x0,y0,x1,y1)
GraphicsWindow.FillEllipse(x1 - 5,y1 - 5,10,10)
d1 = Math.SquareRoot(4*a*a + h*h)
d2 = 2*a* Math.Cos(u0)
lm = d2/d1
x2 = x0 + lm*(x1 - x0)
y2 = y0 + lm*(y1 - y0)
GraphicsWindow.FillEllipse(x2 - 5,y2 - 5,10,10)
lm = 1 - lm
x3 = x0 + lm*(x1 - x0)
y3 = y0 + lm*(y1 - y0)
GraphicsWindow.FillEllipse(x3 - 5,y3 - 5,10,10)
For x = 0 To 2*a*ed Step .005
For y = -30 To 30 Step .005
z = x*x*x - y*y*(2*a - x)
xe = x0 + x*ed
ye = y0 - y*ed
If Math.Abs(z)<.08 Then
GraphicsWindow.SetPixel(xe, ye, "blake")
EndIf
EndFor
EndFor
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
Задание 7. Написать программу, которая строит циссоиду Диоклеса, исходя из её геометрического определения.
Задание 8. Циссоида является множеством точек, симметричных вершине параболы относительно её касательных. Написать программу, которая строит циссоиду на основе этого факта.
Задание 9. На основе изложенных фактов написать демонстрационную или обучающую программу, посвящённую циссоиде.
Перейдём к рассмотрению циссоидальных преобразований. Циссоида Диоклеса строится с помощью использования окружности и прямой. Если заменить их другими линиями, то получится новая кривая. На этом соображении даётся определение циссоидальных преобразований.
Задание 10. Доказать, что циссоида Диоклеса подпадает под это определение.
Естественно, что при таком определении циссоидальных преобразований можно построить сколь угодно много новых кривых. Ограничимся только одним примером.
Решение. При q = 0 уравнение описывает параболу. При q отличном от нуля следует выделить полный квадрат в правой части уравнения. В зависимости от знака q будет получено уравнение эллипса или параболы. Продемонстрировать этот факт можно также с помощью следующей программы
GraphicsWindow.Width = 600
GraphicsWindow.Height = 600
'Параметры исходной кривой
p = 3
q = -4
'Начало экранных координат
x0 = 300
y0 = 300
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
GraphicsWindow.DrawLine(0,y0,600,y0)
GraphicsWindow.DrawLine(x0,0,x0,600)
'Количество пикселов в единичном отрезке
ed = 100
'Сканирование декартовой плоскости
For x = -3 To 3 Step .01
For y = -3 To 3 Step .01
'Вычисление значений функции z = F(x, y)
z = y*y - 2*p*x - q*x*x
'Переход к экранной системе координат
xe = x0 + x*ed
ye = y0 - y*ed
If Math.Abs(z)<.01 Then
GraphicsWindow.SetPixel(xe, ye, "blake")
EndIf
EndFor
EndFor
pi = Math.Pi
GraphicsWindow.Width = 600
GraphicsWindow.Height = 600
x0 = 300
y0 = 300
ed = 30
p = 4
q = -3
k = 3
For u = 0 To 2*pi Step pi/10000
zn1 = Math.Sin(u)*Math.Sin(u) - q*Math.Cos(u)*Math.Cos(u)
zn2 = Math.Cos(u)
If Math.Abs(zn1) > .001 And Math.Abs(zn2) > .001 Then
r1 = 2*p*Math.Cos(u)/zn1
r2 = k/zn2
r = r1 - r2
x1 = r1* Math.Cos(u)
y1 = r1 *Math.Sin(u)
xe = x0 + x1*ed
ye = y0 - y1*ed
GraphicsWindow.SetPixel(xe,ye,"")
x2 = r2* Math.Cos(u)
y2 = r2 *Math.Sin(u)
xe = x0 + x2*ed
ye = y0 - y2*ed
GraphicsWindow.SetPixel(xe,ye,"")
x = r* Math.Cos(u)
y = r* Math.Sin(u)
xe = x0 + x*ed
ye = y0 - y*ed
GraphicsWindow.FillEllipse(xe-1,ye-1,2,2)
EndIf
EndFor
Рис. 5. Циссоида эллипса
Fig. 5. The cissoid of the ellipse
Рис. 6. Циссоида гиперболы
Fig. 6. The cissoid of hyperbola
Fig. 7. The cissoid of the parabola
Заключение
В данной статье рассматриваются вопросы, связанные с углублённым изучением линий выше второго порядка. Особое внимание уделяется методам построения алгебраических кривых.
Обсуждение соответствующих вопросов может помочь молодым преподавателям при изучении различных разделов высшей математики. Кроме того, некоторые рассмотренные темы могут быть предложены в качестве тем курсовых и дипломных работ.


