2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3
 
 Re: Перевод из одной сферической системы в другую сферическую
Сообщение27.01.2016, 04:58 
Заслуженный участник


27/04/09
28128

(Про арктангенс-2)

svv в сообщении #1094539 писал(а):
(что это такое и чем это лучше просто арктангенса, лучше всех может объяснить arseniiv)
:D У меня и правда где-то была парочка её упоминаний, но поиск по форуму не помог найти именно их. Так что сделаем немного по-другому:
Munin в сообщении #972237 писал(а):
[О]бозначение $\arctg_2\dfrac{\cdots}{\cdots}$ неформально подразумевает функцию, правильно выбирающую четверть по знакам координат.
А именно, если мы возьмём просто $\arctg(y/x)$, мы получим угол в диапазоне $(-\pi/2;\pi/2)$, а при $x=0$ не получим вообще ничего. Это прискорбно, если нам нужен для каких-то целей именно угол, и притом не с точностью до 180°. Продолжим цитирование:
Munin в сообщении #972324 писал(а):
Если хотите более формально, то назовём функцией $\arctg_2\dfrac{\cdots}{\cdots}$
$$\arctg_2(x,y)\equiv\arctg_2\dfrac{y}{x}=\begin{cases}\arctg\dfrac{y}{x}+\pi&x<0,\quad y\geqslant 0\\+\pi/2&x=0,\quad y\geqslant 0\\\arctg\dfrac{y}{x}&x>0\\-\pi/2&x=0,\quad y<0\\\arctg\dfrac{y}{x}-\pi&x<0,\quad y<0\\\end{cases}$$ Функция такого вида часто встречается в компьютерных вычислениях, см. http://en.wikipedia.org/wiki/Atan2 . Ещё вариант определения: $\arctg_2\dfrac{y}{x}=\operatorname{arg}(x+iy).$
Разве что добавлю: порядок аргументов $\arctg_2$ следует всегда смотреть в определении, потому что он до сих пор не устаканился, и потому обозначение с дробью, которое лично я видел пока только у Munin, видится коммуникативно полезным (хотя я за запятую). И ещё можно добавить, что математически можно написать даже такое определение:$$\arctg_2(x, y) = \varphi \Leftrightarrow \begin{cases} x = r\cos\varphi, \\ y = r\sin\varphi, \\ r>0, \\ \varphi\in I, \end{cases}$$где $I$ — это заранее выбранный полуинтервал $[0;2\pi)$, $(-\pi;\pi]$ или что ещё по желанию;* и это будет строгим определением, несмотря на «косвенное» выражение**. Заодно тут и смысл прозрачен.

* На самом деле правильно сделать результатом этой функции элемент факторгруппы $\mathbb R/2\pi$, что снимает с нас произвол выбора $I$. Но в конкретных расчётах это ничего полезного не приносит. Наоборот, реализации различных факторштуковин $A/R$ в общем случае сложнее реализации $A$, потому что надо делать проверку на равенство более сложным образом.

** Отделять осмысленное и простое определение от сложного вычислительного правила, вынужденного учитывать нюансы окружения, всегда было хорошей идеей.

-- Ср янв 27, 2016 07:13:24 --

sincoscircle в сообщении #1094543 писал(а):
как я понимая примирить декартову систему со сферическими можно только через бесконечное разложение на ряды (синусы, косинусы и тп), причина этой бесконечности это трансцендентное число $\pi$
Нет, не оно, а трансцендентность функций cos и sin (и корня). Но вообще никто не заставляет вычислять непременно ряды — можно предвычислить косинус и синус малюсенького угла, а потом бинарным возведением кое-чего в степень и интерполяцией сделать довольно много. Правда, на практике (в FPU, например) всё равно используется что-то третье.

