2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение02.12.2014, 01:12 
Прошу совета, возможно ли использование матричной алгебры для построения модели суперпозиции спиралей? С чего начать? Что потребуется?

Основная идея:
Построение первой винтовой ($S_1$) возможно с помощью матрицы поворота. При этом аппликата ($Z_1$) будет выступать как вертикальная (осевая) образующая. Плоскость $X_1$$Y_1$ будет в этом случае «нормальной плоскостью» (горизонтальная образующая). Если продвигать плоскость $X_1’$ $Y_1’$ параллельную $X_1$ $Y_1$ вдоль оси $Z_1$, то точка ($P_1$) пересечения этой плоскости и винтовой $S_1$ будет описывать окружность с радиусом $R_1$ являющимся кратчайшим расстоянием от осевой образующей ($Z_1$) до первой спирали. При этом точку $O_1’$ пересечения оси $Z_1$ и плоскости $X_1’$ $Y_1’$ можно считать точкой построения первой винтовой линии в точке $P_1$.
Касательная к спирали в этой точке будет вертикальной (осевой) образующей для построения второй винтовой ($S_2$). При этом нормальная плоскость $N$ трёхгранника (ортогональная касательной в точке $P_1$) аналогична плоскости $X_1’$ $Y_1’$ и, при её скольжении вдоль первой винтовой линии, на ней, вторая винтовая будет описывать окружность с радиусом $R_2$ равным кратчайшему расстоянию от точки $P_1$ до точки $P_2$.
Угол ( $\alpha$) между осью $Z_1$ и нормальной плоскостью сопровождающего трёхгранника линии $S_1$ в точке $O_1$ равен углу подъёма (захода) спирали $\alpha$. Угол ( $\gamma$) между нормальными плоскостями $N$ и $X_1’$ $Y_1’$ равен $\gamma=\frac{\pi}{2} - {\alpha}$
Точка $P_2$, как и в предыдущем случае, будет выступать началом новой системы координат для построения последующей третьей винтовой линии $S_3$. В которой касательная к $S_2$ в точке $P_2$ служит вертикальной образующей, а нормальная плоскость сопровождающего трёхгранника аналогична плоскости $X_1’$ $Y_1’$. И.т.д.

 
 
 
 Posted automatically
Сообщение03.12.2014, 22:46 
Аватара пользователя
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Карантин»
Причина переноса: формулы не оформлены $\TeX$ом

urgent
Наберите все формулы и термы $\TeX$ом.
Инструкции по оформлению формул здесь или здесь (или в этом видеоролике).
См. также тему Что такое карантин, и что нужно делать, чтобы там оказаться.
После исправлений сообщите в теме Сообщение в карантине исправлено, и тогда тема будет возвращена.

 i  Тема перемещена из форума «Карантин» в форум «Помогите решить / разобраться (М)»
Возвращено

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение04.12.2014, 02:13 
urgent, а не хотите ли попробовать поворачивать кватернионами? См. http://en.wikipedia.org/wiki/Quaternion ... l_rotation. По-моему, они тут, если вместо матриц, упростят дело.

(Оффтоп)

Истинно говорю вам: тут где-то была тема (древняя) про такие спирали.

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение04.12.2014, 20:12 
arseniiv в сообщении #940063 писал(а):
не хотите ли попробовать поворачивать кватернионами?


"Здесь" поисковик не определил похожих тем :(

Пожалуйста поясните чем кватернионы, в моём конкретном случае, будут эффективнее матриц .

Был бы благодарен за ссылку на литературу отечественых авторов где хоть вскользь касаются моей задачи.
(с английским трудности :) )

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение04.12.2014, 21:17 
urgent в сообщении #940329 писал(а):
Пожалуйста поясните чем кватернионы, в моём конкретном случае, будут эффективнее матриц .
Кватернионом можно представить как вектор (просто заменим орты $\vec\imath,\vec\jmath,\vec k$ на кватернионы $i,j,k$), так и вращение. А именно, если мы вращаем вектор $v$ в плоскости с нормальным единичным вектором $n$ (всегда в одну и ту же сторону, если направить вектор на нас, но сейчас не помню, в какую при правой системе координат) на угол $\theta$, результат будет равен $RvR^{-1}$, где$$\begin{aligned} R &= e^{n\theta/2} = \cos\frac{\theta}2 + n\sin\frac{\theta}2, \\ R^{-1} &= e^{-n\theta/2} = \cos\frac{\theta}2 - n\sin\frac{\theta}2. \end{aligned}$$(Заметьте, матрица поворота выражается через ось и угол не так просто. Определить по данному кватерниону вращения ось и угол тоже проще.)

