Построение геодезической на поверхности

Форум пользователей пакета Mathematica

Модератор: Admin

bazgaz
Сообщения: 1
Зарегистрирован: Чт май 28, 2009 6:14 pm

Построение геодезической на поверхности

Сообщение bazgaz » Чт май 28, 2009 6:22 pm

Здраствуйте, есть задача :
Для данной поверхности построить геодезическую, выходящую из данной точки в данном направлении. Нужно также сделать возможным динамическое изменение точки, направления и длины геодезической.
Но не понятно как строить геодезическую в принципе и как это реализовать в mathematica, надеюсь на совет или любую ссылку на понятную статью*)

Azat
Сообщения: 1
Зарегистрирован: Сб фев 11, 2012 12:27 am

Re: Построение геодезической на поверхности

Сообщение Azat » Сб фев 11, 2012 12:29 am

bazgaz писал(а):Здраствуйте, есть задача :
Для данной поверхности построить геодезическую, выходящую из данной точки в данном направлении. Нужно также сделать возможным динамическое изменение точки, направления и длины геодезической.
Но не понятно как строить геодезическую в принципе и как это реализовать в mathematica, надеюсь на совет или любую ссылку на понятную статью*)



est reshenie etoi zadachi?

Markiyan Hirnyk
Сообщения: 1366
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Re: Построение геодезической на поверхности

Сообщение Markiyan Hirnyk » Сб фев 11, 2012 1:39 pm

bazgaz писал(а):Здраствуйте, есть задача :
Для данной поверхности построить геодезическую, выходящую из данной точки в данном направлении. Нужно также сделать возможным динамическое изменение точки, направления и длины геодезической.
Но не понятно как строить геодезическую в принципе и как это реализовать в mathematica, надеюсь на совет или любую ссылку на понятную статью*)
Пример из Maple, пакет DifferentialGeometry, подпакет Tensor команда GeodesicEquations
:
Example 1.
First create a 2 dimensional manifold M and define a connection on the tangent space of M.
> DGsetupApplyFunction([x,y],M)
frame name: M
M > Gamma:=ConnectionApplyFunction(a ((dx &t D_x) &t dy+(dy &t D_x) &t dx)+b y (dy &t
M >
M > D_x) &t dy)
Gamma := a dx D_x dy + a dy D_x dx + b y dy D_x dy

To determine the geodesic equations for nabla we first define a curve on M by specifying a list of functions of a single variable t.
M > C:=[xApplyFunction(t),yApplyFunction(t)]
C := [x(t), y(t)]

The program GeodesicEquations returns a vector whose components are the components of the geodesic equations.
M > V:=GeodesicEquationsApplyFunction(C,Gamma,t)

V := ((diff(y(t), t))^2*b*y(t)+2*(diff(x(t), t))*(diff(y(t), t))*a+diff(x(t), t, t))*D_x+(diff(y(t), t, t))*D_y


To solve these geodesic equations use DGinfo to obtain the coefficients of V as a list. Pass the result to dsolve to solve this system of 2 second order ODEs.
M > DE:=Tools:-DGinfoApplyFunction(V,"CoefficientSet")
DE := {(diff(y(t), t))^2*b*y(t)+2*(diff(x(t), t))*(diff(y(t), t))*a+diff(x(t), t, t), diff(y(t), t, t)}
M > simplifyApplyFunction(dsolveApplyFunction(DE,explicit))
x(t) = (1/4)*(-2*b*_C3^2*a*_C4*t+b*_C3^2*t-b*_C3^3*a*t^2-2*exp(-2*a*(_C3*t+_C4))*_C1*a+4*_C2*_C3*a^2)/(_C3*a^2), y(t) = _C3*t+_C4