sincoscircle в сообщении #1094543 писал(а):
но если рассматривать сферические системы сами по себе, а не вложенные в эвклидовы пространства большей размерности, то число $\pi$ будет равным 2 для двумерного пространства с топологией сферы)
Как тут говорили в одной теме, много нового и полезного, но полезное не ново, а новое не полезно. Число $\pi$ определяется так, что не зависит ни от каких пространств, а вот длина окружности не всегда $2\pi r$. На сфере длина не стянутой в точку окружности всегда меньше $2\pi r$, но равна $4r$ только для специфического значения $r$. Кроме того, «сферическая система сама по себе» никакого пространства не задаёт — даже чтобы построить топологию, нужно сделать несколько оговорок. А уж метрику…

sincoscircle в сообщении #1094543 писал(а):
а окружности больших кругов пространства 3-сферы и будут являться прямыми линиями - по ним можно считать проекции изображения такой 2-сферы на экран, который имеет кривизну равную кривизне самого пространства ("лежит" на/в 3-сфере). Возможно в такой геометрии можно делать более простые преобразования между двумя системами координат, которые заданы в этом трехмерном пространстве 3-сферы и отличаются только центром координат (их относительным расположением) и тремя углами повороты относительно друг друга.
sincoscircle в сообщении #1094543 писал(а):
Надеюсь я понятно расписал:) Подумайте реально ли такое впринципе или я бред пишу и у меня тут внутренние противоречия какие то?
Третье. Вы не описали, как вычислять. Цифры сами с потолка не спустятся! Так что пока ничего сказать нельзя.

 Профиль  
                  
 
 Re: Перевод из одной сферической системы в другую сферическую
Сообщение27.01.2016, 11:45 
Заслуженный участник
Аватара пользователя


11/03/08
9904
Москва
sincoscircle в сообщении #1094543 писал(а):
Просто мои глупые мысли: как я понимая примирить декартову систему со сферическими можно только через бесконечное разложение на ряды (синусы, косинусы и тп), причина этой бесконечности это трансцендентное число $\pi$ , но если рассматривать сферические системы сами по себе, а не вложенные в эвклидовы пространства большей размерности, то число $\pi$ будет равным 2 для двумерного пространства с топологией сферы), как вроде и для трехмерного пространства с топологией сферы (вроде её называют 3-сфера, по числе внутренней размерности), далее представим там любую точку как условный центр координат, то множество всех точек равноудаленных от нее на сравнительно малое расстояние во всех её собственных трех измерениях будет поверхностью двумерной сферы вложенной в это трехмерное пространство, кривизна полученной 2-сферы будет отличатся от кливизны самого пространства (как кривизна поверхности Земли отличается от кривизны пространства-времени в котором распространяется свет), значение числа $\pi$ для внутренной геометрии 2-сферы будет зависеть от ее размера и будет стремится к числу $\pi$ для эвклидова пространства при стремлении размера 2-сферы к нулю, а окружности больших кругов пространства 3-сферы и будут являться прямыми линиями - по ним можно считать проекции изображения такой 2-сферы на экран, который имеет кривизну равную кривизне самого пространства ("лежит" на/в 3-сфере). Возможно в такой геометрии можно делать более простые преобразования между двумя системами координат, которые заданы в этом трехмерном пространстве 3-сферы и отличаются только центром координат (их относительным расположением) и тремя углами повороты относительно друг друга. Две системы координат для задания положения объектов и положения экрана воответственно). Надеюсь я понятно расписал:) Подумайте реально ли такое впринципе или я бред пишу и у меня тут внутренние противоречия какие то?


Я бы вообще предположил, что трансцедентность $\pi$ тут совершенно в стороне. Меряй мы углы не в радианах, где полный оборот $2\pi$, а в "школьно-вавилонской" системе, 360 градусов, "геодезически-революционной" с 400 градами или даже прими приказом по роду войск значение $\pi=3$ (как в русской артиллерии, в германской принято 3.2, а в шведской 3.15), синусы и косинусы будут вычисляться так же. Дело скорее в нелинейности требуемого преобразования, и она, боюсь, неустранима.
Для декартовой системы координат смена её сводится к повороту (который линейное преобразование $y=Rx$, $R\alpha x=\alpha y$). и сдвигу (который очень прост в ней). Для сферических координат поворот тоже достаточно прост, но вот сдвиг... Для двух точек, для которых в одной системе координат расстояние до центра будет отличаться в $\alpha$ раз, а углы те же, расстояние до центра координат другой системы не только не изменится в $\alpha$ раз, но вообще будет зависеть каким-то хитрым образом.
Давайте рассмотрим задачу проще. На плоскости, и даже поворачивать не надо, центр второй системы координат на оси Х на известном расстоянии. Тогда надо "решить треугольник", требуемая сторона по теореме косинусов, угол по теореме синусов. Вычислить: 1 косинус, 1 синус, 1 арксинус. Для расчёта через Декарта

