Моделирование и анализ данных
2024. Том 14. № 4. С. 138–162
doi:10.17759/mda.2024140410
ISSN: 2219-3758 / 2311-9454 (online)
Вычислительный эксперимент в преподавании высшей математики. Геометрия.
Аннотация
Статья продолжает цикл ([1] – [13]) методических разработок авторов. В ней обсуждаются некоторые проблемы, связанные с путями повышения культуры математического мышления студентов-математиков. Авторы опираются на опыт работы на факультете информационных технологий МГППУ.
Общая информация
Ключевые слова: высшее образование, методика преподавания математики, аналитическая геометрия, преобразования координат, кривые второго порядка
Рубрика издания: Методика преподавания
Тип материала: научная статья
DOI: https://doi.org/10.17759/mda.2024140410
Получена: 09.10.2024
Принята в печать:
Для цитаты: Куланин Е.Д., Степанов М.Е. Вычислительный эксперимент в преподавании высшей математики. Геометрия. // Моделирование и анализ данных. 2024. Том 14. № 4. С. 138–162. DOI: 10.17759/mda.2024140410
Полный текст
ВВЕДЕНИЕ.
Данная статья в некотором смысле продолжает и дополняет статью авторов «Вычислительный эксперимент. Теория чисел» [13].
Создание Декартом метода координат привело к систематическому внедрению вычислительных методов в геометрию. Сила вычислений оказалась настолько велика, что с этого момента началось фактическое создание математики Нового времени. При этом математики, склонные к традиционной форме геометрии (синтетическая геометрия) часто активно препятствовали триумфальному шествию аналитической геометрии. Однако универсальность и способность приходить к результату без сложных и узко специализированных рассмотрений геометрических проблем привела к тому, что синтетическая геометрия оказалась в роли изгоя.
При этом развитие математики в последнее время демонстрирует некоторое торможение. Возможно, это связано с тем, что при изучении математических теорий упор делается на освоении вычислительных подходов к математическим задачам вообще и геометрии в частности. Более правильным представляется гармоничное сочетание синтетических и аналитических подходов к решению геометрических задач. Размышления и вычисления должны помогать друг другу. По крайней мере, к этому необходимо стремиться в учебном процессе.
СФЕРИКА
Современные геометрические теории многочисленны и часто неотделимы от вычислительных методов. Однако в данной статье будет рассмотрен круг вопросов, связанных с геометрией на сфере. Этот раздел геометрической науки всегда был востребован в астрономии. С соответствующей тематикой в её традиционной форме можно познакомиться по книге [14]. При этом геометрия на сфере долгое время рассматривалась как раздел евклидовой стереометрии.
Но на границе семнадцатого и восемнадцатого веков стали актуальными новые для того времени исследования, приведшие в итоге к созданию новых геометрических теорий, таких как проективная геометрия и неевклидовы геометрии. Математики постепенно начали понимать, что геометрия на сфере может рассматриваться как особая теория, в чём-то подобная планиметрии Евклида, но без параллельных линий. Более того, Иоганн Ламберт высказал мысль о том, что если бы существовала сфера с отрицательным радиусом, то на ней выполнялась бы теория, которая в дальнейшем будет названа геометрией Лобачевского.
После оформления и признания неевклидовых геометрий и проективной геометрии, многие результаты того времени, связанные со сферической геометрией, были забыты. В частности, речь идёт о теории кривых на сфере, которые являются аналогами кривых второго порядка. Мы рассмотрим некоторые теоремы, связанные с этой тематикой. Но сначала дадим краткие исторические сведения о так называемой сферике — учении о геометрических образах, на поверхности шара [15].
Сферика активно разрабатывалась в Петербургской академии наук. Работали в этом направлении академики Леонард Эйлер и Андрей Иванович Лексель, родившийся в Швеции. Но наибольших результатов в этом направлении достиг уроженец Швейцарии Николай Иванович Фусс, который по приглашению Леонарда Эйлера переехал в Россию, чтобы быть его бессменным секретарём. Кроме того, Фусс стал зятем Эйлера. Во времена нашествия Наполеона академик Фусс фактически руководил Академией. Естественно, что большинство его работ было связано с работами Л. Эйлера. Сферика в этом отношении не является исключением. Однако Фусс продвинулся в развитии соответствующей тематики дальше своих предшественников.
В частности, Фусс пришёл к мысли рассмотреть геометрическое место точек, сумма расстояний которых от двух данных точек постоянна, и исследовать ее свойства. Фактически это был шаг к созданию аналитической геометрии сферы. Кроме того, Фусс рассматривал аналоги циклоидальных кривых на сфере, но в данной статье будут рассмотрены только сферические аналоги эллипсов, гипербол и парабол.
Поясним, по каким причинам рассмотрение этих вопросов может представить интерес.
- Сферическая геометрия очень наглядна.
- Сферическая геометрия связана с эллиптической геометрией Римана и проективной геометрией на плоскости.
- Ряд теорем сферической геометрии очень просты, и их доказательство доступно для студентов.
- Некоторые факты сферической геометрии наоборот достаточно сложны и требуют для своего доказательства кропотливых алгебраических преобразований.
- Визуализация на экране объектов сферической геометрии требует овладения сложными вычислительными алгоритмами.
АНАЛОГИ КРИВЫХ ВТОРОГО ПОРЯДКА НА СФЕРЕ.
Начнём с перечисления наиболее важных геометрических объектов на сфере. Прежде всего, следует назвать плоские сечения сферы, которые являются окружностями евклидовой плоскости. С каждым плоским сечением связан перпендикулярный ему диаметр сферы. который мы будем называть сопряжённым соответствующему сечению. Концы любого диаметра являются полюсами сферы. Если секущая плоскость проходит через центр сферы, то сечение называется линией большого круга.
Расстояние между двумя точками А и В на сфере можно определить как величину угла АОВ, где О – центр сферы. Фактически та же метрика (с точностью до множителя) будет получена, если расстоянием считать длину дуги линии большого круга, соединяющей точки А и В. При таком определении расстояния кратчайшими линиями, соединяющей две точки на сфере, являются линии большого круга. Таким образом, роль прямых на сфере играют линии большого круга. Остальные плоские сечения сферы являются окружностями, центрами которых являются полюса сопряжённого сечению диаметра.
Расстояние на сфере между концами любого диаметра постоянно и равно длине меридиана данной сферы. Обозначим эту длину через m.
Рассматривая сферу как метрическое пространство, можно определить на сфере аналоги кривых второго порядка.
Эллипс – это множество точек на сфере, сумма расстояний от каждой из которых до двух фиксированных точек, называемых фокусами, постоянна.
Гипербола – это множество точек на сфере, разность расстояний от каждой из которых до двух фиксированных точек, называемых фокусами, постоянна.
Парабола – это множество точек на сфере, расстояния от которой до фиксированной точки, называемой фокусом, и до сферической прямой, называемой директрисой, одинаковы.
Сразу следует указать на особенность этого метрического пространства. Если точки А и В являются концами диаметра сферы, то сумма расстояний от них до любой точки на сфере постоянна и равна длине меридиана. Получается, что любая кривая на сфере может рассматриваться как сферический эллипс. По этой причине в определения эллипса должно быть внесено ограничение на выбор фокусов – они не должны быть концами одного диаметра. Риман именно на этом основании модифицировал сферическое пространство, отождествив диаметрально противоположные точки. Итак, в дальнейшем предполагается, что фокусы аналогов кривых второго порядка на сфере не являются диаметрально противоположными точками на сфере.
Задание 1. Доказать, что любой сферический эллипс с фокусами F1 и F2 одновременно является сферической гиперболой с фокусами Р1 и F2, где Р1 является точкой, диаметрально противоположной фокусу F1.
Решение. Пусть М точка на эллипсе, удовлетворяющая равенству F1M + MF2 = 2a. Расстояние между точками F1 и Р1 равно длине меридиана m. Таким образом, F1M + MР1 = m. Из этого следует, что F1M = m – MР1. После подстановки этого выражения в исходное равенство получаем, что m – MР1 + MF2 = 2a. В итоге получаем уравнение гиперболы: MF2 – MР1 = 2a – m.
Задание 2. Доказать, что любая сферическая гипербола одновременно является сферическим эллипсом.
Задание 3. Доказать, что любая сферическая парабола одновременно является сферическим эллипсом.
Задание 4. Описать все сферические параболы.
Отметим, что вместо фокуса F2 можно было с тем же успехом рассмотреть и фокус F1. Из этого следует, что у сферической параболы две директрисы.
Задание 5. Доказать, что любая линия большого круга на сфере одновременно является прямой, окружностью и эллипсом.
Указание. Для доказательства того, что линия большого круга является эллипсом, нужно провести плоскость через сопряжённый диаметр АВ. Полученное таким образом сечение сферы очерчено двумя меридианами. На каждом из них выберем по точке F1 и F2. При этом необходимо соблюсти условие АF1 = АF2. Теперь нужно доказать, что точки F1 и F2 являются фокусами линия большого круга.
Для рассмотренных выше сферических аналогов кривых второго порядка можно разработать сходные с методом Роберваля приёмы построения касательных к сферическим эллипсам. И на сфере этот подход основан на кинематических соображениях и состоит в том, что касательная и нормаль к эллипсу являются биссектрисами углов между фокальными радиусами. Таким образом, касательные к сферическим эллипсам являются биссектрисами углов между фокальными радиусами.
Задание 6. Доказать, что если на сфере заданы две точки F1 и F2, а точка F3 является диаметрально противоположной к точке F1, то любой сферический эллипс с фокусами F1 и F2 ортогонален любому сферическому эллипсу с фокусами F2 и F3.
Указание. Нужно использовать результаты задания 1.
Следствием последнего задания является тот факт, что семейства эллипсов с фокусами F1 и F2 и эллипсов с фокусами F2 и F3 взаимно ортогональны. Это позволяет строить на сфере эффектные семейства кривых. К вопросу о построении изображений аналогов кривых второго порядка на сфере мы и перейдём.
ПОСТРОЕНИЕ КРИВЫХ НА СФЕРЕ
Если до сих пор удавалось обходиться без сколь-нибудь сложных вычислений, то далее будут производиться достаточно пространные вычисления. Математической основой этих вычислений будут следующий круг понятий.
- Формулы аффинных преобразований трёхмерного пространства.
- Аксонометрия, как средство построения на плоскости объёмных изображений.
- Сферическая система координат.
- Скалярное произведение векторов, которое позволяет, отправляясь от сферических координат двух точек, вычислить расстояние между ними, выражаемое в угловой мере.
- Векторное произведение векторов, которое позволяет строить ортонормированные базисы в пространстве.
Задание 7. Построить на экране изображение сферы с прочерченной сетью параллелей и меридианов.
Решение. Далее приведена программа построения сферы. Результаты её работы показаны на рисунке 1.
pi = Math.Pi
GraphicsWindow.Width = 700
GraphicsWindow.Height = 700
'Координаты центра сферы, радиус и единичный отрезок
x0 = 350
y0 = 350
ed = 100
r = 2
'Базис аксонометрической системы координат
k = .25
u0 = pi/6
x1 = x0 + r*ed* Math.Cos(u0)
y1 = y0 - r*ed*k* Math.Sin(u0)
x2 = x0 + r*ed* Math.Cos(u0+pi/2)
y2 = y0 - r*ed*k* Math.Sin(u0+pi/2)
x3 = x0
y3 = y0 - r*ed
'Построение параллелей на сфере
For u1 = 0 To 2*pi Step pi/1000
For u2 = -pi/2 To pi/2 Step pi/10
p = Math.Cos(u1)*Math.Cos(u2)
q = Math.Sin(u1)*Math.Cos(u2)
w = Math.Sin(u2)
'Аффинные преобразования
x = x0 + p*(x1 - x0) + q*(x2 - x0) + w*(x3 - x0)
y = y0 + p*(y1 - y0) + q*(y2 - y0) + w*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
'Построение меридианов на сфере
For u1 = 0 To 2*pi Step pi/10
For u2 = -pi/2 To pi/2 Step pi/1000
p = Math.Cos(u1)*Math.Cos(u2)
q = Math.Sin(u1)*Math.Cos(u2)
w = Math.Sin(u2)
x = x0 + p*(x1 - x0) + q*(x2 - x0) + w*(x3 - x0)
y = y0 + p*(y1 - y0) + q*(y2 - y0) + w*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
Рисунок 1
Задание 8. Выделить на сфере область, ограниченную сферическим эллипсом.
Решение. Используем следующий способ. После построения объёмного изображения сферы следует задать сферические координаты фокусов эллипса и вычислить координаты векторов, соединяющих центр сферы с этими фокусами. Далее начинается сканирование точек сферы. Вычисляются косинусы углов, которые образуют фокальные вектора с вектором, соединяющим текущую точку с центром сферы. Наконец вычисляется косинус суммы этих углов, и производится проверка того, превосходит ли он косинус заданного суммарного угла, определяющего эллипс. Если он больше, то текущая точка является внутренней точкой эллиптической области. Её следует отметить на сфере.
Приведённые ниже строки программы следует добавить к программе из предыдущего задания. Результат работы показан на рисунке 2.
'Первый фокус эллипса
fpu1 = pi + pi/3
fmu1 = 0
pf1 = Math.Cos(fpu1)*Math.Cos(fmu1)
qf1 = Math.Sin(fpu1)*Math.Cos(fmu1)
wf1 = Math.Sin(fmu1)
x = x0 + pf1*(x1 - x0) + qf1*(x2 - x0) + wf1*(x3 - x0)
y = y0 + pf1*(y1 - y0) + qf1*(y2 - y0) + wf1*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
'Второй фокус эллипса
fpu2 = fpu1 + 2*pi/7
fmu2 = 0
pf2 = Math.Cos(fpu2)*Math.Cos(fmu2)
qf2 = Math.Sin(fpu2)*Math.Cos(fmu2)
wf2 = Math.Sin(fmu2)
x = x0 + pf2*(x1 - x0) + qf2*(x2 - x0) + wf2*(x3 - x0)
y = y0 + pf2*(y1 - y0) + qf2*(y2 - y0) + wf2*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
'Сумма расстояний от фокусов до любой точки на эллипсе
a = Math.Cos(2*pi/5)
'Сканирование сферы
For u1 = pi To 2*pi Step pi/400
For u2 = -pi/2 To pi/2 Step pi/400
'Радиус, направленный в текущую точку
p = Math.Cos(u1)*Math.Cos(u2)
q = Math.Sin(u1)*Math.Cos(u2)
w = Math.Sin(u2)
'Скалярные произведения текущего и фокальных радиусов
cs1 = pf1*p+qf1*q+wf1*w
sn1 = Math.SquareRoot(1 - cs1*cs1)
cs2 = pf2*p+qf2*q+wf2*w
sn2 = Math.SquareRoot(1 - cs2*cs2)
'Косинус суммы углов между текущим и фокальными радиусами
sum = cs1*cs2 - sn1*sn2
If sum > a Then
'Аффинные преобразования
x = x0 + p*(x1 - x0) + q*(x2 - x0) + w*(x3 - x0)
y = y0 + p*(y1 - y0) + q*(y2 - y0) + w*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"red")
EndIf
EndFor
EndFor
Рисунок 2
Рассмотренный выше способ визуализации кривых на сфере обладает рядом недостатков. По этой причине необходимо найти более эффективные пути построения подобных кривых. Начнём с построения линий большого круга.
Задание 9. Пусть на сфере задана точка P. Построить линию большого круга, для которой эта точка является полюсом.
Приведённые ниже строки программы, как и ранее, следует добавить к программе из задания 7. Результат работы показан на рисунке 3.
'Центр сферы
GraphicsWindow.BrushColor = "black"
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
'Полюс и базисные вектора
u1 = 3*pi/2
u2 = pi/3
p1 = Math.Cos(u1)*Math.Cos(u2)
q1 = Math.Sin(u1)*Math.Cos(u2)
w1 = Math.Sin(u2)
x = x0 + p1*(x1 - x0) + q1*(x2 - x0) + w1*(x3 - x0)
y = y0 + p1*(y1 - y0) + q1*(y2 - y0) + w1*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
d = Math.SquareRoot(p1*p1 + q1*q1)
p2 = -q1/d
q2 = p1/d
w2 = 0
x = x0 + p2*(x1 - x0) + q2*(x2 - x0) + w2*(x3 - x0)
y = y0 + p2*(y1 - y0) + q2*(y2 - y0) + w2*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
p3 = -p1*w1/d
q3 = -q1*w1/d
w3 = d
x = x0 + p3*(x1 - x0) + q3*(x2 - x0) + w3*(x3 - x0)
y = y0 + p3*(y1 - y0) + q3*(y2 - y0) + w3*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Линия большого круга
For ug = 0 To 2*pi Step pi/1000
t1 = p2 * Math.Cos(ug) + p3 * Math.Sin(ug)
t2 = q2 * Math.Cos(ug) + q3 * Math.Sin(ug)
t3 = w2 * Math.Cos(ug) + w3 * Math.Sin(ug)
x = x0 + t1*(x1 - x0) + t2*(x2 - x0) + t3*(x3 - x0)
y = y0 + t1*(y1 - y0) + t2*(y2 - y0) + t3*(y3 - y0)
GraphicsWindow.FillEllipse(x-1,y-1,2,2)
EndFor
Рисунок 3
Задание 10. Построить линию большого круга, проходящую через две точки А и В на сфере.
Указание. Нужно в плоскости АОВ, где О – центр сферы, построить вектор ОС, перпендикулярный вектору АО. Затем в базисе АО и СО по аналогии с предыдущим заданием строится либо линия большого круга, либо дуга АВ.
Построенная в задании 9 система координат из трёх векторов позволяет именно к ней привязывать сферические координаты. Рассмотрение группы преобразований трёхмерного пространства с неподвижной точкой О, как раз и связана с переходом от одного базиса к другому. Параллельное использование сферических координат позволяет описать группу движений сферической геометрии. Легко понять, что эта тематика позволяет поставить перед студентом ряд интересных и содержательных заданий. Мы же ограничимся только одним заданием.
Задание 11. Используя базис из задания 9, построить привязанную к нему систему параллелей и меридианов на сфере.
pi = Math.Pi
GraphicsWindow.Width = 700
GraphicsWindow.Height = 700
'Координаты центра сферы, радиус и единичный отрезок
x0 = 350
y0 = 350
ed = 300
'Базис аксонометрической системы координат
k = .25
u0 = pi/6
x1 = x0 + ed* Math.Cos(u0)
y1 = y0 - ed*k* Math.Sin(u0)
x2 = x0 + ed* Math.Cos(u0+pi/2)
y2 = y0 - ed*k* Math.Sin(u0+pi/2)
x3 = x0
y3 = y0 - ed
'Центр сферы
GraphicsWindow.BrushColor = "black"
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
'Полюс Р1 и базисные вектора
u1 = 3*pi/2
u2 = pi/3
p1 = Math.Cos(u1)*Math.Cos(u2)
q1 = Math.Sin(u1)*Math.Cos(u2)
w1 = Math.Sin(u2)
x = x0 + p1*(x1 - x0) + q1*(x2 - x0) + w1*(x3 - x0)
y = y0 + p1*(y1 - y0) + q1*(y2 - y0) + w1*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
d = Math.SquareRoot(p1*p1 + q1*q1)
p2 = -q1/d
q2 = p1/d
w2 = 0
x = x0 + p2*(x1 - x0) + q2*(x2 - x0) + w2*(x3 - x0)
y = y0 + p2*(y1 - y0) + q2*(y2 - y0) + w2*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
p3 = -p1*w1/d
q3 = -q1*w1/d
w3 = d
x = x0 + p3*(x1 - x0) + q3*(x2 - x0) + w3*(x3 - x0)
y = y0 + p3*(y1 - y0) + q3*(y2 - y0) + w3*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Построение параллелей на сфере
For u1 = 0 To 2*pi Step pi/1000
For u2 = -pi/2 To pi/2 Step pi/10
'Сферические координаты
s1 = Math.Cos(u1)*Math.Cos(u2)
s2 = Math.Sin(u1)*Math.Cos(u2)
s3 = Math.Sin(u2)
' Координаты в наклонной системе координат
t1 = p1 * s1 + p2 * s2 + p3 * s3
t2 = q1 * s1 + q2 * s2 + q3 * s3
t3 = w1 * s1 + w2 * s2 + w3 * s3
'Экранные координаты
x = x0 + t1*(x1 - x0) + t2*(x2 - x0) + t3*(x3 - x0)
y = y0 + t1*(y1 - y0) + t2*(y2 - y0) + t3*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
'Построение меридианов на сфере
For u1 = 0 To 2*pi Step pi/10
For u2 = -pi/2 To pi/2 Step pi/1000
'Сферические координаты
s1 = Math.Cos(u1)*Math.Cos(u2)
s2 = Math.Sin(u1)*Math.Cos(u2)
s3 = Math.Sin(u2)
'Координаты в наклонной системе координат
t1 = p1 * s1 + p2 * s2 + p3 * s3
t2 = q1 * s1 + q2 * s2 + q3 * s3
t3 = w1 * s1 + w2 * s2 + w3 * s3
'Экранные координаты
x = x0 + t1*(x1 - x0) + t2*(x2 - x0) + t3*(x3 - x0)
y = y0 + t1*(y1 - y0) + t2*(y2 - y0) + t3*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
Рисунок 4
Перейдём к вопросу о достаточно эффективном способе построения сферических эллипсов. Немецкий математик, занимавшийся проективной геометрией, Людвиг Иммануил Магнус показал, что сферический эллипс является линией пересечения шара с конусом второго порядка, вершина которого лежит в центре шара. Именно это обстоятельство можно использовать при построениях. Однако начнём с доказательства приведённого выше утверждения.
Построения будем проводить, отправляясь от сферы единичного радиуса с центром в точке Н. Расстояние между двумя точками P и Q будет задаваться величиной центрального угла PHQ.
Рисунок 5
Рисунок 6
Решение. Результат работы программы показан на рисунке 7. Он показывает, что предположение верно.
pi = Math.Pi
r = 100
'Полуось а
al = pi/5
ca = Math.Cos(al)
ta = Math.SquareRoot(1 - ca*ca)/ca
a = r*ta
'Параметр с
fi = pi/7
cf = Math.Cos(fi)
tf = Math.SquareRoot(1 - cf*cf)/cf
c = r*tf
'Полуось b
cb = ca/cf
tb = Math.SquareRoot(1 - cb*cb)/cb
b = r*tb
'Длина векторов FH
mv = Math.SquareRoot(c*c + r*r)
i = 20
c2al = Math.Cos(2*al)
'Изменение параметра u
For u = 0 To 2*pi step pi/8
'Вектор MH
x = a* Math.Cos(u)
y = b* Math.Sin(u)
mt = Math.SquareRoot(x*x + y*y + r*r)
'Вычисление косинуса и синуса угла u1
c1 = (r*r - c*x)/(mv*mt)
s1 = Math.SquareRoot(1 - c1*c1)
'Вычисление косинуса и синуса угла u2
c2 = (r*r + c*x)/(mv*mt)
s2 = Math.SquareRoot(1 - c2*c2)
'Вычисление косинуса угла u1 + u2
csum = c1*c2 - s1*s2
'Вычисление разности косинуса угла u1 + u2 и косинуса угла 2*al
GraphicsWindow.DrawText(50,i,csum - c2al)
i = i + 20
EndFor
Рисунок 7
Избавимся от радикалов и дробей и получим уравнение
После преобразований перейдём к уравнению
Доказательство этого тождества проводится без труда. Но отметим, что проверку правильности проведённых к определённому моменту преобразований с помощью вычисления выражений при конкретных значениях переменных можно было проводить несколько раз.
Итак, теорема Магнуса доказана. Более того, показано, что фокусы сферического и плоского эллипса друг в друга не проецируются. Наконец, получены формулы, позволяющие построить плоский эллипс, связанный с эллипсом сферическим.
Перейдём к вопросам, связанным с эффективным методом построения сферического эллипса.
Задание 13. Разработать алгоритм построения сферического эллипса в аксонометрической проекции.
Решение. Исходными данными для построения сферического эллипса являются:
- Сферические координаты фокусов эллипса.
- Угловая мера α полуоси эллипса.
Построение будет начато с получения изображения сферы с центром Н (смотри задание 7). Далее необходимо провести ряд вычислений.
- Вычислить координаты фокусов сферического эллипса Ф1 и Ф2 в трёхмерном пространстве и отобразить их на экране.
Вычислить координаты центра сферического эллипса О и отобразить её на экране.- Вычислить координаты вектора НО.
- Получить уравнение плоскости, проходящей через точку О перпендикулярно вектору НО.
- Определить координаты первого базисного вектора ОР на этой плоскости, нормируя вектор Ф1Ф2.
Определить координаты второго базисного вектора ОТ на этой плоскости, как векторное произведение ОН и ОР.- Если нужно, построить изображение плоскости РОТ.
- Определить полуоси плоского эллипса на плоскости РОТ.
- С помощью параметрического уравнения вычислить координаты текущей точки М на плоском эллипсе.
- Нормируя вектор НМ построить соответствующую точку М1 сферического эллипса.
Задание 14. Написать программу построения сферического эллипса.
Решение. Результат работы программы показан на рисунке 8.
pi = Math.Pi
GraphicsWindow.Width = 700
GraphicsWindow.Height = 700
'Координаты центра сферы, радиус и единичный отрезок
x0 = 350
y0 = 350
ed = 200
'Базис аксонометрической системы координат
k = .25
u0 = pi/6
x1 = x0 + ed* Math.Cos(u0)
y1 = y0 - ed*k* Math.Sin(u0)
x2 = x0 + ed* Math.Cos(u0+pi/2)
y2 = y0 - ed*k* Math.Sin(u0+pi/2)
x3 = x0
y3 = y0 - ed
'Построение параллелей на сфере
For u1 = 0 To 2*pi Step pi/1000
For u2 = -pi/2 To pi/2 Step pi/10
p = Math.Cos(u1)*Math.Cos(u2)
q = Math.Sin(u1)*Math.Cos(u2)
w = Math.Sin(u2)
'Аффинные преобразования
x = x0 + p*(x1 - x0) + q*(x2 - x0) + w*(x3 - x0)
y = y0 + p*(y1 - y0) + q*(y2 - y0) + w*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
'Построение меридианов на сфере
For u1 = 0 To 2*pi Step pi/10
For u2 = -pi/2 To pi/2 Step pi/1000
p = Math.Cos(u1)*Math.Cos(u2)
q = Math.Sin(u1)*Math.Cos(u2)
w = Math.Sin(u2)
'Аффинные преобразования
x = x0 + p*(x1 - x0) + q*(x2 - x0) + w*(x3 - x0)
y = y0 + p*(y1 - y0) + q*(y2 - y0) + w*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
'Центр сферы
GraphicsWindow.BrushColor = "black"
GraphicsWindow.FillEllipse(x0-5,y0-5,10,10)
'Первый фокус
u11 = .6*pi
u21 = 0
p1 = Math.Cos(u11)*Math.Cos(u21)
q1 = Math.Sin(u11)*Math.Cos(u21)
w1 = Math.Sin(u21)
x = x0 + p1*(x1 - x0) + q1*(x2 - x0) + w1*(x3 - x0)
y = y0 + p1*(y1 - y0) + q1*(y2 - y0) + w1*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Второй фокус
u12 = 1*pi
u22 = .2
p2 = Math.Cos(u12)*Math.Cos(u22)
q2 = Math.Sin(u12)*Math.Cos(u22)
w2 = Math.Sin(u22)
x = x0 + p2*(x1 - x0) + q2*(x2 - x0) + w2*(x3 - x0)
y = y0 + p2*(y1 - y0) + q2*(y2 - y0) + w2*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Центр эллипса
p0 = p1 + p2
q0 = q1 + q2
w0 = w1 + w2
d = Math.SquareRoot(p0*p0 + q0*q0 + w0*w0)
p0 = p0/d
q0 = q0/d
w0 = w0/d
x = x0 + p0*(x1 - x0) + q0*(x2 - x0) + w0*(x3 - x0)
y = y0 + p0*(y1 - y0) + q0*(y2 - y0) + w0*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Первый базисный вектор на плоскости
pb1 = p2 - p1
qb1 = q2 - q1
wb1 = w2 - w1
d = Math.SquareRoot(pb1*pb1 + qb1*qb1 + wb1*wb1)
pb1 = pb1/d
qb1 = qb1/d
wb1 = wb1/d
x = x0 + p0*(x1 - x0) + q0*(x2 - x0) + w0*(x3 - x0)
y = y0 + p0*(y1 - y0) + q0*(y2 - y0) + w0*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Второй базисный вектор на плоскости
pb2 = q0*wb1 - qb1*w0
qb2 = -(p0*wb1 - pb1*w0)
wb2 = p0*qb1 - pb1*q0
x = x0 + pb2*(x1 - x0) + qb2*(x2 - x0) + wb2*(x3 - x0)
y = y0 + pb2*(y1 - y0) + qb2*(y2 - y0) + wb2*(y3 - y0)
GraphicsWindow.FillEllipse(x-5,y-5,10,10)
GraphicsWindow.DrawLine(x,y,x0,y0)
'Построение плоскости
For t1 = -2 To 2 Step .01
For t2 = -1 To 1 Step .1
tt1 = p0 + pb1*t1 + pb2*t2
tt2 = q0 + qb1*t1 + qb2*t2
tt3 = w0 + wb1*t1 + wb2*t2
x = x0 + tt1*(x1 - x0) + tt2*(x2 - x0) + tt3*(x3 - x0)
y = y0 + tt1*(y1 - y0) + tt2*(y2 - y0) + tt3*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
For t1 = -2 To 2 Step .25
For t2 = -1 To 1 Step .01
tt1 = p0 + pb1*t1 + pb2*t2
tt2 = q0 + qb1*t1 + qb2*t2
tt3 = w0 + wb1*t1 + wb2*t2
x = x0 + tt1*(x1 - x0) + tt2*(x2 - x0) + tt3*(x3 - x0)
y = y0 + tt1*(y1 - y0) + tt2*(y2 - y0) + tt3*(y3 - y0)
GraphicsWindow.SetPixel(x,y,"")
EndFor
EndFor
'Построение плоского и сферического эллипсов
cf = p0*p1 + q0*q1 + w0*w1
fu = Math.ArcCos(cf)
al = fu + .1
ca = Math.Cos(al)
a = Math.Tan(al)
b = Math.SquareRoot(cf*cf - ca*ca)/ca
For ug = 0 To 2*pi Step pi/1000
'Точка на плоском эллипсе
t1 = a * Math.Cos(ug)
t2 = b * Math.Sin(ug)
tt1 = p0 + pb1*t1 + pb2*t2
tt2 = q0 + qb1*t1 + qb2*t2
tt3 = w0 + wb1*t1 + wb2*t2
x = x0 + tt1*(x1 - x0) + tt2*(x2 - x0) + tt3*(x3 - x0)
y = y0 + tt1*(y1 - y0) + tt2*(y2 - y0) + tt3*(y3 - y0)
GraphicsWindow.FillEllipse(x-1,y-1,2,2)
'Точка на сферическом эллипсе
d = Math.SquareRoot(tt1*tt1 + tt2*tt2 + tt3*tt3)
tt1 = tt1/d
tt2 = tt2/d
tt3 = tt3/d
x = x0 + tt1*(x1 - x0) + tt2*(x2 - x0) + tt3*(x3 - x0)
y = y0 + tt1*(y1 - y0) + tt2*(y2 - y0) + tt3*(y3 - y0)
GraphicsWindow.FillEllipse(x-2,y-2,4,4)
EndFor
Рисунок 8
Темы для самостоятельной работы студентов, связанные со сферикой.
- На сфере заданы три точки А, В и С. Построить сферический треугольник АВС.
Построить описанную окружность сферического треугольника АВС.
Построить вписанную окружность сферического треугольника АВС.- Построить на сфере аналог спирали Архимеда.
- Построить изображения икосаэдра и додекаэдра. Построить на сфере семейство софокусных эллипсов.
- 7.Построить на сфере семейство софокусных эллипсов и семейство ортогональных к ним гипербол.
- 8.Разработать программу управления аналогом черепашки из языка Лого на сфере.
Темы для самостоятельной работы студентов, связанные с построением объёмных изображений.
Разработать программу построения изображения плоскости по трём точкам в пространстве.
Написать программы для построения поверхностей, описываемых функциями от двух переменных.
Построить изображение тора.- .Построить изображение листа Мёбиуса.
Построить изображение бутылки Клейна.
Разработать методы построения различных поверхностей второго порядка.
Написать программы, создающие анимационные эффекты с объёмными изображениями, например, вращение пирамид и призм.
ЗАКЛЮЧЕНИЕ
Что касается вопросов, связанных с вычислениями в различных областях геометрии, то здесь открывается широчайший круг для методических разработок. Тем не менее, авторы надеются, что и методические идеи, изложенные в данной статье и связанные с достаточно специфичной проблематикой, могут пригодиться молодым преподавателям и помочь в их нелёгкой работе. Предполагается написание ещё ряда статей, связанных с вычислениями в различных областях математики.
Литература
- Куланин Е.Д., Нуркаева И.М.О двух геометрических задачах на экстремум. Математика в школе. 2019. № 4. С. 35-40.
- Куланин Е.Д., Нуркаева И.М. Еще раз о задаче Мавло. Математика в школе. 2020. № 2. С. 76-79.
- Куланин Е.Д., Степанов М. Е., Нуркаева И.М. Пропедевтика решения экстремальных задач в школьном курсе математики. Моделирование и анализ данных. № 4. С.127-144.
- Куланин Е. Д., Нгуен Ву Куанг, Степанов М. Е. Осязаемая предметность с компьютерной поддержкой. Моделирование и анализ данных. Научный журнал. № 4. С.145-156.
- Куланин Е.Д.,Степанов М. Е., Нуркаева И.М. Роль образного мышления в научном мышлении. Моделирование и анализ данных. 2020. Т.10. №2 С.110 - 128.
- Куланин Е.Д., Степанов М. Е., Нуркаева И.М. О различных подходах к решению экстремальных задач. Моделирование и анализ данных. 2020. Т.11. №1. С.40 - 60.
- Лунгу К.Н., Норин В.П., Письменный Д.Т., Шевченко Ю.А., Куланин Е.Д. Сборник задач по высшей математике с контрольными работами. Москва, 2013. Том 2 (8-е издание).
- Степанов М.Е. Некоторые вопросы методики преподавания высшей математики. Моделирование и анализ данных. №1. С.54-94.
- Куланин Е.Д., Степанов М. Е. Из опыта работы в режиме дистанционного обучения Моделирование и анализ данных. 2022. Т.12. №3. С.58 – 70.
- Куланин Е.Д., Степанов М. Е. Всестороннее рассмотрение математических понятий как методический прием. Моделирование и анализ данных. 2022. Т.12. №4. С.67 – 84.
- Куланин Е.Д., Степанов М. Е. О визуализации решений некоторых экстремальных задач. Моделирование и анализ данных. 2022. Т.12. №4. С.94 - 104.
- Куланин Е.Д., Степанов М. Е., Панфилов А.Д., Потонышев И.С. Системный подход к методике тифлопедагогики на примере задач математического анализа. 2022. Т.12. №2. С.34 - 82.
- Куланин Е.Д., Степанов М. Е. Вычислительный эксперимент в преподавании высшей математики на примере теории чисел. Моделирование и анализ данных. Т.14. №1. С.170 - 195.
- Энциклопедия элементарной математики. Книга четвёртая. Геометрия. М., Гос. изд. физ.-мат. лит., 1963.
- Лысенко В. И. Николай Иванович Фусс, М., Наука, 1975.
Информация об авторах
Метрики
Просмотров
Всего: 6
В прошлом месяце: 0
В текущем месяце: 6
Скачиваний
Всего: 0
В прошлом месяце: 0
В текущем месяце: 0