Векторное произведение

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

Модератор: Admin

serval
Сообщения: 143
Зарегистрирован: Пн авг 13, 2007 3:11 pm

Векторное произведение

Сообщение serval » Чт июн 24, 2010 11:22 am

Здравствуйте.
Можно ли в Maple получить векторное произведение не выписывая матрицу покомпонентно, а просто задав каждый вектор?
Компоненты вектора задаются функциями от его номера в множестве.
Сначала нужно перемножить два трехмерных вектора:

a={1, a-1, (1/2)*(a^2-a)}
b={1, b-1, (1/2)*(b^2-b)}

Далее - три четырехмерных (добавится еще один компонент).
Пожалуйста, помогите.

Полищук Андрей
Сообщения: 55
Зарегистрирован: Чт ноя 09, 2006 2:40 pm
Откуда: Ижевск

Re: Векторное произведение

Сообщение Полищук Андрей » Чт июн 24, 2010 11:53 am

serval писал(а):Можно ли в Maple получить векторное произведение не выписывая матрицу покомпонентно, а просто задав каждый вектор?
Компоненты вектора задаются функциями от его номера в множестве.
Сначала нужно перемножить два трехмерных вектора:

a={1, a-1, (1/2)*(a^2-a)}
b={1, b-1, (1/2)*(b^2-b)}

Далее - три четырехмерных (добавится еще один компонент).
Пожалуйста, помогите.


Используем пакет VectorCalculus, первая команда подключает пакет, вторая перемножает два вектора, заданных непосредственно в команде.

with(VectorCalculus):
CrossProduct(<a, b, c>, <d, e, f>);

Читайте help, как можно задать вектор и т.д.
Это в версии 13.

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Векторное произведение

Сообщение Kitonum » Чт июн 24, 2010 12:11 pm

serval писал(а):Здравствуйте.
Можно ли в Maple получить векторное произведение не выписывая матрицу покомпонентно, а просто задав каждый вектор?
Компоненты вектора задаются функциями от его номера в множестве.
Сначала нужно перемножить два трехмерных вектора:

a={1, a-1, (1/2)*(a^2-a)}
b={1, b-1, (1/2)*(b^2-b)}

Далее - три четырехмерных (добавится еще один компонент).
Пожалуйста, помогите.

Для нахождения векторного произведения двух трёхмерных векторов можете использовать команду VectorCalculus[CrossProduct].
С понятием векторного произведения в более высоких размерностях не знаком.

hirnyk
Сообщения: 438
Зарегистрирован: Пт апр 08, 2005 1:41 pm

Re: Векторное произведение

Сообщение hirnyk » Чт июн 24, 2010 12:29 pm

serval писал(а):Здравствуйте.
Можно ли в Maple получить векторное произведение не выписывая матрицу покомпонентно, а просто задав каждый вектор?
Компоненты вектора задаются функциями от его номера в множестве.
Сначала нужно перемножить два трехмерных вектора:

a={1, a-1, (1/2)*(a^2-a)}
b={1, b-1, (1/2)*(b^2-b)}

Далее - три четырехмерных (добавится еще один компонент).
Пожалуйста, помогите.
Yes,it is possible. For example, in dimension 4:
>with(LinearAlgebra); a := [1, -2, 3, -8]; b := [-4, 5, -6, -7]; c := [-9, -6, 0, -4]; basis := [e[x], e[y], e[z], e[t]]
[1, -2, 3, -8]
[-4, 5, -6, -7]
[-9, -6, 0, -4]
[e[x], e[y], e[z], e[t]]

>CP(a, b, c):=Determinant(Matrix([basis,a,b ,c ]));
CP([1, -2, 3, -8], [-4, 5, -6, -7], [-9, -6, 0, -4]) := 426*e[x]-597*e[y]-708*e[z]-63*e[t]
The order of basis, a, b, c is essential.

serval
Сообщения: 143
Зарегистрирован: Пн авг 13, 2007 3:11 pm

Сообщение serval » Чт июн 24, 2010 12:38 pm

Всем большое спасибо! Сейчас буду пробовать.

serval
Сообщения: 143
Зарегистрирован: Пн авг 13, 2007 3:11 pm

Сообщение serval » Сб июл 03, 2010 12:30 pm

Итоговое выражение заняло 4 страницы печатного текста.
1. Можно ли сделать, чтобы при выводе слагаемые сразу группировались относительно e[x], e[y], e[z], e[t]?
2. Можно ли при выводе упростить выражение с учетом дополнительных условий? Например, a^2 + b^2 = c^2.

hirnyk
Сообщения: 438
Зарегистрирован: Пт апр 08, 2005 1:41 pm

Сообщение hirnyk » Сб июл 03, 2010 4:00 pm

serval писал(а):Итоговое выражение заняло 4 страницы печатного текста.
1. Можно ли сделать, чтобы при выводе слагаемые сразу группировались относительно e[x], e[y], e[z], e[t]?
2. Можно ли при выводе упростить выражение с учетом дополнительных условий? Например, a^2 + b^2 = c^2.

1. Try with >collect:
>collect(a*b+a*c, a);
(b+c)*a.
2. Here is an example:
>simplify(a^2+b^2+c^2+d^2, {a^2+b^2 = c^2});
d^2+2*c^2 .

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Сообщение Kitonum » Сб июл 03, 2010 4:40 pm

hirnyk писал(а):
serval писал(а):...
1. Можно ли сделать, чтобы при выводе слагаемые сразу группировались относительно e[x], e[y], e[z], e[t]?
...

1. Try with >collect:
>collect(a*b+a*c, a);
(b+c)*a.

Уточняющий пример:

with(LinearAlgebra):
collect(Determinant(Matrix([[i,j,k],[a[1],b[1],c[1]],[a[2],b[2],c[2]]])),[i,j,k]);


(b[1] c[2] - c[1] b[2]) i + (a[2] c[1] - a[1] c[2]) j + (-a[2] b[1] + a[1] b[2]) k

serval
Сообщения: 143
Зарегистрирован: Пн авг 13, 2007 3:11 pm

Сообщение serval » Вс июл 04, 2010 11:54 am

Спасибо, помогло.