2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 12:28 
Аватара пользователя


10/07/11
3
Допустим у меня есть выражение
$a \cdot x+a \cdot y+a \cdot z+b \cdot x+b \cdot y+b \cdot z +2a + 3b$

хотелось бы автоматически вынести множитель $(a+b)$, там где это возможно.
То есть представить выражение в таком виде:
$(a+b)(x+y+z) + 2a + 3b$

Как это можно сделать в maxima?

 Профиль  
                  
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 12:57 
Заслуженный участник


19/07/08
1266
scratchboom в сообщении #466939 писал(а):
Как это можно сделать ...?
Разделить с остатком на $(a+b)$?

 Профиль  
                  
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 13:03 
Аватара пользователя


10/07/11
3
nestoklon в сообщении #466942 писал(а):
scratchboom в сообщении #466939 писал(а):
Как это можно сделать ...?
Разделить с остатком на $(a+b)$?


Вы хотите сказать, что функцию для преобразования выражения придётся писать самому?
В maxima есть много всяких функций типа rat, combine, expand,expandwrt итд. Хотелось бы использовать их, а не изобретать велосипед.

 Профиль  
                  
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 13:49 
Заслуженный участник


25/02/11
1797
Неплохо бы поточнее задачу формулировать, а то ведь можно и так вынести: $(a+b)(x+y+z+2)+b$. A можно еще как-нибудь.

 Профиль  
                  
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 14:29 
Аватара пользователя


10/07/11
3
Vince Diesel в сообщении #466957 писал(а):
Неплохо бы поточнее задачу формулировать, а то ведь можно и так вынести: $(a+b)(x+y+z+2)+b$. A можно еще как-нибудь.


Да, действительно, я не подумал об этом. Впринципе не так важно, в каком виде будет записано. Главная задача - вынести (a+b)общим множителем, там где можно.

Пользуясь советом пользователя nestoklon, сделал вот такую функцию group, использующую divide(деление многочлена на многочлен с остатком):

group(expr,outexpr):=(outexpr)*divide(expr,outexpr)[1]+divide(expr,outexpr)[2];
group(a*x+a*y+a*z+b*x+b*y+b*z+2*a+3*b,a+b);
(b+a)*(z+y+x+3)-a


Впринципе - это то, что нужно. Если можно сделать как то проще, напишите - буду знать.

 Профиль  
                  
 
 Re: Как в maxima вынести выражение за скобки
Сообщение11.07.2011, 16:06 
Аватара пользователя


23/07/08
401
Новосибирск
Спросите describe(factor);
Код:
(%i5) factor(a*x+a*y+a*z+b*x+b*y+b*z);
(%o5)                         (b + a) (z + y + x)

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

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



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

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


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

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