Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code
[maxima.git] / demo / manual.demo
blob7944090708656a0991d8fdbc381d63906d375c9a
1  /* 
2    This file is to be run by the EXAMPLE command, and may not 
3    otherwise work.
4    The following are either acceptable lines to Maxima, or they are
5    two successive '&' characters 
6    and then followed by the name of the section of examples, and then followed by
7    a sequence of Maxima forms, e.g.
8    
9    '&'& topic               (without the quotes)
10    
11       /* This is a comment */
12       <Maxima form 1>;
13       <Maxima form 2>;
14       ...
17 && additive
18    
19    declare(f,additive);
20    f(2*a+3*b);
22 && algsys
24    f1:2*x*(1-l1)-2*(x-1)*l2$
25    f2:l2-l1$
26    f3:l1*(1-x**2-y)$
27    f4:l2*(y-(x-1)**2)$
28    algsys([f1,f2,f3,f4],[x,y,l1,l2]);
29    f1:x**2-y**2$
30    f2:x**2-x+2*y**2-y-1$
31    algsys([f1,f2],[x,y]);
33 && allroots
35    (2*x+1)^3=13.5*(x^5+1);
36    allroots(%);
37    
38 && antisymmetric
40    declare(h,antisymmetric);
41    h(x,z,y);
43 && append
45    append([y+x,0,-3.2],[2.5e20,x]);
46    
47 && arrayinfo
49    b[1,x]:1$
50    array(f,2,3);
51    arrayinfo(b);
52    arrayinfo(f);
54 && arrays
55   
56    a[n]:=n*a[n-1];
57    a[0]:1$
58    a[5];
59    a[n]:=n$
60    a[6];
61    a[4];
63 && at 
65    atvalue(f(x,y),[x=0,y=1],a^2);
66    atvalue('diff(f(x,y),x),x=0,y+1);
67    printprops(all,atvalue);
68    diff(4*f(x,y)^2-u(x,y)^2,x);
69    at(%,[x=0,y=1]);
71 && atvalue
72       
73    kill(f,x,a,u,g);
74    atvalue(f(x,y),[x=0,y=1],a^2)$
75    atvalue('diff(f(x,y),x),x=0,y+1);
76    printprops(all,atvalue);
77    diff(4*f(x,y)^2-u(x,y)^2,x);
78    at(%,[x=0,y=1]);
80 && augcoefmatrix  
81    
82    [2*x-(a-1)*y=5*b,a*x+b*y+c=0]$
83    augcoefmatrix(%,[x,y]);
85 && bezout
87    bezout(a*y+x^2+1,y^2+x*y+b,x);
88    expand(determinant(%));
89    %-expand(resultant(a*y+x^2+1,y^2+x*y+b,x));
90    
91 && block
93    kill(f);
94    hessian(f):=block([dfxx,dfxy,dfxz,dfyy,dfyz,dfzz],
95          dfxx:diff(f,x,2),dfxy:diff(f,x,1,y,1),
96          dfxz:diff(f,x,1,z,1),dfyy:diff(f,y,2),
97          dfyz:diff(f,y,1,z,1),dfzz:diff(f,z,2),
98          determinant(matrix([dfxx,dfxy,dfxz],[dfxy,dfyy,dfyz],
99                  [dfxz,dfyz,dfzz])))$
100    kill(x,y,z);
101    hessian(x^3-3*a*x*y*z+y^3);
102    subst(1,z,quotient(%,-54*a^2));
103    f(x):=block([y,use_fast_arrays:false], local(a), y:4, a[y]:x, display(a[y]))$
104    y:2$
105    a[y+2]:0$
106    f(9);
107    ff(x):=block([y,a,use_fast_arrays:true], y:4, a[y]:x, display(a[y]))$
108    ff(10);
109    a[y+2];
111 && bothcoeff  
112    
113    islinear(exp,var):=block([c],
114                c:bothcoef(rat(exp,var),var),
115                is(freeof(var,c) and c[1]#0))$
116    islinear((r^2-(x-r)^2)/x,x);
117    
118 && catch
119    
120    g(l):=catch(map(lambda([x],if x<0 then throw(x) else f(x)),l))$
121    g([1,2,3,7]);
122    g([1,2,-3,7]);
124 && cf
125   
126    cf([1,2,-3]+[1,-2,1]);
127    cfdisrep(%);
128    cflength:4$
129    cf(sqrt(3));
130    cfexpand(%);
131    ev(%[1,2]/%[2,2],numer);
133 && cfdisrep  
134       
135    cf([1,2,-3]+[1,-2,1]);
136    cfdisrep(%);
138 && cfexpand
139   
140    cflength:4$
141    cf(sqrt(3));
142    cfexpand(%);
143    ev(%[1,2]/%[2,2],numer);
145 && changevar  
146    
147    'integrate(%e^(sqrt(a)*sqrt(y)),y,0,4);
148    changevar(%,y-z^2/a,z,y);
150    sum(a[k]*x^(N-1-k), k, 0, N - 1);
151    changevar(%, m = N - 1 - k, m, k);
152 && charpoly  
154    a:matrix([3,1],[2,4]);
155    expand(charpoly(a,lambda));
156    (programmode:true,solve(%));
157    matrix([x1],[x2]);
158    ev(a.%-lambda*%,%th(2)[1]);
159    %[1,1]=0;
160    x1^2+x2^2=1;
161    solve([%th(2),%],[x1,x2]);
163 && coeff
164    
165    coeff(2*a*tan(x)+tan(x)+b=5*tan(x)+3,tan(x));
166    coeff(y+x*%e^x+1,x,0);
168 && combine
169    
170    combine(a/x+b/x+a/y+b/y);
171    
172 && commutative 
173    
174    declare(h,commutative);
175    h(x,z,y);
177 && complex  
178    
179    (sqrt(-4)+sqrt(2.25))^2;
180    expand(%);
181    expand(sqrt(2*%i));
182    
183 && content  
184    
185    content(2*x*y+4*x^2*y^2,y);
187 && defmatch  
188    
189    nonzeroandfreeof(x,e):=is(e#0 and freeof(x,e));
190    matchdeclare(a,nonzeroandfreeof(x),b,freeof(x));
191    defmatch(linear,a*x+b,x);
192    linear(3*z+(y+1)*z+y**2,z);
193    matchdeclare([a,f],true);
194    constinterval(l,h):=constantp(h-l)$
195    matchdeclare(b,constinterval(a))$
196    matchdeclare(x,atom)$
197    block(remove(integrate,outative),
198          defmatch(checklimits,'integrate(f,x,a,b)),
199          declare(integrate,outative))$
200    'integrate(sin(t),t,x+%pi,x+2*%pi)$
201    checklimits(%);
202    'integrate(sin(t),t,0,x)$
203    checklimits(%);
204    remvalue(a,b,f,x)$
205    
206 && deftaylor
207   
208    deftaylor(f(x),x^2+sum(x^i/(2^i*i!^2),i,4,inf));
209    taylor(%e^sqrt(f(x)),x,0,4);
211 && delete  
212    
213    delete(sin(x),x+sin(x)+y);
215 && depends
216   
217    kill(a,x,f,y,t);
218    depends(a,x);
219    diff(a.a,x);
220    depends(f,[x,y],[x,y],t);
221    diff(f,t);
223 && derivdegree  
224    
225    'diff(y,x,2)+'diff(y,z,3)*2+'diff(y,x)*x^2;
226    derivdegree(%,y,x);
228 && desolve  
229    
230    eqn1:'diff(f(x),x)='diff(g(x),x)+sin(x);
231    eqn2:'diff(g(x),x,2)='diff(f(x),x)-cos(x);
232    atvalue('diff(g(x),x),x=0,a);
233    atvalue(f(x),x=0,1);
234    desolve([eqn1,eqn2],[f(x),g(x)]);
235    /* verification */
236    [eqn1,eqn2],%,diff;
238 && diff
239   
240    kill(f,g,h,x,y);
241    diff(sin(x)+x^3+2*x^2,x);
242    diff(sin(x)*cos(x),x);
243    diff(sin(x)*cos(x),x,2);
244    derivabbrev:true$
245    diff(exp(f(x)),x,2);
246    'integrate(f(x,y),y,g(x),h(x));
247    diff(%,x);
249 && display  
250    
251    display(b[1,2]);
253 && divide  
255    divide(x+y,x-y,x);
256    divide(x+y,x-y);
257    
258 && do
259   
260    for a:-3 thru 26 step 7 do ldisplay(a)$
261    s:0$
262    for i:1 while i<=10 do s:s+i;
263    s;
264    series:1$
265    term:exp(sin(x))$
266    for p:1 unless p>7 do
267              (term:diff(term,x)/p,
268              series:series+subst(x=0,term)*x^p)$
269    series;
270    poly:0$
271    for i:1 thru 5 do
272            for j:i step -1 thru 1 do
273               poly:poly+i*x^j$
274    poly;
275    guess:-3.0$
276    for i thru 10 do (guess:subst(guess,x,0.5*(x+10/x)),
277             if abs(guess^2-10)<0.00005 then return(guess));
278    for count:2 next 3*count thru 20
279             do ldisplay(count)$
280    x:1000;
281    thru 10 while x#0 do x:0.5*(x+5/x)$
282    x;
283    remvalue(x);
284    newton(f,guess):=block([numer,y],local(f,df,x,guess),
285          numer:true,
286            define(df(x),diff(f(x),x)),
287         do (y:df(guess), if y=0 then error(
288              "derivative at",guess,"is zero"),
289             guess:guess-f(guess)/y,
290             if abs(f(guess))<5.0e-6 then return(guess)))$
291    sqr(x):=x^2-5.0$
292    newton(sqr,1000);
293    for f in [log, rho, atan] do ldisp(f(1.0))$
294    ev(concat(e,linenum-1),numer);
295    
296 && dotscrules  
298    declare(l,scalar,[m1,m2,m3],nonscalar);
299    expand((1-l*m1).(1-l*m2).(1-l*m3));
300    %,dotscrules;
301    rat(%,l);
303 && dpart
305    dpart(x+y/z^2,1,2,1);
306    expand((b+a)^4);
307    (b+a)^2*(y+x)^2;
308    expand(%);
309    %th(3)/%;
310    factor(%);
311    dpart(%th(2),2,4);
312    part(%th(3),2,4);
313    
314 && echelon  
315    
316    matrix([2,1-a,-5*b],[a,b,c]);
317    echelon(%);
319 && eliminate  
320    
321    exp1:2*x^2+y*x+z;
322    exp2:3*x+5*y-z-1;
323    exp3:z^2+x-y^2+5;
324    eliminate([exp3,exp2,exp1],[y,z]);
326 && entermatrix  
327    
328    entermatrix(2,1);
329    
330 && equations  
331    
332    x+1=y^2;
333    x-1=2*y+1$
334    %th(2)+%;
335    %th(3)/y;
336    1/%;
338 && ev
340    kill(y,x,w);
341    sin(x)+cos(y)+(w+1)^2+'diff(sin(w),w);
342    ev(%,sin,expand,diff,x=2,y=1);
343    ev(x+y,x:a+y,y:2);
344    'diff(y^2+x*y+x^2,x,2,y,1);
345     
346    ev(%,diff);
347    2*x-3*y=3$
348    -3*x+2*y=-4$
349    solve([%th(2),%]);
350    ev(%th(3),%);
351    x+1/x>gamma(1/2);
352    ev(%,numer,x=1/2);
353    ev(%,pred);
354    
355 && evaluation  
357    diff(x*f(x),x);
358    f(x):=sin(x)$
359    ev(%th(2),diff);
360    x;
361    x:3$
362    x;
363    'x;
364    f(x):=x^2;
365    'f(2);
366    ev(%,f);
367    '(f(2));
368    ''%;
369    sum(i!,i,1,4);
370    'sum(i!,i,1,4);
371    remvalue(x);
372    'integrate(f(x),x,a,b);
373    for i thru 5 do s:s+i^2;
374    s;
375    ev(%,s:0);
376    ev(%th(2));
377    'sum(g(i),i,0,n);
378    z*%e^z;
379    ev(%,z:x^2);
380    subst(x^2,z,%th(3));
381    a:%;
382    a+1;
383    kill(a,y);
384    a;
385    /* declare(integrate,noun)$ */
386    integrate(y^2,y);
387    ''integrate(y^2,y);
388    f(y):=diff(y*log(y),y,2);
389    f(y):=''(diff(y*log(y),y,2));
390    ''(concat(c,linenum-1));
391    (x+y)^3$
392    diff(%,x);
393    y:x^2+1$
394    ''(concat(c,linenum-2));
396 && evenfun
398    declare(g,evenfun);
399    g(-x);
401 && exp
402   
403    ev(%e^x*sin(x)^2,exponentialize);
404    kill(x);
405    integrate(%,x);
406    ev(%,demoivre);
407    ans:ev(%,ratexpand);
408    ev(%,x:1,numer)-ev(%,x:0,numer);
409    integrate(%e^x*sin(x)^2,x);
410    trigreduce(%);
411    %-ans;
412    ev(sin(x),%emode);
414 && expand  
415    
416    (1/(x+y)^4-3/(y+z)^3)^2;
417    expand(%,2,0);
418    expand(a.(b+c.(d+e)+f));
419    expand((x+1)^3);
420    (x+1)^7;
421    expand(%);
422    expand(%th(2),7,7);
423    ev(a*(b+c)+a*(b+c)^2,expop:1);
425 && factcomb
427    (n+1)^2*n!^2;
428    factcomb(%);
430 && factor
431   
432    factor(2^63-1);
433    factor(z^2*(x+2*y)-4*x-8*y);
434    x^2*y^2+2*x*y^2+y^2-x^2-2*x-1;
435    block([dontfactor:[x]],factor(%/36/(y^2+2*y+1)));
436    factor(%e^(3*x)+1);
437    factor(x^4+1,a^2-2);
438    factor(x^3+x^2*y^2-x*z^2-y^2*z^2);
439    (x+2)/(x+3)/(x+b)/(x+c)^2;
440    ratsimp(%);
441    partfrac(%,x);
442    map('factor,%);
443    ratsimp((x^5-1)/(x-1));
444    subst(a,x,%);
445    factor(%th(2),%);
446    factor(x^12+1);
447    factor(x^99+1);
448    
449 && factorsum  
450    
451    ev((x+1)*((u+v)^2+a*(w+z)^2),expand);
452    factorsum(%);
454 && featurep 
456    declare(j,even)$
457    featurep(j,integer);
459 && freeof
460   
461    freeof(y,sin(x+2*y));
462    freeof(cos(y),"*",sin(y)+cos(x));
464 && fullmap  
465    
466    fullmap(g,a+b*c);
467    map(g,a+b*c);
469 && fullmapl
470   
471    fullmapl("+",[3,[4,5]],[[a,1],[0,-1.5]]);
473 && funcsolve
474    
475    funcsolve((n+1)*f(n)-(n+3)*f(n+1)/(n+1)=(n-1)/(n+2),f(n));
477 && functions
478    
479    kill(x,y,f,g,h);
480    f(x):=x^2+y;
481    f(2);
482    ev(f(2),y:7);
483    f(x):=sin(x)^2+1;
484    f(x+1);
485    g(y,z):=f(z)+3*y;
486    ev(g(2*y+z,-0.5),y:7);
487    h(n):=sum(i*x^i,i,0,n);
488    functions;
489    t[n](x):=ratexpand(2*x*t[n-1](x)-t[n-2](x));
490    t[0](x):=1$
491    t[1](x):=x$
492    t[4](y);
493    g[n](x):=sum(ev(x),i,n,n+2);
494    h(n,x):=sum(ev(x),i,n,n+2);
495    g[2](i^2);
496    h(2,i^2);
497    p[n](x):=ratsimp(1/(2^n*n!)*diff((x^2-1)^n,x,n));
498    q(n,x):=ratsimp(1/(2^n*n!)*diff((x^2-1)^n,x,n));
499    p[2];
500    p[2](y+1);
501    q(2,y);
502    p[2](5);
503    f[i,j](x,y):=x^i+y^j;
504    g(fun,a,b):=print(fun," applied to ",a," and ",b," is ",fun(a,b))$
505    g(f[2,1],sin(%pi),2*c);
507 && genmatrix
508   
509    h[i,j]:=1/(i+j-1)$
510    genmatrix(h,3,3);
512 && get
513   
514    put(%e,transcendental,type);
515    put(%pi,transcendental,type)$
516    put(%i,algebraic,type)$
517    typeof(x):=block([q], if numberp(x)
518                then return(algebraic),
519                if not atom(x)
520                then return(maplist(typeof,x)),
521                q:get(x,type), if q=false then
522                error("not numeric") else q)$
523    errcatch(typeof(2*%e+x*%pi));
524    typeof(2*%e+%pi);
526 && gfactor  
527    
528    gfactor(x^4-1);
530 && gradef
531   
532    depends(y,x);
533    kill(f,g,j);
534    gradef(f(x,y),x^2,g(x,y));
535    diff(f(x,y),x);
536    gradef(j(n,z),'diff(j(n,z),n),
537         j(n-1,z)-n/z*j(n,z))$
538    ratsimp(diff(j(2,x),x,2));
539    
540 && horner  
541    
542    poly:1.0e-20*x^2-5.5*x+5.2e20;
543    errcatch(ev(%,x=1.0e20));
544    horner(poly,x),keepfloat;
545    ev(%,x=1.0e20);
546    
547 && if
548   
549    fib[n]:=if n=1 or n=2 then 1 else fib[n-1]+fib[n-2];
550    fib[1]+fib[2];
551    fib[3];
552    fib[5];
553    eta(mu,nu):=if mu=nu then mu else if mu>nu then mu-nu else mu+nu;
554    eta(5,6);
555    eta(eta(7,7),eta(1,2));
556    if not 5>=2 and 6<=5 or 4+1>3 then a else b;
557    
558 && ilt  
559    
560    'integrate(sinh(a*x)*f(t-x),x,0,t)+b*f(t)=t^2;
561    laplace(%,t,s);
562    linsolve([%],['laplace(f(t),t,s)]);
563    ilt(ev(%[1]),s,t);
565 && inpart  
566    
567    x+y+w*z;
568    inpart(%,3,2);
569    'limit(f(x)^g(x+1),x,0,minus);
570    inpart(%,1,2);
572 && integrate
573    
574    test(f):=block([u],u:integrate(f,x),ratsimp(f-diff(u,x)));
575    test(sin(x));
576    test(1/(1+x));
577    test(1/(1+x^2));
578    integrate(sin(x)^3,x);
579    kill(q)$
580    integrate(%e^x/(%e^x+2),x);
581    integrate(1/(x*log(x)),x);
582    integrate(sin(2*x+3),x);
583    integrate(%e^x*erf(x),x);
584    integrate(x/(x^3+1),x);
585    diff(%,x);
586    ratsimp(%);
587    integrate(x^(5/4)/(x+1)^(5/2),x,0,inf);
588    gradef(q(x),sin(x^2));
589    diff(log(q(r(x))),x);
590    integrate(%,x);
592 && is  
593    
594    is(x^2>=2*x-1);
595    assume(a>1);
596    is(log(log(a+1)+1)>0 and a^2+1>2*a);
597    
598 && isolate  
599    
600    (a+b)^4*(1+x*(2*x+(c+d)^2));
601    isolate(%,x);
602    ratexpand(%)$
603    ev(%);
604    (a+b)*(x+a+b)^2*%e^(x^2+a*x+b);
605    isolate(%,x),exptisolate:true;
606   
607 && lambda
608   
609    lambda([x,y,z],x^2+y^2+z^2);
610    %(1,2,a);
611    "+"(1,2,a);
612    
613 && laplace
614   
615    laplace(%e^(2*t+a)*sin(t)*t,t,s);
617 && lassociative 
618    
619    declare(g,lassociative);
620    g(g(a,b),g(c,d));
621    g(g(a,b),g(c,d))-g(a,g(b,g(c,d)));
623 && let  
624    
625    matchdeclare([a,a1,a2],true);
626    oneless(x,y):=is(x=y-1)$
627    let(a1*a2!,a1!,oneless,a2,a1);
628    let(a1!/a1,(a1-1)!),letrat;
629    letsimp(n*m!*(n-1)!/m),letrat;
630    let(sin(a)^2,1-cos(a)^2);
631    sin(x)^4;
632    letsimp(%);
633    
634 && letrules  
635    
636    matchdeclare([a,a1,a2],true);
637    oneless(x,y):=is(x=y-1)$
638    let(a1*a2!,a1!,oneless,a2,a1);
639    let(a1!/a1,(a1-1)!),letrat;
640    letsimp(n*m!*(n-1)!/m),letrat;
641    let(sin(a)^2,1-cos(a)^2);
642    sin(x)^4;
643    letsimp(%);
645 && limit  
646    
647    limit(x*log(x),x,0,plus);
648    limit((1+x)^(1/x),x,0);
649    limit(%e^x/x,x,inf);
650    limit(sin(1/x),x,0);
651    
652 && linear 
654    declare(f,linear);
655    f(2*a+3*b);
656    f(2*x+y,x);
657    
658 && linsolve  
659    
660    x+z=y$
661    2*a*x-y=2*a^2$
662    y-2*z=2$
663    linsolve([%th(3),%th(2),%],[x,y,z]),globalsolve;
665 && listofvars  
666    
667    listofvars(f(x[1]+y)/g^(2+a));
669 && lists  
670    
671    [x^2,y/3,-2];
672    %[1]*x;
673    [a,%th(2),%];
674    
675 && logcontract  
676    
677    2*(a*log(x) + 2*a*log(y));
678    logcontract(%);
679    logcontract(log(sqrt(x+1)+sqrt(x)) + log(sqrt(x+1)-sqrt(x)));
681 && map  
682    
683    map(f,x+a*y+b*z);
684    map(lambda([u],partfrac(u,x)),x+1/(x^3+4*x^2+5*x+2));
685    map(ratsimp, x/(x^2+x)+(y^2+y)/y);
686    map("=",[a,b],[-0.5,3]);
688 && matchdeclare  
689    
690    matchdeclare(a,true)$
691    tellsimp(sin(a)^2,1-cos(a)^2)$
692    sin(y)^2;
693    kill(rules);
694    nonzeroandfreeof(x,e):=is(e#0 and freeof(x,e));
695    matchdeclare(a,nonzeroandfreeof(x),b,freeof(x));
696    defmatch(linear,a*x+b,x);
697    linear(3*z+(y+1)*z+y**2,z);
698    matchdeclare([a,f],true);
699    constinterval(l,h):=constantp(h-l)$
700    matchdeclare(b,constinterval(a))$
701    matchdeclare(x,atom)$
702    block(remove(integrate,outative),
703          defmatch(checklimits,'integrate(f,x,a,b)),
704          declare(integrate,outative))$
705    'integrate(sin(t),t,x+%pi,x+2*%pi)$
706    checklimits(%);
707    'integrate(sin(t),t,0,x)$
708    checklimits(%);
709    
710 && matrices  
712    m:matrix([a,0],[b,1]);
713    m^2;
714    m.m;
715    m[1,1]*m;
716    %-%th(2)+1;
717    m^^-1;
718    [x,y].m;
719    matrix([a,b,c],[d,e,f],[g,h,i]);
720    %^^2;
721    
722 && minfactorial  
724    n!/(n+1)!;
725    minfactorial(%);
726    
727 && multiplicative 
729    declare(f,multiplicative);
730    f(2*a*b);
731    
732 && multthru  
734    x/(x-y)^2-1/(x-y)-f(x)/(x-y)^3;
735    multthru((x-y)^3,%);
736    ratexpand(%);
737    ((a+b)^10*s^2+2*a*b*s+(a*b)^2)/(a*b*s^2);
738    multthru(%);
739    multthru(a.(b+c.(d+e)+f));
740    
741 && nary 
743    declare(j,nary);
744    j(j(a,b),j(c,d));
745    
746 && nounify  
747    'limit(f(x)^g(x+1),x,0,minus);
748    is(inpart(%,0)=nounify(limit));
749    
750 && nroots  
752    x^10-2*x^4+1/2;
753    nroots(%,-6,9.1);
754    
755 && numfactor  
757    gamma(7/2);
758    numfactor(%);
759    
760 && nusum  
762    nusum(n*n!,n,0,n);
763    nusum(n^4*4^n/binomial(2*n,n),n,0,n);
764    unsum(%,n);
765    unsum(prod(i^2,i,1,n),n);
766    nusum(%,n,1,n);
767    
768 && oddfun 
770    declare(f,oddfun);
771    f(-x);
772    
773 && ode2  
775    x^2*'diff(y,x) + 3*x*y = sin(x)/x;
776    soln1:ode2(%,y,x);
777    ic1(soln1,x=%pi,y=0);
778    'diff(y,x,2) + y*'diff(y,x)^3 = 0;
779    soln2:ode2(%,y,x);
780    ratsimp(ic2(soln2,x=0,y=0,'diff(y,x)=2));
781    bc2(soln2,x=0,y=1,x=1,y=3);
782    
783 && optimize  
785    diff(exp(x^2+y)/(x+y),x,2);
786    optimize(%);
787    
788 && ordergreat  
789    
790    a^2+b*x;
791    ordergreat(a);
792    a^2+b*x;
793    %-%th(3);
794    unorder();
795    
796 && orderless  
798    y^2+b*x;
799    orderless(y);
800    y^2+b*x;
801    %-%th(3);
802    unorder();
803    
804 && outative 
806    declare(f,outative);
807    f(2*a);
808    
809 && part  
811    x+y/z^2;
812    part(%,1,2,2);
813    remvalue(x);
814    'integrate(f(x),x,a,b)+x;
815    part(%,1,1);
816    x^2+2*x=y^2;
817    %+1;
818    lhs(%);
819    part(%th(2),2);
820    part(%,1);
821    27*y^3+54*x*y^2+36*x^2*y+y+8*x^3+x+1;
822    part(%,2,[1,3]);
823    sqrt(piece/54);
824    
825 && partfrac  
827    2/(x+2)-2/(x+1)+1/(x+1)^2;
828    ratsimp(%);
829    partfrac(%,x);
830    
831 && partition  
833    partition(2*a*x*f(x),x);
834    partition(a+b,x);
835    
836 && pickapart  
838    integrate(1/(x^3+2),x)$
839    pickapart(%,1);
840    
841 && poissimp  
843    pfeformat:true$
844    poissimp(sin(x)^2);
845    (2*a^2-b)*cos(x+2*y)-(a*b+5)*sin(u-4*x);
846    poisexpt(%,2)$
847    printpois(%);
848    poisint(%th(2),y)$
849    poissimp(%);
850    poissimp(sin(x)^5+cos(x)^5);
851    pfeformat:false$
852    
853 && polarform  
855    rectform(sin(2*%i+x));
856    polarform(%);
857    rectform(log(3+4*%i));
858    polarform(%);
859    rectform((2+3.5*%i)^0.25),numer;
860    polarform(%);
861    
862 && poly_discriminant  
864    factor(poly_discriminant((x-a)*(x-b)*(x-c),x));
865    
866 && posfun 
868    declare(f,posfun);
869    is(f(x)>0);
870    
871 && powerseries  
873    powerseries(log(sin(x)/x),x,0);
874    
875 && printprops 
877    gradef(r,x,x/r)$
878    gradef(r,y,y/r)$
879    printprops(r,atomgrad);
880    propvars(atomgrad);
881    
882 && product  
884    product(x+i*(i+1)/2,i,1,4);
886 && properties 
888    properties(cons);
889    assume(var1>0);
890    properties(var1);
891    var2:2$
892    properties(var2);
893    
894 && propvars 
896    gradef(r,x,x/r)$
897    gradef(r,y,y/r)$
898    printprops(r,atomgrad);
899    propvars(atomgrad);
900    
901 && qunit  
903    qunit(17);
904    expand(%*(sqrt(17)-4));
905    
906 && radcan  
908    (log(x^2+x)-log(x))^a/log(x+1)^(a/2);
909    radcan(%);
910    log(a^(2*x)+2*a^x+1)/log(a^x+1);
911    radcan(%);
912    (%e^x-1)/(%e^(x/2)+1);
913    radcan(%);
914    
915 && rank  
917    matrix([2,1-a,-5*b],[a,b,c]);
918    rank(%);
919    
920 && rassociative 
922    declare(g,rassociative);
923    g(g(a,b),g(c,d));
924    g(g(a,b),g(c,d))-g(a,g(b,g(c,d)));
925    
926 && rat  
928    rat(x^2);
929    diff(f(%),x);
930    ((x-2*y)^4/(x^2-4*y^2)^2+1)*(y+a)*(2*y+x)/(4*y^2+x^2);
931    rat(%,y,a,x);
932    (x+3)^20;
933    rat(%);
934    diff(%,x);
935    factor(%);
936    
937 && ratcoeff  
939    a*x+b*x+5$
940    ratcoef(%,a+b);
941    
942 && ratdiff  
944    (4*x^3+10*x-11)/(x^5+5);
945    polymod(%),modulus:3;
946    ratdiff(%th(2),x);
947    
948 && ratexpand  
950    ratexpand((2*x-3*y)^3);
951    (x-1)/(x+1)^2+1/(x-1);
952    expand(%);
953    ratexpand(%th(2));
954    
955 && ratsimp  
957    sin(x/(x^2+x))=%e^((log(x)+1)^2-log(x)^2);
958    ratsimp(%);
959    b*(a/b-x)+b*x+a;
960    ratsimp(%);
961    ((x-1)^(3/2)-(x+1)*sqrt(x-1))/sqrt(x-1)/sqrt(x+1);
962    ratsimp(%);
963    x^(a+1/a),ratsimpexpons;
964    
965 && ratsubst  
967    ratsubst(a,x*y^2,x^4*y^8+x^4*y^3);
968    1 + cos(x) + cos(x)^2 + cos(x)^3 + cos(x)^4;
969    ratsubst(1-sin(x)^2,cos(x)^2,%);
970    ratsubst(1-cos(x)^2,sin(x)^2,sin(x)^4);
971    
972 && ratweight  
974    ratweight(a,1,b,1);
975    rat(a+b+1);
976    %^2;
977    ev(%th(2)^2,ratwtlvl:1);
978    
979 && realpart  
981    (%i*v+u)/(f+%i*e)+%e^(%i*alpha);
982    realpart(%);
983    
984 && realroots  
986    realroots(x^5-x-1,5.0e-6);
987    %[1],float;
988    x^5-x-1,%;
989    
990 && residue  
992    residue(s/(s^2+a^2),s,a*%i);
993    residue(sin(a*x)/x^4,x,0);
994    
995 && resultant  
997    resultant(a*y+x^2+1,y^2+x*y+b,x);
998    
999 && reveal  
1001    integrate(1/(x^3+2),x)$
1002    reveal(%,2);
1003    reveal(%th(2),3);
1004    
1005 && reverse  
1006    
1007    union({a,b,1,1/2,x^2},{-x^2,a,y,1/2});
1008    bernpoly(x,5);
1009    maplist(numfactor,%);
1010    apply(min,%);
1011    
1012 && risch
1013   
1014    risch(x^2*erf(x),x);
1015    diff(%,x),ratsimp;
1016    
1017 && rootscontract 
1019    rootsconmode:false$
1020    rootscontract(x^(1/2)*y^(3/2));
1021    rootscontract(x^(1/2)*y^(1/4));
1022    rootsconmode:true$
1023    rootscontract(x^(1/2)*y^(1/4));
1024    rootscontract(x^(1/2)*y^(1/3));
1025    rootsconmode:all$
1026    rootscontract(x^(1/2)*y^(1/4));
1027    rootscontract(x^(1/2)*y^(1/3));
1028    rootsconmode:false$
1029    rootscontract(sqrt(sqrt(x+1)+sqrt(x))*sqrt(sqrt(x+1)-sqrt(x))); 
1030    rootsconmode:true$
1031    rootscontract(sqrt(sqrt(5)+5)-5^(1/4)*sqrt(sqrt(5)+1));
1032    
1033 && scanmap  
1035    (a^2+2*a+1)*y+x^2;
1036    scanmap(factor,%);
1037    scanmap(factor,expand(%th(2)));
1038    u*v^(a*x+b)+c;
1039    scanmap('f,%);
1040    
1041 && scsimp  
1043    exp:k^2*n^2+k^2*m^2*n^2-k^2*l^2*n^2-k^2*l^2*m^2*n^2;
1044    eq1:k^2+l^2=1;
1045    eq2:n^2-m^2=1;
1046    scsimp(exp,eq1,eq2);
1047    exq:(k1*k4-k1*k2-k2*k3)/k3^2;
1048    eq3:k1*k4-k2*k3=0;
1049    eq4:k1*k2+k3*k4=0;
1050    scsimp(exq,eq3,eq4);
1051    
1052 && solve  
1054    solve(asin(cos(3*x))*(f(x)-1),x);
1055    solve(5^f(x)=125,f(x)),solveradcan;
1056    [4*x^2-y^2=12,x*y-x=2];
1057    solve(%,[x,y]);
1058    solve(x^3+a*x+1,x);
1059    solve(x^3-1);
1060    solve(x^6-1);
1061    ev(x^6-1,%[1]);
1062    expand(%);
1063    x^2-1;
1064    solve(%,x);
1065    %th(2),%[1];
1066    
1067 && specint  
1069    assume(p>0,a>0)$
1070    /* a laplace transform */
1071    t^(1/2)*%e^(-a*t/4)*%e^(-p*t);
1072    specint(%,t);
1073    /* a bessel function */
1074    t^(1/2)*%j[1](2*a^(1/2)*t^(1/2))*%e^(-p*t);
1075    specint(%,t);
1076    forget(p>0,a>0)$
1077    
1078 && sqfr  
1080    sqfr(4*x^4+4*x^3-3*x^2-4*x-1);
1081    
1082 && substinpart  
1084    x.'diff(f(x),x,2);
1085    substinpart(d^2,%,2);
1086    substinpart(f1,f[1](x+1),0);
1087    
1088 && substitute  
1090    subst(a,x+y,x+(x+y)^2+y);
1091    subst(-%i,%i,a+b*%i);
1092    subst(x,y,x+y);
1093    subst(x=0,diff(sin(x),x));
1094    errcatch(ev(diff(sin(x),x),x=0));
1095    integrate(x^i,x),i=-1;
1096    errcatch(subst(-1,i,integrate(x^i,x)));
1097    matrix([a,b],[c,d]);
1098    subst("[",matrix,%);
1100 && substpart  
1102    1/(x^2+2);
1103    substpart(3/2,%,2,1,2);
1104    27*y^3+54*x*y^2+36*x^2*y+y+8*x^3+x+1;
1105    substpart(factor(piece),%,[1,2,3,5]);
1106    1/x+y/x-1/z;
1107    substpart(xthru(piece),%,[2,3]);
1108    substpart("+",%,1,0);
1109    ratsimp((k^2*x^2-1)*(cos(x)+eps)/(3*k+n[1])/(5*k-n[2]));
1110    factor(%);
1111    substpart(ratsimp(piece),%,1,[1,2]);
1112    -substpart(-piece,%,1,1);
1113    a+b/(x*(y+(a+b)*x)+1);
1114    substpart(multthru(piece),%,1,2,1);
1116 && sum
1118    sum(i^2+2^i,i,0,n),simpsum;
1119    sum(3^(-i),i,1,inf),simpsum;
1120    sum(i^2,i,1,4)*sum(1/i^2,i,1,inf),simpsum;
1121    sum(i^2,i,1,5);
1123 && symmetric 
1125    declare(h,symmetric);
1126    h(x,z,y);
1128 && syntax  
1130    matchfix("@{","@}");
1131    infix("|");
1132    @{x|x>0@};
1133    @{x|x<2@};
1134    infix(".u.")$
1135    infix(".i.")$
1136    %th(4).u.%th(3);
1137    %th(5).u.%th(4);
1138    @{1,2,3@}$
1139    @{3,4,5@}$
1140    %th(2).u.%th(2).u.%;
1141    infix(".u.",100,100)$
1142    infix(".i.",120,120)$
1143    %th(5).u.%th(5).u.%;
1144    remove(".u.",operator)$
1145    errcatch(%th(7).u.%th(3));
1146    remove(["@{","@}",".i.",".u."],operator)$
1148 && taylor
1150    taylor(sqrt(1+a*x+sin(x)),x,0,3);
1151    %^2;
1152    taylor(sqrt(1+x),x,0,5);
1153    %^2;
1154    product((x^i+1)^2.5,i,1,inf)/(x^2+1);
1155    taylor(%,x,0,3),keepfloat;
1156    taylor(1/log(1+x),x,0,3);
1157    taylor(cos(x)-sec(x),x,0,5);
1158    taylor((cos(x)-sec(x))^3,x,0,5);
1159    taylor((cos(x)-sec(x))^-3,x,0,5);
1160    taylor(sqrt(1-k^2*sin(x)^2),x,0,6);
1161    taylor((1+x)^n,x,0,4);
1162    taylor(sin(x+y),x,0,3,y,0,3);
1163    taylor(sin(x+y),[x,y],0,3);
1164    taylor(1/sin(x+y),x,0,3,y,0,3);
1165    taylor(1/sin(x+y),[x,y],0,3);
1167 && taytorat  
1169    taylor(1+x,[x,0,3]);
1170    1/%;
1171    taylor(1+x+y+z,[x,0,3],[y,1,2],[z,2,1]);
1172    1/%;
1173    taylor(1+x+y+z,[x,0,3],[y,0,3],[z,0,3]);
1174    1/%;
1176 && tellrat  
1178    10*(1+%i)/(3^(1/3)+%i);
1179    ratdisrep(rat(%)),algebraic;
1180    tellrat(a^2+a+1);
1181    a/(sqrt(2)+sqrt(3))+1/(a*sqrt(2)-1);
1182    ratdisrep(rat(%)),algebraic;
1183    tellrat(y^2=x^2);
1185 && tellsimp  
1187    matchdeclare(x,freeof(%i))$
1188    %iargs:false$
1189    tellsimp(sin(%i*x),%i*sinh(x));
1190    trigexpand(sin(x+%i*y));
1191    %iargs:true$
1192    errcatch(0^0);
1193    tellsimp(0^0,1),simp:false;
1194    0^0;
1195    remrule("^",%th(2)[1]);
1196    tellsimp(sin(x)^2,1-cos(x)^2)$
1197    (sin(x)+1)^2;
1198    expand(%);
1199    sin(x)^2;
1200    kill(rules);
1201    matchdeclare(a,true)$
1202    tellsimp(sin(a)^2,1-cos(a)^2)$
1203    sin(y)^2;
1204    kill(rules);
1206 && triangularize  
1208    matrix([2,1-a,-5*b],[a,b,c]);
1209    triangularize(%);
1211 && trig  
1213    sin(%pi/12)+tan(%pi/6);
1214    ev(%,numer);
1215    sin(1);
1216    sin(1),numer;
1217    beta(1/2,2/5);
1218    ev(%,numer);
1219    diff(atanh(sqrt(x)),x);
1220    fpprec:25$
1221    sin(0.5b0);
1222    cos(x)^2-sin(x)^2;
1223    ev(%,x:%pi/3);
1224    diff(%th(2),x);
1225    integrate(%th(3),x);
1226    expand(%);
1227    trigexpand(%);
1228    trigreduce(%);
1229    sech(x)^2*sinh(x)*tanh(x)/coth(x)^2 + cosh(x)^2*sech(x)^2*tanh(x)/coth(x)^2
1230         + sech(x)^2*tanh(x)/coth(x)^2;
1231    trigsimp(%);
1232    ev(sin(x),exponentialize);
1233    taylor(sin(x)/x,x,0,4);
1234    ev(cos(x)^2-sin(x)^2,sin(x)^2=1-cos(x)^2);
1236 && trigexpand  
1238    x+sin(3*x)/sin(x),trigexpand,expand;
1239    trigexpand(sin(10*x+y));
1241 && trigreduce  
1242    
1243    -sin(x)^2+3*cos(x)^2+x;
1244    expand(trigreduce(%));
1245    declare(j,integer,e,even,o,odd);
1246    sin(x+(e+1/2)*%pi);
1247    sin(x+(o+1/2)*%pi);
1249 && unorder  
1251    a^2+b*x;
1252    ordergreat(a);
1253    a^2+b*x;
1254    %-%th(3);
1255    unorder();
1257 && xthru  
1259    ((x+2)^20-2*y)/(x+y)^20+(x+y)^-19-x/(x+y)^20;
1260    xthru(%);
1262 && zeroequiv  
1263    
1264    zeroequiv(sin(2*x)-2*sin(x)*cos(x),x);
1265    zeroequiv(%e^x+x,x);
1266    zeroequiv(log(a*b)-log(a)-log(b),a);