Векторное произведение двух векторов длиной 5

Тема в разделе "WASM.ASSEMBLER", создана пользователем Splitter, 18 дек 2004.

  1. Splitter

    Splitter New Member

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    1
    Может кто-нибудь подскажет, как написать данную программу на assembler.
     
  2. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    Может быть имеется ввиду скалярное произведение? Векторное произведение определено только в 3-х мерном пространстве. Или я неправильно понял вопрос?
     
  3. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    Почему бы двум векторам не быть в трехмерном пространстве?



    (x;y;z) = (x<sub>1</sub>;y<sub>1</sub>;z<sub>1</sub>)x(x<sub>2</sub>;y<sub>2</sub>;z<sub>2</sub>)

    x = y<sub>1</sub>*z<sub>2</sub> - y<sub>2</sub>*z<sub>1</sub>

    y = x<sub>1</sub>*z<sub>2</sub> - x<sub>2</sub>*z<sub>1</sub>

    z = x<sub>1</sub>*y<sub>2</sub> - x<sub>2</sub>*y<sub>1</sub>


    Код (Text):
    1.  
    2. mov eax,[y1]
    3. mul [z2]
    4. mov edx,eax
    5. mov eax,[y2]
    6. mul [z1]
    7. sub edx,eax
    8. mov [x],edx
    9. и так далее...
    10.  
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105




    5-мерное пространство, если я правильно

    интерпретирую вопрос :)
     
  5. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    valterg

    Да, телепатия на высоте :) Но в 5-мерном пространстве, насколько я понимаю, векторное произведение определено только для четырех векторов, а тут два :dntknw:
     
  6. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    Arvensis





    Здесь вроде бы не хватает минуса:

    y = -(x<sub>1</sub>*z<sub>2</sub> - x<sub>2</sub>*z<sub>1</sub>)







    Интересно как выглядит это определение. Меня лично всю жизнь учили, что векторное произведение существует только для трёх измерений..
     
  7. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    Stiver

    Действительно, минус пропустил.



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

    Добавлено:

    |i j k|

    |x<sub>1</sub>y<sub>1</sub>z<sub>1</sub>| = i*A<sub>11</sub>+j*A<sub>12</sub>+k*A<sub>13</sub>

    |x<sub>2</sub>y<sub>2</sub>z<sub>2</sub>|



    Аналогично

    |i j k p q|

    |x<sub>1</sub> y<sub>1</sub> z<sub>1</sub> p<sub>1</sub> q<sub>1</sub>|

    |x<sub>2</sub> y<sub>2</sub> z<sub>2</sub> p<sub>2</sub> q<sub>2</sub>|

    |x<sub>3</sub> y<sub>3</sub> z<sub>3</sub> p<sub>3</sub> q<sub>3</sub>| = i*A<sub>11</sub>+j*A<sub>12</sub>+k*A<sub>13</sub> + p*A<sub>14</sub> + q*A<sub>15</sub>

    |x<sub>4</sub> y<sub>4</sub> z<sub>4</sub> p<sub>4</sub> q<sub>4</sub>|

    Поправлено: Разумеется, матрица квадратная
     
  8. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    Arvensis





    Хм, давай посмотрим. Если я правильно помню, векторное произведение c=axb определяется через его свойства:

    1) c перпендикулярно a и b

    2) |c|=|a||b|sin p

    3) что-то про выбор направления из двух возможных, не суть важно



    Формула для вычисления через координаты выводится из этих свойств(при активном использовании 2)). А значит имеет

    примерно такое же отношение к векторному произведению, как x<sub>1</sub>y<sub>1</sub>+x<sub>2</sub>y<sub>2</sub>+x<sub>3</sub>y<sub>3</sub> к скалярному и не может служить определением.



    Свойства 1) и 3) можем оставить в покое, они мешать врядли будут. Осталось только сформулировать 2) для четырёх и более измерений так, чтобы формула выполнялась(на плоскости будет |c|=|a|). Наверное можно взять просто объём соответствующей фигуры(n-мерного параллелограмма), в четырехмерном значит |d|=|a||b||c|sin p cos f. Надо будет просчитать в общем виде, как время будет займусь.
     
  9. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    Stver



    Я предполагаю, что векторным произведением в 5-мерном пространстве можно назвать только такую операцию, которая имеет свойства, аналогичные произведению в трехмерном пространстве.

    Пусть (i,j,k,p,q) - канонический базис в пятимерном линейном пространстве. Его будем считать правым.

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



    Произведение коллинеарных векторов = нуль-вектор => произведение линейно-зависимых векторов = нуль-вектор



    [i,j]=k => [i,j,k,p]=q



    [j,i]=-k => [σ(i,j,p,q)]=(-1)<sup>S</sup>k, где σ(i,j,p,q) - произвольная перестановка, а S - количество инверсий в σ. Аргументируем: если поменять местами два вектора в произведении, их модули не изменятся, а пространственное положение "отзеркалируется", то есть, то, что в пятимерном произведении выступает в роли синуса угла трехмерного произведения, приобретет противоположный знак. То есть, каждая инверсия относительно (i,j,k,p,q) в множителях поменяет знак произведения на противоположный.



    [a,b+c]=[a,b]+[a,c] => [a,b,c,d+e]=[a,b,c,d]+[a,b,c,e]



    [λa;b]=λ[a,b] => [λa,b,c,d]=λ[a,b,c,d]



    Надеюсь, эти предположения не кажутся более надуманными, чем |d|=|a||b||c|sin p cos f?



    Учитывая изложенные свойства, несложно прийти к алгоритму нахождения координат произведения через координаты множителей.



    [(x<sub>1</sub>i,y<sub>1</sub>j,z<sub>1</sub>k,u<sub>1</sub>p,v<sub>1</sub>q),(x<sub>2</sub>i,y<sub>2</sub>j,z<sub>2</sub>k,u<sub>2</sub>p ,v<sub>2</sub>q),(x<sub>3</sub>i,y<sub>3</sub>j,z<sub>3</sub>k,u<sub>3</sub>p,v<sub>3</sub>q),(x<sub>4</sub>i,y<sub>4</sub>j, z<sub>4</sub>k,u<sub>4</sub>p,v<sub>4</sub>q) = x<sub>1</sub>x<sub>2</sub>x<sub>3</sub>x<sub>4</sub>[iiii] + x<sub>1</sub>x<sub>2</sub>x<sub>3</sub>y<sub>1</sub>[iiij]+...+v<sub>1</sub>v<sub>2</sub>v<sub>3</sub>v<sub>4</sub>[qqqq]



    Элементы, в векторное произведение которых один базисный вектор попадает дважды, равны нулю как произведение линейно зависимых векторов. Следовательно, в сумму попадут только элементы вида x<sub>a</sub>y<sub>b</sub>z<sub>c</sub>u<sub>d</sub>[σ(ijkp)], причем знак каждого элемента зависит от четности перестановки σ. А здесь несложно увидеть детерминанту матрицы, нарисованной в моем предыдущем посте.
     
  10. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Интересная ситуация вырисовывается:

    автор темы подкинул некорректно поставленный вопрос и пропал, энтузиасты-телепаты его домыслили и решили развить "недоработанную" теорию векторного и тензорного анализа и линейной алгебры. Ну-ну, дерзайте :)



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

    Кстати в тензорной алгебре есть понятие альтернированное произведение двух векторов, которое представляет собой тензор 2 ранга с компонентами: V<sub>ij</sub> = a<sub>i</sub>b<sub>j</sub>-a<sub>j</sub>b<sub>i</sub>. Ну чем вам не "аналог" векторного произведения ?



    Хотя возможно изначальный вопрос - это школьная задача и под "длиной 5" подразумевается именно длина вектора, а не размерность пространства, т.е. |a|=a*a. Иначе следовало бы писать "5-мерных векторов".
     
  11. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    leo

    Школьная? Не смеши, в школе даже паскаль преподавать перестали :dntknw: Теперь Ворд и операционная система Виндоуз. У меня сохранилось определение панели задач из школы - "серая полоска внизу экрана". Впрочем, тогда становится понятно, почему вопрос так поставлен. Во всем виновато министерство образования :)
     
  12. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    Arvensis





    Согласен, логично.



    Порылся в конспектах и нашел следующее, как мне кажется самое элегантное определение(сначала в трёхмерном):



    |a<sub>1</sub> b<sub>1</sub> w<sub>1</sub>|

    |a<sub>2</sub> b<sub>2</sub> w<sub>2</sub>|=:det(a|b|w)=<axb,w>

    |a<sub>3</sub> b<sub>3</sub> w<sub>3</sub>|

    должно выполняться для всех векторов w (<a,b> - скалярное произведение a и b).



    То есть например в пятимерном с векторами a,b,c,d имеем

    <axbxcxd,w>=det(a|b|c|d|w)

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



    Остаётся только вопрос длины |axbxcxd|.



    leo





    Поэтому я и "зациклился" на длине, стараюсь сохранить геометрический смысл.