Соответственно, если повращать сначала вращением $R_1$, а потом вращением $R_2$, то результат будет $R_2R_1vR_1^{-1}R_2^{-1} = (R_2R_1)v(R_2R_1)^{-1}$, т. е. композиция вращений — это их произведение.

Плюс в том, что вместо матриц и наборов компонент векторов теперь только кватернионы. В общем случае разные, конечно — у «векторных» нулевая скалярная часть, у «вращательных» единичная длина, но зато они умножаются и складываются всегда однообразно. По одной оси вращения вы сразу же найдёте следующую и т. д., и потом всё это соберёте в одну более-менее понятную (наверно) формулу.

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

-- Пт дек 05, 2014 00:28:49 --

Вот тема, кстати: «винтовая линия на основе винтовой линии». Пятая страница результатов по запросу «винтовая». :-)

Может, и маловато будет…

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение08.12.2014, 11:50 
Благодарю. Поразмышляю :) Похоже Вы правы.

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение28.03.2015, 14:57 
Нет! У меня не получается )))

Для всего этого нужны определённые способности мышления, увы.. Это как путь от ползающей гусеницы к летающей бабочке - надо дважды пройти фазовые переходы! Но это не возможно!!!

Вот в интернете появилось видео http://www.youtube.com/watch?v=1SzoBpKAzwo в котором человек, по всей вероятности, даёт эту механистичную модель, но без особой математики опять-таки.

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение28.03.2015, 15:38 
urgent в сообщении #996905 писал(а):
Для всего этого нужны определённые способности мышления, увы..
Которые не так уж трудно получить. Не боги горшки обжигают, чтоб вы знали. Видимо, пробелы у вас. :wink:

Напишете, до чего дошли и где застряли — поглядим…

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение28.03.2015, 22:28 
arseniiv в сообщении #996932 писал(а):
Видимо, пробелы у вас.

Употребление термина "пробелы" в моём случае - похвала! :D
Правомерно употребить - "то, чего не было"
Уважаемый arseniiv мне даже стыдно предъявить здесь на сайте то что получилось. Извините.. :facepalm:

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение29.03.2015, 21:02 
Аватара пользователя
urgent
Берем ортонормированный координатный репер (совокупность трех базисных векторов и точки, к которой они «приложены»). Репер можно сдвигать в пространстве и вращать вокруг какой-нибудь оси.
Вот, например, два репера. Один исходный, а другой получен из него сдвигом и поворотом:
Изображение

Я ограничусь только сдвигами репера вдоль его собственных осей и поворотами репера вокруг его осей.
Буду обозначать сдвиги буквой $T$ (от слова translation), а повороты $R$ (от слова rotation).
Запись $T\;x\;d$ означает «сдвинуть репер вдоль его оси $x$ на расстояние $d$».
Запись $R\;y\;\beta$ означает «повернуть репер вдоль его оси $y$ на угол $\beta$».