(Оффтоп)

Выступала в цирке лошадь, знавшая арифметику и решавшая простые задачи, выстукивая ответ копытом. Местный университет выкупил её и принял на математический факультет. Она успешно изучила все дисциплины, но диплом не получила - завалила аналитическую геометрию. По очевидной причине - нечего было ставить The cart before the horse!

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

 Профиль  
                  
 
 Re: Перевод из одной сферической системы в другую сферическую
Сообщение27.01.2016, 15:43 
Заслуженный участник
Аватара пользователя


23/07/08
10908
Crna Gora

(Оффтоп)

arseniiv, спасибо, я не ошибся. :P

 Профиль  
                  
 
 Re: Перевод из одной сферической системы в другую сферическую
Сообщение27.01.2016, 18:43 


25/01/16
22
Санкт-Петербург
Евгений Машеров в сообщении #1094588 писал(а):
нужны синус, косинус и арксинус (и корень из суммы квадратов). Вроде сложнее, но FPU синусы и косинусы одного аргумента может считать одновременно, так что даже в этом случае Декарт работает лучше. Для случая произвольного начала координат второй системы его премущество ещё выпуклее. Думается, через прямоугольные координаты самый простой путь.


Проблемы производительности расчетов намного сложнее, простые операции перевода из одной системы в другую еще как то можно просчитать любым способом, но выбранный метод влияет на все дальнейшие алгоритмы, и дает в них часто квадратичные зависимости сложности вычислений. Щас приведу примеры.

Две основные задачи к компьютерной графике это просчет столкновений и проекции на экран. И обе они имеют квадратичную зависимость в расчетах и решаются обычно так: в декартовом пространстве заданы уравнения движений огромного кол-ва свободно падающих тел в гравитационном поле, нужно как можно быстрее определить где и когда какие тела с какими столкнутся, обычный метод расчета это нахождение расстояние между параболическими (или тп) траекториями движения, причем такой расчет идет "каждый с каждый" (вот от чего в первую очередь страдает производительность), а далее сравнение этих расстояний с размерами тел, и тогда понятно столкнулись они или разлетелись. И все алгоритмы по оптимизации - это по сути разбиение декартова пространства на прямоугольные области, но это очень плохой метод, к тому же надо еще учитывать время столкновений. Та же самая проблемы и при построение изображения (обратной трассировке лучей света), каждый луч света (а их очень много) надо рассчитывать с каким объектом столкнется (что будет видно) - опять квадратичная зависимость. Кстати, как вы написали "и корень из суммы квадратов" - вот этого я не вычисляю, я оперирую квадратами расстояний, а не самими расстояниями, потому что определять столкновения тел с телами(или лучом света) можно сравнением не расстояний, а сравнением квадратов расстояний (опять же оптимизация).

Может можно как то по другому сделать? Например, в каком то заранее выбранном четырехмерном топологическом пространстве с метрикой (думаю сферической, типа ОТО, но можно проще), заданы мировые линии частиц(тел), что по сути геодезическая в четырехмерном пространстве, и если правильно выбрать параметры и топологию пространства, то возможно получится избавится от квадратичных зависимостей таких просчетов большого кол-ва линий. И даже пусть единичные расчеты, которые в декартовой системе делались быстро будет делаться медленнее в 2-3 раза, зато сложные расчеты "каждый с каждым" получатся намного более эффективно оптимизированы. Если нужно, можно заменить топологию $\mathbb{R}^2 \times S^2$ на $S^4$ , или еще как то, лишь бы дало результат.

 Профиль  
                  
 
 Re: Перевод из одной сферической системы в другую сферическую
