2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 
Сообщение18.12.2006, 22:30 
worm2 писал(а):
,
Это упрощает задачу. Ведь кривые, которые мы хотим параметризовать, в этом случае будут, очевидно, также состоять из прямых отрезков, т.е. будут ломаными.


Да, только конкретная реализация всё равно малопонятна, мне по крайней мере :(

 
 
 
 
Сообщение19.12.2006, 09:51 
Аватара пользователя
Цитата:
worm2:
Насчёт параметризации Вы совершенно правильно меня поняли. Если есть система уравнений, описывающая кривую в пространстве F(x,y,z) = 0, G(x, y, z) = 0 (в данном случае первое, например, уравнение, может явяться уравнением Вашего тела вращения), то параметризация --- это запись той же самой кривой в виде x=x(t), y=y(t), z=z(t). Всё правильно, угол можно использовать в качестве параметра. Просто нужно постараться выбрать параметр так, чтобы уравнения были по возможности проще. Иногда для этого удобнее взять не угол, а некоторую функцию от него: t=f(угол). А иногда вообще не удаётся так подобрать параметр t, чтобы x, y и z являлись бы элементарными функциями от t (да что там элементарными --- даже в известных специальных функциях не всегда получается). Так что параметризация --- проблема.

Да я численно всё делаю. Если конус касается (не пересекает, это я там намудрил словами в прошло посте) эллипсоида как плоская кривая, то я могу вычислить эту самую кривую с нужной степенью точности. По набору точек найденных путём решения уравнения со случайными начальными условиями я могу восстановить плоскоть, которая пересекая эддипсоид даёт нам эту самую кривую касания. Зная уравнение плоскости, уравнение эллипсоида и начальную точку кривой можно составить системку из дифференциалов, решением которой будет эта самая кривая. Именно так я поступил, чтобы нарисовать эту кривую и конусы потом. Что это значит. Решая дифуравнения я получаю последовательные координаты кривой касания с любым шагом, я могу определить замыкание кривой, тем самым могу построить параметризацию. Когда я найду все точки замкнутой кривой - это 2*Pi. Теперь я могу их перебирать, точно также я могу сделать и для второй кривой (что тоже видно на картинке) - это уже параметризация по $v$. Ну вот и всё. Фиксируем одно конкретное $u$ и потом перебираем все $v$ от 0 до 2*Pi. Длина получается сама собой как евклидово расстояние от точки T1 до вычисленной точки касание (а у нас есть весь их набор). Также и для второй кривой - длины открезка от точки T2 до неё мы уже знаем. Поэтому я и говорю, что осталось только длину геодезической посчитать - всё остальное уже известно. Потом можно построить график, где меняются $u$ и $v$, а по оси $z$ общая длина. Находим минимум и дело в шляпе. Пытаюсь понять как эти длины посчитать, если нам известны точки на эллипсоиде не в параметрическом виде.

 
 
 
 
Сообщение19.12.2006, 21:13 
Аватара пользователя
uni писал(а):
Пытаюсь понять как эти длины посчитать, если нам известны точки на эллипсоиде не в параметрическом виде.


Вы же считаете численно, и фактически геодезическая у Вас представлена ломаной. Вот длину этой ломаной и считайте. Если длины отрезков малы (существенно меньше радиусов кривизны эллипсоида), то погрешность будет невелика.

 
 
 
 
Сообщение19.12.2006, 22:51 
Аватара пользователя
Нет, это не так. Численно я нахожу точки касания и упрощения тут никакого нет. Всё можно сделать точно с заранее заданной степенью. Получив таким образом точки на эллипсоиде мне теперь нужно вычислить расстояние по поверхности эллипсоида между двумя конкретными точками из каждого набора. Расстояние - кратчайшее, т.е. геодезическую. Ломанными тут не я предлагал аппроксимировать. Я привёл ссылку на Survey Review 1975 г., где итерационными алгоритмами можно найти длину геодезической между точками, представленными широтами и долготами. Не саму геодезическую поточечно, а её длину между двумя точками. Даже если я пойму как мне посчитать по этим формулам, нарисовать геодезическую я не знаю как, только ориентировочно можно прикинуть, хотя есть возможность ещё через дифсистему находить геодезическую. Проблема в том пока, что я ихний алгоритм пока не осознал, кроме того я не пойму как перевести точки из декартовых координат в долготы и широты, чтобы подставлять в формулы. Более абстрактных и простых формул пока не нашёл. Кое-что привели на экспоненте, но там не поиск длины. Этот выпуск Review единственное, что есть под рукой.

P.S. Но ломанные - тоже вариант. Подумаю как это реализовать.

 
 
 
 
Сообщение20.12.2006, 00:05 
Аватара пользователя
uni писал(а):
кроме того я не пойму как перевести точки из декартовых координат в долготы и широты, чтобы подставлять в формулы.


Пусть $M_0(x_0,y_0,z_0)$ - центр эллипсоида, векторы $\vec a$, $\vec b$, $\vec c$ - полуоси эллипса (три попарно перпендикулярных вектора, выходящих из центра эллипсоида и оканчивающихся на его поверхности; они также являются собственными векторами квадратичной формы, входящей в уравнение эллипсоида). Тогда долгота $\varphi$ и широта $\theta$ связаны с декартовыми координатами следующим уравнением (в векторной форме; $\vec r=\{x,y,z\}$, $\vec r_0=\{x_0,y_0,z_0\}$):
$$\vec r=\vec r_0+\cos\varphi\cos\theta\vec a+\sin\varphi\cos\theta\vec b+\sin\theta\vec c\text{.}\eqno{(1)}$$
Углы изменяются в пределах $-\pi\leqslant\varphi\leqslant\pi$ (или любой другой удобный промежуток длины $2\pi$) и $-\frac{\pi}2\leqslant\theta\leqslant\frac{\pi}2$.
Для определения углов $\varphi$ и $\theta$ умножаем равенство (1) скалярно на векторы $\vec a$, $\vec b$, $\vec c$. С учётом их попарной ортогональности получим систему уравнений
$$\begin{cases}a^2\cos\varphi\cos\theta=\vec a(\vec r-\vec r_0)\text{,}\\ b^2\sin\varphi\cos\theta=\vec b(\vec r-\vec r_0)\text{,}\\ c^2\sin\theta=\vec c(\vec r-\vec r_0)\text{.}\end{cases}\eqno{(2)}$$

 
 
 
 
Сообщение20.12.2006, 00:39 
Аватара пользователя
Насчёт этой системы я в курсе, здорово, спасибо. Дело в том, что я пытался численно решить данную систему в Mathcad, но он что-то там не захотел её решать. Можно ли выразить углы через координаты однозначно я тоже не пробовал делать, думал численно всё получится. Mathcad должен был прийти к ближайшему возможному решению при заданном начальном условии в качестве точки с декартовыми координатами, видимо я где-то ошибся. Будем смотреть.

 
 
 
 
Сообщение20.12.2006, 01:20 
Аватара пользователя
uni писал(а):
Насчёт этой системы я в курсе, здорово, спасибо. Дело в том, что я пытался численно решить данную систему в Mathcad, но он что-то там не захотел её решать.


Ну зачем её решать численно, она и так хорошо решается:
$$\begin{cases}\theta=\arcsin\frac{\vec c(\vec r-\vec r_0)}{c^2}\text{,}\\ \varphi=\begin{cases}\text{любое, если }\theta=\pm\frac{\pi}2\text{,}\\ \arccos\frac{\vec a(\vec r-\vec r_0)}{a^2\sqrt{1-\sin^2\theta}}\text{, если }\theta\neq\pm\frac{\pi}2\text{ и }\vec b(\vec r-\vec r_0)\geqslant 0\text{,}\\ -\arccos\frac{\vec a(\vec r-\vec r_0)}{a^2\sqrt{1-\sin^2\theta}}\text{, если }\theta\neq\pm\frac{\pi}2\text{ и }\vec b(\vec r-\vec r_0)<0\text{.}\end{cases}\end{cases}$$
Из-за погрешностей округления могут возникать артефакты: дроби, стоящие под знаком арксинуса или арккосинуса, по абслоютной величине могут оказаться больше единицы. Я не знаю, насколько это вероятно, но если такое случится, нужно заменить на ближайшее число $\pm 1$ (точнее, сразу указать соответствующее значение угла).

 
 
 
 
Сообщение20.12.2006, 02:02 
Аватара пользователя
Ух ты. Целая проблема отпала. Попробую теперь перевести все найдённые мною точки касательных кривых в углы места и азимуты. Можно пробовать подставлять в забугорные итеративные формулы. Спасибо опять.

 
 
 
 
Сообщение20.12.2006, 02:20 
Аватара пользователя
uni писал(а):
Ух ты. Целая проблема отпала. Попробую теперь перевести все найдённые мною точки касательных кривых в углы места и азимуты. Можно пробовать подставлять в забугорные итеративные формулы. Спасибо опять.


Только проверьте, как там в этих "забугорных" формулах определяются углы, а то могут быть неожиданные различия.

 
 
 
 
Сообщение25.12.2006, 13:33 
Предлагаю способ решения на основе теоремы Клеро .
Пусть имеется тело вращения . $q$ - геодезическая на нём.
Тогда в каждой точке $q$ выполняется равенство $r* sin \alpha = const $ .
$r$ - радиус параллели , $\alpha$ - угол между $q$ и меридианом .
Если образующая является ломаной , то данная теорема также верна .
Таким образом , задавая начальное значение $\alpha$ и двигаясь с некоторым шагом
мы приходим к параллели конечной точки . Далее , учитывая отклонение от конечной точки , уменьшаем или увеличиваем $\alpha$ и т.д.
В качестве начального значения можно взять угол между осью вращения и отрезком соединяющим точки . Предполагается , что начальная и конечная точки определены способом предложенным worm2 .

 
 
 [ Сообщений: 25 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group