Точка на винтовой линии $n$-го порядка получается совокупностью сдвигов и поворотов исходного репера. В результате получаем некоторый репер, начало отсчета которого и дает точку на $n$-й винтовой линии. Например, для 3-го порядка последовательность такая:
$\begin{array}{l}T\;z\;h\quad\quad(0)\\R\;z\;\varphi_1\\T\;x\;r_1\\R\;x\;\gamma_1\quad\quad(1)\\R\;z\;\varphi_2\\T\;x\;r_2\\R\;x\;\gamma_2\quad\quad(2)\\R\;z\;\varphi_3\\T\;x\;r_3\\R\;x\;\gamma_3\quad\quad(3)\end{array}$
Радиусы $r_1, r_2, r_3$ — константы, углы $\gamma_1, \gamma_2, \gamma_3$ — тоже константы. А углы поворота вокруг образующей (предыдущей линии) линейно зависят от одного и того же параметра $t$ (можно понимать как время):
$\varphi_1=\omega_1 t+\varphi_{10}$
$\varphi_2=\omega_2 t+\varphi_{20}$
$\varphi_3=\omega_3 t+\varphi_{30}$
От того же параметра зависит $h$:
$h=vt$

Меняя параметр $t$, мы заставляем репер, обозначенный (0), подниматься со скоростью $v$ вверх по оси $z$. Репер, обозначенный (1) (т.е. его начало) — движется по обычной винтовой линии. Репер, обозначенный (2) — по винтовой линии вокруг винтовой линии. И так далее.

Понимаете ли Вы меня?

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение30.03.2015, 00:13 
Уважаемый svv спасибо за участие, уже хотел "уходить" за не способностью как либо в этом разобраться.
Да, как мне кажется, понимаю. Но, вопросов при этом огромное количество! Лишь бы у Вас хватило терпения :)

Например, вот в этом выражении не понятно:
Запись $R\;y\;\beta$ означает «повернуть репер вдоль его оси $y$ на угол $\beta$».

Может быть "повернуть репер вокруг его оси $y$..."?

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

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение30.03.2015, 00:54 
Аватара пользователя
urgent в сообщении #997712 писал(а):
Запись $R\;y\;\beta$ означает «повернуть репер вдоль его оси $y$ на угол $\beta$».

Может быть "повернуть репер вокруг его оси $y$..."?
Это я поленился набирать фразу целиком, скопировал предыдущую, и вот результат. Конечно, вокруг оси.

urgent в сообщении #997712 писал(а):
Пока не понятно то, как Вы обозначили в записи движение второго относительно первого... На мой взгляд, получилось, что все три репера имеют свои углы наклона, углы поворота и радиусы относительно "нулевой" аппликаты. То есть, мы получили три независимых винтовых движения, правильно понял?
Движение получается тогда, когда мы начинаем менять параметр $t$. При этом начинают меняться $h, \varphi_1, \varphi_2, \varphi_3$ (линейно от времени).

Реперов здесь аж десять (а то и 11), хотя винтовых линий только три. Это потому, что я разбил построение на совершенно элементарные сдвиги и повороты. Вот, например, как получается первая винтовая линия.
$\bullet$ Исходный репер, неподвижный.
$\bullet$ Следующий — движется от него со скоростью $v$ вверх. В момент $t$ он сдвинулся на $h=vt$ вдоль оси $z$. Выше он обозначен (0).
$\bullet$ Следующий — вращается вокруг оси $z$ предыдущего репера с угловой скоростью $\omega_1$, и в момент $t$ повернут относительно него на угол $\varphi_1=\omega_1 t+\varphi_{10}$. Но его начало отсчета находится там же.
$\bullet$ Следующий — сдвинут на $r_1$ относительно предыдущего вдоль его оси $x$. Но так как предыдущий вращается, то этот тоже вращается. Его начало уже находится на винтовой линии. Он движется по ней, потому что предыдущий репер тоже движется.
$\bullet$ Следующий — повернут относительно предыдущего на постоянный угол $\gamma_1$. Его начало находится там же, где и предыдущего, т.е. движется по первой винтовой линии. Вдобавок благодаря повороту его ось $z$ направлена по касательной. Выше он обозначен (1).
И так далее.

Так получается движение. Но в каждый фиксированный момент для получения результата (точки на кривой) нужно просто проделать некоторые конкретные сдвиги и повороты.

