2014 dxdy logo

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

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




 
 Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 12:28 
Аватара пользователя
Допустим у меня есть выражение
$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 
scratchboom в сообщении #466939 писал(а):
Как это можно сделать ...?
Разделить с остатком на $(a+b)$?

 
 
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 13:03 
Аватара пользователя
nestoklon в сообщении #466942 писал(а):
scratchboom в сообщении #466939 писал(а):
Как это можно сделать ...?
Разделить с остатком на $(a+b)$?


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

 
 
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 13:49 
Неплохо бы поточнее задачу формулировать, а то ведь можно и так вынести: $(a+b)(x+y+z+2)+b$. A можно еще как-нибудь.

 
 
 
 Re: Как в maxima вынести выражение за скобки
Сообщение10.07.2011, 14:29 
Аватара пользователя
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 
Аватара пользователя
Спросите describe(factor);
Код:
(%i5) factor(a*x+a*y+a*z+b*x+b*y+b*z);
(%o5)                         (b + a) (z + y + x)

 
 
 [ Сообщений: 6 ] 


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