REDUCE 3.6, 15-Jul-95, patched to 6 Mar 96 ...
% Author: Alan Barnes <barnesa@aston.ac.uk>.
psexplim 8;
6
% expand as far as 8th power (default is 6)
cos!-series:=ps(cos x,x,0);
1 2 1 4 1 6 1 8
cos-series := {1 - (---)*x + (----)*x - (-----)*x + (-------)*x
2 24 720 40320
9
+ O(x )}
sin!-series:=ps(sin x,x,0);
1 3 1 5 1 7 9
sin-series := {x - (---)*x + (-----)*x - (------)*x + O(x )}
6 120 5040
atan!-series:=ps(atan x,x,0);
1 3 1 5 1 7 9
atan-series := {x - (---)*x + (---)*x - (---)*x + O(x )}
3 5 7
tan!-series:=ps(tan x,x,0);
1 3 2 5 17 7 9
tan-series := {x + (---)*x + (----)*x + (-----)*x + O(x )}
3 15 315
cos!-series*tan!-series;
1 3 1 5 1 7 9
{x - (---)*x + (-----)*x - (------)*x + O(x )}
6 120 5040
% should series for sin(x)
df(cos!-series,x);
1 3 1 5 1 7 9
{ - x + (---)*x - (-----)*x + (------)*x + O(x )}
6 120 5040
% series for sin(x) again
cos!-series/atan!-series;
(-1) 1 77 3 313 5 104539 7
{x - (---)*x - (-----)*x + (------)*x - (---------)*x
6 360 3024 1814400
9
+ O(x )}
ps(cos!-series/atan!-series,x,0);
(-1) 1 77 3 313 5 104539 7
{x - (---)*x - (-----)*x + (------)*x - (---------)*x
6 360 3024 1814400
9
+ O(x )}
% should be expanded
tmp:=ps(1/(1+x^2),x,infinity);
(-2) (-4) (-6) (-8) (-9)
tmp := {x - x + x - x + O(x )}
df(tmp,x);
(-3) (-5) (-7) (-9)
{ - 2*x + 4*x - 6*x + O(x )}
ps(df(1/(1+x^2),x),x,infinity);
(-3) (-5) (-7) (-9)
{ - 2*x + 4*x - 6*x + O(x )}
tmp*x;
(-2) (-4) (-6) (-8) (-9)
{x - x + x - x + O(x )}
*x
% not expanded as a single power series
ps(tmp*x,x,infinity);
(-1) (-3) (-5) (-7) (-9)
{x - x + x - x + O(x )}
% now expanded
ps(1/(a*x-b*x^2),x,a/b);
2 3
1 (-1) b b b 2
[{ - (---)*(x - x0) + (----) - (----)*(x - x0) + (----)*(x - x0) -
a 2 3 4
a a a
4 5 6
b 3 b 4 b 5
(----)*(x - x0) + (----)*(x - x0) - (----)*(x - x0) +
5 6 7
a a a
7 8 9
b 6 b 7 b 8
(----)*(x - x0) - (----)*(x - x0) + (-----)*(x - x0)
8 9 10
a a a
9 a
+ O((x - x0) )} where x0 = ---]
b
% pole at expansion point
ps(cos!-series*x,x,2);
2
{(2*cos(2)) + (cos(2) - 2*sin(2))*(x - 2) - (cos(2) + sin(2))*(x - 2) -
3*cos(2) - 2*sin(2) 3 cos(2) + 2*sin(2) 4
(---------------------)*(x - 2) + (-------------------)*(x - 2) +
6 12
5*cos(2) - 2*sin(2) 5 cos(2) + 3*sin(2) 6
(---------------------)*(x - 2) - (-------------------)*(x - 2) -
120 360
7*cos(2) - 2*sin(2) 7 cos(2) + 4*sin(2) 8
(---------------------)*(x - 2) + (-------------------)*(x - 2)
5040 20160
9
+ O((x - 2) )}
tmp:=ps(x/atan!-series,x,0);
1 2 4 4 44 6 428 8
tmp := {1 + (---)*x - (----)*x + (-----)*x - (-------)*x
3 45 945 14175
9
+ O(x )}
tmp1:=ps(atan!-series/x,x,0);
1 2 1 4 1 6 1 8 9
tmp1 := {1 - (---)*x + (---)*x - (---)*x + (---)*x + O(x )}
3 5 7 9
tmp*tmp1;
1
% should be 1, of course
cos!-sin!-series:=ps(cos sin!-series,x,0);
1 2 5 4 37 6
cos-sin-series := {1 - (---)*x + (----)*x - (-----)*x +
2 24 720
457 8 9
(-------)*x + O(x )}
40320
% cos(sin(x))
tmp:=cos!-sin!-series^2;
2 2 4 14 6 37 8 9
tmp := {1 - x + (---)*x - (----)*x + (-----)*x + O(x )}
3 45 315
tmp1:=ps((sin(sin!-series))^2,x,0);
2 2 4 14 6 37 8 9
tmp1 := {x - (---)*x + (----)*x - (-----)*x + O(x )}
3 45 315
tmp+tmp1;
9
{1 + O(x )}
% sin^2 + cos^2
psfunction tmp1;
2
sin(sin(x))
% function represented by power series tmp1
tmp:=tan!-series^2;
2 2 4 17 6 62 8 9
tmp := {x + (---)*x + (----)*x + (-----)*x + O(x )}
3 45 315
psdepvar tmp;
x
% in case we have forgotten the dependent variable
psexpansionpt tmp;
0
% .... or the expansion point
psterm(tmp,6);
17
----
45
% select 6th term
tmp1:=ps(1/(cos x)^2,x,0);
2 2 4 17 6 62 8 9
tmp1 := {1 + x + (---)*x + (----)*x + (-----)*x + O(x )}
3 45 315
tmp1-tmp;
9
{1 + O(x )}
% sec^2-tan^2
ps(int(e^(x^2),x),x,0);
1 3 1 5 1 7 9
{x + (---)*x + (----)*x + (----)*x + O(x )}
3 10 42
% integrator not called
tmp:=ps(1/(y+x),x,0);
1 1 1 2 1 3 1 4
tmp := {(---) - (----)*x + (----)*x - (----)*x + (----)*x -
y 2 3 4 5
y y y y
1 5 1 6 1 7 1 8 9
(----)*x + (----)*x - (----)*x + (----)*x + O(x )}
6 7 8 9
y y y y
ps(int(tmp,y),x,0);
1 1 2 1 3 1 4
{log(y) + (---)*x - (------)*x + (------)*x - (------)*x +
y 2 3 4
2*y 3*y 4*y
1 5 1 6 1 7 1 8 9
(------)*x - (------)*x + (------)*x - (------)*x + O(x )}
5 6 7 8
5*y 6*y 7*y 8*y
% integrator called on each coefficient
pscompose(cos!-series,sin!-series);
1 2 5 4 37 6 457 8 9
{1 - (---)*x + (----)*x - (-----)*x + (-------)*x + O(x )}
2 24 720 40320
% power series composition cos(sin(x)) again
cos!-sin!-series;
1 2 5 4 37 6 457 8 9
{1 - (---)*x + (----)*x - (-----)*x + (-------)*x + O(x )}
2 24 720 40320
% should be same as previous result
psfunction cos!-sin!-series;
cos(sin(x))
tmp:=ps(log x,x,1);
1 2 1 3 1 4
tmp := {(x - 1) - (---)*(x - 1) + (---)*(x - 1) - (---)*(x - 1) +
2 3 4
1 5 1 6 1 7
(---)*(x - 1) - (---)*(x - 1) + (---)*(x - 1) -
5 6 7
1 8 9
(---)*(x - 1) + O((x - 1) )}
8
tmp1:=pscompose(tmp, cos!-series);
1 2 1 4 1 6 17 8
tmp1 := { - (---)*x - (----)*x - (----)*x - (------)*x
2 12 45 2520
9
+ O(x )}
% power series composition of log(cos(x))
df(tmp1,x);
1 3 2 5 17 7 9
{ - x - (---)*x - (----)*x - (-----)*x + O(x )}
3 15 315
psreverse tan!-series;
1 3 1 5 1 7 9
{x - (---)*x + (---)*x - (---)*x + O(x )}
3 5 7
% should be series for atan y
atan!-series;
1 3 1 5 1 7 9
{x - (---)*x + (---)*x - (---)*x + O(x )}
3 5 7
tmp:=ps(e^x,x,0);
1 2 1 3 1 4 1 5
tmp := {1 + x + (---)*x + (---)*x + (----)*x + (-----)*x +
2 6 24 120
1 6 1 7 1 8 9
(-----)*x + (------)*x + (-------)*x + O(x )}
720 5040 40320
psreverse tmp;
1 2 1 3 1 4
{(x - 1) - (---)*(x - 1) + (---)*(x - 1) - (---)*(x - 1) +
2 3 4
1 5 1 6 1 7 1 8
(---)*(x - 1) - (---)*(x - 1) + (---)*(x - 1) - (---)*(x - 1)
5 6 7 8
9
+ O((x - 1) )}
% NB expansion of log y in powers of (y-1)
end;
(TIME: tps 800 870)