Как видите, здесь довольно много произвольных констант. Если мы хотим рассматривать не самый общий случай, надо их конкретизировать или связать друг с другом. Некоторые связи очевидны, например, $\tg\gamma_1=\frac{\omega_1 r_1}{v}$, другие зависят от Ваших запросов.

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение31.03.2015, 22:54 
Спасибо, нашёл первое своё заблуждение:
svv в сообщении #997558 писал(а):
$\begin{array}{l}T\;z\;h\quad\quad(0)\\R\;z\;\varphi_1\\T\;x\;r_1\\R\;x\;\gamma_1\quad\quad(1)\\R\;z\;\varphi_2\\T\;x\;r_2\\R\;x\;\gamma_2\quad\quad(2)\\R\;z\;\varphi_3\\T\;x\;r_3\\R\;x\;\gamma_3\quad\quad(3)\end{array}$

Здесь предполагал, что репер это три действия для каждой точки и вот это - $\begin{array}{2}R\;z\;\varphi_1\\T\;x\;r_1\\R\;x\;\gamma_1\quad\quad(1)\end{array}$ есть одно движение первой точки т.е. винтовая вокруг неподвижной оси $z$ Но, так как в записи все $z,x$ без символов, то и подумал, что имеем три винтовых вокруг одного неподвижного..
Значит, каждая строка это действия отдельного репера? И в конечном итоге, вся последовательность опишет на графике движение одной точки?

Да действительно, получается, что необходимо задать много констант или связей.

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

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение31.03.2015, 23:09 
Аватара пользователя
urgent в сообщении #998669 писал(а):
Значит, каждая строка это действия отдельного репера? И в конечном итоге, вся последовательность опишет на графике движение одной точки?
Да, каждая строка — это получение нового репера из предыдущего. И вся эта последовательность дает одну точку (правда, на каждой из винтовых линий). Как видите, на каждую новую линию нужно три репера.

Если чуть-чуть изменить параметр $t$, каждый из реперов немного изменится (подвинется и повернется), ещё чуть-чуть изменим $t$ — опять перестроится вся система реперов, так и получается вся линия (точнее, несколько винтовых линий, которые мы строим, от первой до $n$-й). Процесс легко объяснить компьютеру.

urgent в сообщении #998669 писал(а):
В таком случае, что бы не возвращаться, можно ли несколько изменить условия задачи?
Конечно. Хозяин — барин.
urgent в сообщении #998669 писал(а):
Здесь предполагал, что репер это три действия для каждой точки и вот это - $\begin{array}{2}R\;z\;\varphi_1\\T\;x\;r_1\\R\;x\;\gamma_1\quad\quad(1)\end{array}$ есть одно движение первой точки т.е. винтовая вокруг неподвижной оси $z$ Но, так как в записи все $z,x$ без символов, то и подумал, что имеем три винтовых вокруг одного неподвижного..
Первый вариант: одна винтовая линия вокруг неподвижной оси.

Может, такое сравнение поможет.
$\bullet$ Исходный репер находится на дне шахты лифта.
$\bullet$ $T\;z\;h$ — лифт, равномерно поднимающийся вверх. Или человек, стоящий неподвижно в этом лифте. Высота $h$ линейно растет со временем, хоть в формуле это не показано.
$\bullet$ $R\;z\;\varphi_1$ — человек, который кружится (на одном месте) в центре лифта. Угол поворота человека$\varphi_1$ линейно растет со временем, хоть в формуле это не показано.
$\bullet$ $T\;x\;r_1$ — кулак вытянутой в сторону (на $r_1$) руки человека, кружащегося в лифте. Кулак уже описывает винтовую линию в пространстве. Большой палец поднят вверх.
$\bullet$ $R\;x\;\gamma_1$ — то же, только кулак чуть повернут так, чтобы поднятый большой палец немного наклонился вперед (на угол $\gamma_1$) и стал касательным к винтовой линии, которую кулак описывает.
:-)

 
 
 
 Re: Использовать матричную алгебру в суперпозиции винтовых линий
Сообщение01.04.2015, 00:15 
Да, хорошо, понял геометрию. Спасибо.
Как объяснить компъютеру последовательность движений? Как вывести на график все три винтовые?
Как посмотреть движения в динамике?.. допустим в MathCad.. )) пытался работать и над этим.

Можем ли выбрать условия, предлагаемые на видео, адрес которого выше?

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


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