Сообщение27.01.2016, 19:08 
Заслуженный участник


20/08/14
11776
Россия, Москва
Как замена топологии пространства отменит требование проверять столкновение каждого тела с каждым?! Как?! Да, здесь можно много наоптимизировать, но уйти от самой квадратичной зависимости - нет. И сложность расчёта кажого столкновения на квадратичную зависимость никак не влияет.

 Профиль  
                  
 
 Re: Перевод из одной сферической системы в другую сферическую
Сообщение27.01.2016, 21:23 


25/01/16
22
Санкт-Петербург
Dmitriy40 в сообщении #1094662 писал(а):
Как замена топологии пространства отменит требование проверять столкновение каждого тела с каждым?! Как?! Да, здесь можно много наоптимизировать, но уйти от самой квадратичной зависимости - нет. И сложность расчёта кажого столкновения на квадратичную зависимость никак не влияет.


Понятия не имею как :) Я начинал размышления с упрощенной задачи: нахождение наименьшего расстояния не между линиями, а между точками в $\mathbb{R}^4$. Я знаю, что быстрый способ поиска из большого объема данных это индексация (сортировка в БД), но сейчас разработаны только полноценные методы индексации для одномерных массивов, а у меня координаты точек это четырехмерный массив. $\mathbf{r}^2 = (\Delta x)^2 + (\Delta y)^2 + (\Delta z)^2 + (\Delta t)^2$. Каждую компоненту координат можно отсортировать, и далее, брать самые меленькие значения, относительно координат заданной точки, и делать расчеты начиная с них, получая квадраты расстояний, квадратный корень при этом не извлекать, хранить и сравнивать квадраты расстояний. Тогда не надо проверять каждый с каждым. К примеру, надо найти самые близкие точки к точке $A$, тогда по индексированным массивам можно быстро брать самые близкие компоненты координат других точек к точке $A$, чем они ближе, чем меньше квадрат их разности, и тем меньше суммы квадратов (квадрат расстояния), и тем меньше расстояние между точками.

Далее я начал думать как это сделать для прямых, поскольку для динамики можно описать траектории движения всех частиц(тел) в инерциальной системе отсчета через смешанное и векторное произведение, но отмёл этот вариант, поскольку реальные системы не инерциальны, и даже если бы я такое сделал, то это не имело бы смысла.

Затем я пытался описать движение в неинерциальной системе отсчета. На меня когда то произвело впечатление тот факт что кривизна геодезической для мяча, пули, луча света одна и таже, как круг повернутый под разным углом может выглядеть как эллипс или как прямая (если взять очень маленькую часть окружности). И я подумал, что можно описать траектории всех тел и света (проекции изображения на экран) одними и теми же "окружностями". Понятно, что радиус кривизны зависит от расстояние до центра, но мне надо было сделать примерно и только для области от поверхности Земли до скажет 10 км в высоту, и разницей в кривизне я думал пока пренебречь. Вот поэтому я подумал, почему бы не описать геометрию через пространства с топологией сферы или скажем через гиперсферу (с внутренней размерностью 4) в $\mathbb{R}^5$, лишь бы это что-то дало:) Как я представлял, а таком "мире" всё двигается только по окружностям одного радиуса лежащими на 4-х мерной сфере. Остается только так проиндексировать эти окружности (их параметры), чтобы быстро находить какие могут быть ближе друг к другу. Такие окружности на 2-сфере будут всегда пересекаться, на 3-сфере могут скрещиваться и поэтому расстояние между ними можно описать как туже сумму квадратов разницы углов поворота этих окружностей (геодезических) относительно какого-та базиса, и вроде тоже самое для 4-гиперсферы в $\mathbb{R}^5$ - это будут углы повороты базисной пятерки векторов, хотя хотелось бы всё рассматривать без привлечения пятого измерения..

Пока что на этом всё, мне не хватает математических знаний, чтобы что-то тут реализовать, поскольку очень много вариантов, а где может выйти польза я не понимаю, я же программист, а не математик:). Если кому то интересно эта тема - пишите мне. (Я из Питера)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group