2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Вопросы по Maple (полиномы)
Сообщение05.10.2008, 10:48 


09/08/08
16
Добрый день!
Пишу диплом в Maple, не могу разобраться с некоторыми возникающими по ходу проблемами... Очень надесь на помощь более опытных людей.

Вопрос 1.

Можно ли продифференцировать функцию (полином), содержащую две независимые переменные плюс их комплексные сопряжения, как функцию от четырех переменных, то есть чтобы, например, Maple воспринимал бы $$z$$ и $$\overline{z}$$ как разные?

Пример.

$$F = A_{20}z_1^2 + A_{11}z_1 z_2 + A_{02}z_2^2 + B_{11}z_1\overline{z}_1 +
B_{22}z_2\overline{z}_2 + B_{12}z_1\overline{z}_2 +
\overline{B}_{12}\overline{z}_1z_2.$$

Должно получиться:
$$\frac{\partial F}{\partial z_1} = 2A_{20}z_1 + A_{11}z_2 + B_{11}\overline{z}_1 + B_{12}\overline{z}_2,$$

Можно конечно просто вместо $$\overline{z}$$ написать какую-нибудь $$w$$, но важно чтобы сопряжения сохранились, так как с функцией будет работа продолжаться, то есть может возникнуть ситуация: $$\overline{\overline{z}} = z$$

Вопрос 2.

Как заставить Maple применять правило $$Re\{z\} = \frac{z + \overline{z}}{2}$$? То есть, чтобы, если возникает выражение, содержащее $$Re$$, оно преобразовывалось бы к виду без $$Re$$?

Вопрос 3.

Пусть, например, задан полином
$$ax^3 + bx^2y + cxy + dx + e$$
Как выделить в нем коэффициенты при слагаемых определенной степени? Например, для степени 3 должно получиться:
$$a + b$$
И вообще, как можно отделить слагаемые какой-то конкретной степени от других? То есть, для той же степени 3, как из исходного полинома извлечь выражение $$ax^3 + bx^2y$$?

Извиняюсь за большое количество вопросов, просто первый раз Maple использую для более серьёзных вещей, чем обычно... да и вручную считать все это опасно - ошибки накапливаются :)

Заранее спасибо.

 Профиль  
                  
 
 
Сообщение05.10.2008, 11:39 
Модератор
Аватара пользователя


11/01/06
5710
По поводу 1 можно определить свою фунцию дифференцирования, которая будет временно заменять $\bar z$ на новую переменную. Что-то типа:
Код:
mydiff := (f,z) -> subs(temp=conjugate(z), diff( subs(conjugate(z)=temp,f), z));

Работает вроде нормально:
Код:
> mydiff(x*conjugate(x),x);
   conjugate(x)


Добавлено спустя 20 минут 35 секунд:

3 можно решить так:
Код:
> select((t,m)->degree(t,m)=3, a*x^3 + b*x^2*y + c*x*y + d*x + e, [x,y]);
   a*x^3+b*x^2*y
> select((t,m)->degree(t,m)=2, a*x^3 + b*x^2*y + c*x*y + d*x + e, [x,y]);
   c x y

 Профиль  
                  
 
 
Сообщение05.10.2008, 21:35 


09/08/08
16
maxal, большое спасибо за помощь!

Только вопрос по команде select:

Если применить, например, её к следующей функции:

Код:
> select((t,m)->degree(t,m)=1, conjecture(z1) + z1 + z2 + conjecture(z2) + z1*conjecture(z2) + z1*conjecture(z1), [z1,z2,conjecture(z1),conjecture(z2)]);


то в ответе получим только $$z_1 + z_2$$. Почему она не воспринимает сопряженные переменные? Либо их надо переобозначить, а потом заново подставить в прежнем виде?

 Профиль  
                  
 
 
Сообщение05.10.2008, 22:26 
Модератор
Аватара пользователя


11/01/06
5710
Marika писал(а):
Код:
> select((t,m)->degree(t,m)=1, conjecture(z1) + z1 + z2 + conjecture(z2) + z1*conjecture(z2) + z1*conjecture(z1), [z1,z2,conjecture(z1),conjecture(z2)]);


то в ответе получим только $$z_1 + z_2$$. Почему она не воспринимает сопряженные переменные? Либо их надо переобозначить, а потом заново подставить в прежнем виде?

Ну во-первых, вместо "conjecture" должно быть "conjugate". Во-вторых, если коэффициенты числовые, то эту конструкцию можно упростить до:
Код:
select(t->degree(t)=1, conjugate(z1) + z1 + z2 + conjugate(z2) + z1*conjugate(z2) + z1*conjugate(z1) );
   conjugate(z1)+z1+z2+conjugate(z2)

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

 Профиль  
                  
 
 
Сообщение08.10.2008, 11:36 


09/08/08
16
conjecture это у меня травма после курсовой по jacobian conjecture :D :D
А насчет Maxima - в принципе особо от Maple по командам не отличается, по крайней мере в простых случаях... Меня останавливает только неуверенность в том, сможет ли кто-нибудь помочь с этой программой, если вдруг возникнут вопросы - всё таки Maple более распространённый... Насколько я понимаю, проблема Maple в том, что его работа - это как чёрный ящик, и логика работы команд не очень понятна :?:

 Профиль  
                  
 
 [MAPLE] Приведение подобных слагаемых
Сообщение06.03.2009, 11:22 


07/12/08
32
Добрый день! Помогите пожалуйста решить такую проблему: в ходе решения в Maple получаю следующее выражение:

Код:
H22 := 3/8*conjugate(z1)^2*p*z1^2+3/8*conjugate(z1)^2*p*z2^2+3/2*conjugate(z1)^2*q*z1*z2+3/2*conjugate(z1)*p*z1*z2*conjugate(z2)+3/2*conjugate(z1)*q*z1^2*conjugate(z2)+3/8*p*z1^2*conjugate(z2)^2-9/8*p*z2^2*conjugate(z2)^2-9/16*conjugate(z1)^2*z1^2-9/16*conjugate(z1)^2*z2^2-9/4*conjugate(z1)*z1*z2*conjugate(z2)-9/16*z1^2*conjugate(z2)^2-9/16*z2^2*conjugate(z2)^2


Видно, что в нём довольно много подобных слагаемых, но Maple с помощью команды simplify упрощает как-то по-своему :(
Есть ли способ как-то эти слагаемые "сгруппировать"?
Заранее спасибо.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

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