Sponsored links: Algebra eBooks
 

Related

factorsum-simpsum-sum

S1 : sum( k , k , 1 ,...

factorsum(S1);

S2 : sum( ( 1 / 2 ) *...

Calculate

factorsum-sqrt

expr:1/[1+sqrt(10)+sq...

factorsum(expr);

Calculate

factorsum-rhs-solve-string

f1(x) := 1 - (x-p0)/e;

y1: (2 * kp - 1)/kp;

x1 = p0 + e (1-y1);

Calculate

factorsum

factorsum(x**2+x+10);

Calculate

factorsum-gamma-linsolve-solve

eq1:x*4+y-2=y;

eq2:x+2=y;

eq3: (b^a/gamma(a))*(...

Calculate

factorsum-rhs-solve

f1(x) := 1 - (x-p0)/e;

y1: (2 * kp - 1)/kp;

x1 = p0 + e (1-y1);

Calculate

factorsum-simpsum-sum

S1 : sum( k , k , 1 ,...

factorsum(S1);

S2 : sum( ( 1 / 2 ) *...

Calculate

factorsum-gfactorsum

gfactorsum (x^4 - 1);

Calculate

factorsum-gfactorsum

gfactorsum (x^2 - 1);

Calculate

factorsum-sqrt

expr:1/[1+sqrt(10)+sq...

factorsum(expr);

Calculate

factorsum

Run Example
(%i1)f1:f000+y*(f010-f000);
(%o1)                       (f010 - f000) y + f000
(%i2) f2:f001+y*(f011-f001);
(%o2)                       (f011 - f001) y + f001
(%i3) f3:f100+y*(f110-f100);
(%o3)                       (f110 - f100) y + f100
(%i4) f4:f101+y*(f111-f101);
(%o4)                       (f111 - f101) y + f101
(%i5) g1:f1+x*(f2-f1);
(%o5) x ((f011 - f001) y - (f010 - f000) y + f001 - f000) + (f010 - f000) y
                                                                         + f000
(%i6) g2:f3+x*(f4-f3);
(%o6) x ((f111 - f101) y - (f110 - f100) y + f101 - f100) + (f110 - f100) y
                                                                         + f100
(%i7) h1:g1+z*(g2-g1);
(%o7) (x ((f111 - f101) y - (f110 - f100) y + f101 - f100)
 - x ((f011 - f001) y - (f010 - f000) y + f001 - f000) + (f110 - f100) y
 - (f010 - f000) y + f100 - f000) z + x
 ((f011 - f001) y - (f010 - f000) y + f001 - f000) + (f010 - f000) y + f000
(%i8) factorsum(h1);
(%o8) f111 x y z - f110 x y z - f101 x y z + f100 x y z - f011 x y z
 + f010 x y z + f001 x y z - f000 x y z + f110 y z - f100 y z - f010 y z
 + f000 y z + f101 x z - f100 x z - f001 x z + f000 x z + f100 z - f000 z
 + f011 x y - f010 x y - f001 x y + f000 x y + f010 y - f000 y + f001 x
 - f000 x + f000
(%i9) 
Run Example
load ("scifac") ;
(%o1)      /usr/share/maxima/5.21.1/share/simplification/scifac.lisp
(%i2) load("abs_integrate") ;
(%o2) /usr/share/maxima/5.21.1/share/contrib/integration/abs_integrate.mac
(%i3) load("fourie") ;
(%o3)         /usr/share/maxima/5.21.1/share/calculus/fourie.mac
(%i4) nc_factor(e):= block([opsubst: true],  subst(lambda([[L]], apply(nc_factor_aux, L)), "+", e));
(%o4) nc_factor(e) := block([opsubst : true], 
                         subst(lambda([[L]], apply(nc_factor_aux, L)), "+", e))
(%i5) dotassoc  : false;
(%o5)                                false
(%i6) dotdistrib: false;
(%o6)                                false
(%i7) dot2tic_tac(e):= block([inflag: true],  if safe_op(e)#"." then error("op(e) shoule be '.'"),  if length(e)#2 then error("the number of arguments should be 2"),  funmake('tic, [first(e)])*funmake('tac, [second(e)]));
(%o7) dot2tic_tac(e) := block([inflag : true], 
if safe_op(e) # "." then error("op(e) shoule be '.'"), 
if length(e) # 2 then error("the number of arguments should be 2"), 
funmake('tic, [first(e)]) funmake('tac, [second(e)]))
(%i8) tic_tacify(e):= block([op: safe_op(e), inflag: true, seen_dot: false, prederror: true],  if op="." then dot2tic_tac(e)  else if op="*" then map(lambda([el],      if not seen_dot and op="." then (seen_dot: true, dot2tic_tac(el)) else el), e)  else e);
(%o8) tic_tacify(e) := block([op : safe_op(e), inflag : true, 
seen_dot : false, prederror : true], if op = "." then dot2tic_tac(e)
 else (if op = "*" then map(lambda([el], 
if (not seen_dot) and (op = ".") then (seen_dot : true, dot2tic_tac(el))
 else el), e) else e))
(%i9) ntic_or_ntac(e):= is(not funp('tic, e) or not funp('tac, e));
(%o9)  ntic_or_ntac(e) := is((not funp('tic, e)) or (not funp('tac, e)))
(%i10) de_tic_tacify_aux(e):= block([fst: 1, scn: 1, rst: 1, inflag: true, prederror: true],  for el in e do (if funp('tic, el) then fst: remfun('tic, el)    else if funp('tac, el) then scn: remfun('tac, el)    else rst: rst*el),  rst*(fst . scn));
(%o10) de_tic_tacify_aux(e) := block([fst : 1, scn : 1, rst : 1, 
inflag : true, prederror : true], for el in e do if funp('tic, el)
 then fst : remfun('tic, el) else (if funp('tac, el)
 then scn : remfun('tac, el) else rst : rst el), rst (fst . scn))
(%i11) de_tic_tacify(e):= block([inflag: true, prederror: true, op: safe_op(e)],  if op="*" and every(ntic_or_ntac, args(e)) then de_tic_tacify_aux(e)  else if op#false then map('de_tic_tacify, e)  else e);
(%o11) de_tic_tacify(e) := block([inflag : true, prederror : true, 
op : safe_op(e)], if (op = "*") and every(ntic_or_ntac, args(e))
 then de_tic_tacify_aux(e) else (if op # false then map('de_tic_tacify, e)
 else e))
(%i12) nc_factor_aux([L]):= block([M, op],  M: map('tic_tacify, L),  M: factorsum(factor(apply("+", M))),  de_tic_tacify(M));
(%o12) nc_factor_aux([L]) := block([M, op], M : map('tic_tacify, L), 
                        M : factorsum(factor(apply("+", M))), de_tic_tacify(M))
(%i13) load("multiadditive") ;
(%o13)     /usr/share/maxima/5.21.1/share/contrib/multiadditive.lisp
(%i14) 
Run Example
domain:complex;
(%o1)                               complex
(%i2) declare([a1,b1,a2,b2,zA1,zB1,zA2,zB2],complex);
(%o2)                                done
(%i3) eq1:a1*zA1+b1=a2*zA2+b2;
(%o3)                      a1 zA1 + b1 = a2 zA2 + b2
(%i4) eq2:a1*zB1+b1=a2*zB2+b2;
(%o4)                      a1 zB1 + b1 = a2 zB2 + b2
(%i5) sol:solve([eq1,eq2], [a2, b2]);
             a1 zA1 - a1 zB1       - a1 zA1 zB2 - b1 zB2 + zA2 (a1 zB1 + b1)
(%o5) [[a2 = ---------------, b2 = -----------------------------------------]]
                zA2 - zB2                          zA2 - zB2
(%i6) solf:factorsum(factor(sol));
             a1 (zB1 - zA1)       a1 zA1 zB2 + b1 zB2 - a1 zA2 zB1 - b1 zA2
(%o6) [[a2 = --------------, b2 = -----------------------------------------]]
               zB2 - zA2                          zB2 - zA2
(%i7) 

Related Help

Help for Factorsum