1% Demonstration of the REDUCE SOLVE package.
2
3on fullroots;   % To get complete solutions.
4
5% Simultaneous linear fractional equations.
6
7solve({(a*x+y)/(z-1)-3,y+b+z,x-y},{x,y,z});
8
9
10% Use of square-free factorization together with recursive use of
11% quadratic and binomial solutions.
12
13solve((x**6-x**3-1)*(x**5-1)**2*x**2);
14
15multiplicities!*;
16
17
18% A singular equation without and with a consistent inhomogeneous term.
19
20solve(a,x);
21
22solve(0,x);
23
24off solvesingular;
25
26solve(0,x);
27
28
29% Use of DECOMPOSE to solve high degree polynomials.
30
31solve(x**8-8*x**7+34*x**6-92*x**5+175*x**4-236*x**3+226*x**2-140*x+46);
32
33solve(x**8-88*x**7+2924*x**6-43912*x**5+263431*x**4-218900*x**3+
34           65690*x**2-7700*x+234,x);
35
36
37% Recursive use of inverses, including multiple branches of rational
38% fractional powers.
39
40solve(log(acos(asin(x**(2/3)-b)-1))+2,x);
41
42
43% Square-free factors that are unsolvable, being of fifth degree,
44% transcendental, or without a defined inverse.
45
46operator f;
47
48solve((x-1)*(x+1)*(x-2)*(x+2)*(x-3)*(x*log(x)-1)*(f(x)-1),x);
49
50multiplicities!*;
51
52
53% Factors with more than one distinct top-level kernel, the first factor
54% a cubic. (Cubic solution suppressed since it is too messy to be of
55% much use).
56
57off fullroots;
58
59solve((x**(1/2)-(x-a)**(1/3))*(acos x-acos(2*x-b))* (2*log x
60          -log(x**2+x-c)-4),x);
61
62on fullroots;
63
64% Treatment of multiple-argument exponentials as polynomials.
65
66solve(a**(2*x)-3*a**x+2,x);
67
68
69% A 12th degree reciprocal polynomial that is irreductible over the
70% integers, having a reduced polynomial that is also reciprocal.
71% (Reciprocal polynomials are those that have symmetric or antisymmetric
72% coefficient patterns.) We also demonstrate suppression of automatic
73% integer root extraction.
74
75solve(x**12-4*x**11+12*x**10-28*x**9+45*x**8-68*x**7+69*x**6-68*x**5+
7645*x**4-28*x**3+12*x**2-4*x+1);
77
78
79% The treatment of factors with non-unique inverses by introducing
80% unique new real or integer indeterminant kernels.
81
82solve((sin x-a)*(2**x-b)*(x**c-3),x);
83
84
85% Automatic restriction to principal branches.
86
87off allbranch;
88
89solve((sin x-a)*(2**x-b)*(x**c-3),x);
90
91
92% Regular system of linear equations.
93
94solve({2*x1+x2+3*x3-9,x1-2*x2+x3+2,3*x1+2*x2+2*x3-7}, {x1,x2,x3});
95
96
97% Underdetermined system of linear equations.
98
99on solvesingular;
100
101solve({x1-4*x2+2*x3+1,2*x1-3*x2-x3-5*x4+7,3*x1-7*x2+x3-5*x4+8},
102      {x1,x2,x3,x4});
103
104
105% Inconsistent system of linear equations.
106
107solve({2*x1+3*x2-x3-2,7*x1+4*x2+2*x3-8,3*x1-2*x2+4*x3-5},
108      {x1,x2,x3});
109
110
111% Overdetermined system of linear equations.
112
113solve({x1-x2+x3-12,2*x1+3*x2-x3-13,3*x2+4*x3-5,-3*x1+x2+4*x3+20},
114      {x1,x2,x3});
115
116
117% Degenerate system of linear equations.
118
119operator xx,yy;
120
121yy(1) := -a**2*b**3-3*a**2*b**2-3*a**2*b+a**2*(xx(3)-2)-a*b-a*c+a*(xx(2)
122         -xx(5))-xx(4)-xx(5)+xx(1)-1;
123
124yy(2) := -a*b**3-b**5+b**4*(-xx(4)-xx(5)+xx(1)-5)-b**3*c+b**3*(xx(2)
125         -xx(5)-3)+b**2*(xx(3)-1);
126
127yy(3) := -a*b**3*c-3*a*b**2*c-4*a*b*c+a*b*(-xx(4)-xx(5)+xx(1)-1)
128         +a*c*(xx(3)-1)-b**2*c-b*c**2+b*c*(xx(2)-xx(5));
129
130yy(4) := -a**2-a*c+a*(xx(2)-xx(4)-2*xx(5)+xx(1)-1)-b**4-b**3*c-3*b**3
131         -3*b**2*c-2*b**2-2*b*c+b*(xx(3)-xx(2)-xx(4)+xx(1)-2)
132         +c*(xx(3)-1);
133
134yy(5) := -2*a-3*b**3-9*b**2-11*b-2*c+3*xx(3)+2*xx(2)-xx(4)-3*xx(5)+xx(1)
135         -4;
136
137soln  :=  solve({yy(1),yy(2),yy(3),yy(4),yy(5)},
138                {xx(1),xx(2),xx(3),xx(4),xx(5)});
139
140for i  :=  1:5 do xx(i) := part(soln,1,i,2);
141
142for i  :=  1:5 do write yy(i);
143
144
145%  Single equations liftable to polynomial systems.
146
147solve ({a*sin x + b*cos x},{x});
148
149solve ({a*sin(x+1) + b*cos(x+1)},{x});
150
151% Intersection of 2 curves: system with a free parameter.
152
153solve ({sqrt(x^2 + y^2)=r,0=sqrt(x)+ y**3-1},{x,y,r});
154
155solve ({e^x - e^(1/2 * x) - 7},{x});
156
157% Generally not liftable.
158
159   % variable inside and outside of sin.
160
161   solve({sin x + x - 1/2},{x});
162
163   % Variable inside and outside of exponential.
164
165   solve({e^x - x**2},{x});
166
167   % Variable inside trigonometrical functions with different forms.
168
169   solve ({a*sin(x+1) + b*cos(x+2)},{x});
170
171   % Undetermined exponents.
172
173   solve({x^a - 2},{x});
174
175
176% Example taken from M.L. Griss, ACM Trans. Math. Softw. 2 (1976) 1.
177
178e1 := x1 - l/(3*k)$
179
180e2 := x2 - 1$
181
182e3 := x3 - 35*b6/(6*l)*x4 + 33*b11/(2*l)*x6 - 715*b15/(14*l)*x8$
183
184e4 := 14*k/(3*l)*x1 - 7*b4/(2*l)*x3 + x4$
185
186e5 := x5 - 891*b11/(40*l)*x6 +3861*b15/(56*l)*x8$
187
188e6 := -88*k/(15*l)*x1 + 22*b4/(5*l)*x3 - 99*b9/(8*l)*x5 +x6$
189
190e7 := -768*k/(5005*b13)*x1 + 576*b4/(5005*b13)*x3 -
191      324*b9/(1001*b13)*x5 + x7 - 16*l/(715*b13)*x8$
192
193e8 := 7*l/(143*b15)*x1 + 49*b6/(429*b15)*x4 - 21*b11/(65*b15)*x6 +
194      x8 - 7*b2/(143*b15)$
195
196solve({e1,e2,e3,e4,e5,e6,e7,e8},{x1,x2,x3,x4,x5,x6,x7,x8});
197
198
199f1 := x1 - x*x2 - y*x3 + 1/2*x**2*x4 + x*y*x5 + 1/2*y**2*x6 +
200      1/6*x**3*x7 + 1/2*x*y*(x - y)*x8 - 1/6*y**3*x9$
201
202f2 := x1 - y*x3 + 1/2*y**2*x6 - 1/6*y**3*x9$
203
204f3 := x1 + y*x2 - y*x3 + 1/2*y**2*x4 - y**2*x5 + 1/2*y**2*x6 +
205      1/6*y**3*x7 + 1/2*y**3*x8 - 1/6*y**3*x9$
206
207f4 := x1 + (1 - x)*x2 - x*x3 + 1/2*(1 - x)**2*x4 - y*(1 - x)*x5 +
208      1/2*y**2*x6 + 1/6*(1 - x)**3*x7 + 1/2*y*(1 - x - y)*(1 - x)*x8
209      - 1/6*y**3*x9$
210
211f5 := x1 + (1 - x - y)*x2 + 1/2*(1 - x - y)**2*x4 +
212      1/6*(1 - x - y)**3*x7$
213
214f6 := x1 + (1 - x - y)*x3 + 1/2*(1 - x - y)*x6 +
215      1/6*(1 - x - y)**3*x9$
216
217f7 := x1 - x*x2 + (1 - y)*x3 + 1/2*x*x4 - x*(1 - y)*x5 +
218      1/2*(1 - y)**2*x6 - 1/6*x**3*x7 + 1/2*x*(1 - y)*(1 - y + x)*x8
219      + 1/6*(1-y)**3*x9$
220
221f8 := x1 - x*x2 + x*x3 + 1/2*x**2*x4 - x**2*x5 + 1/2*x**2*x6 +
222      1/6*x**3*x7 - 1/2*x**3*x8 + 1/6*x**3*x9$
223
224f9 := x1 - x*x2 + 1/2*x**2*x4 + 1/6*x**3*x7$
225
226solve({f1,f2,f3,f4,f5,f6,f7,f8,f9},{x1,x2,x3,x4,x5,x6,x7,x8,x9});
227
228solve({f1 - 1,f2,f3,f4,f5,f6,f7,f8,f9},{x1,x2,x3,x4,x5,x6,x7,x8,x9});
229
230
231% The following examples were discussed in Char, B.W., Fee, G.J.,
232% Geddes, K.O., Gonnet, G.H., Monagan, M.B., Watt, S.M., "On the
233% Design and Performance of the Maple System", Proc. 1984 Macsyma
234% Users' Conference, G.E., Schenectady, NY, 1984, 199-219.
235
236% Problem 1.
237
238solve({ -22319*x0+25032*x1-83247*x2+67973*x3+54189*x4
239       -67793*x5+81135*x6+22293*x7+27327*x8+96599*x9-15144,
240       79815*x0+37299*x1-28495*x2-52463*x3+25708*x4 -55333*x5-
241       2742*x6+83127*x7-29417*x8-43202*x9+93314, -29065*x0-77803*x1-
242       49717*x2-64748*x3-68324*x4 -50162*x5-64222*x6-
243       4716*x7+30737*x8+22971*x9+90348, 62470*x0+59658*x1-
244       46120*x2+58376*x3-28208*x4 -74506*x5+28491*x6+21099*x7+29149*x8-
245       20387*x9+36254, -98233*x0-26263*x1-63227*x2+34307*x3+92294*x4
246       +10148*x5+3192*x6+24044*x7-83764*x8-1121*x9+13871,
247       -20427*x0+62666*x1+27330*x2-78670*x3+9036*x4 +56024*x5-4525*x6-
248       50589*x7-62127*x8-32846*x9+38466,
249       -85609*x0+5424*x1+86992*x2+59651*x3-60859*x4 -55984*x5-
250       6061*x6+44417*x7+92421*x8+6701*x9-9459,
251       -68255*x0+19652*x1+92650*x2-93032*x3-30191*x4 -31075*x5-
252       89060*x6+12150*x7-78089*x8-12462*x9+1027, 55526*x0-
253       91202*x1+91329*x2-25919*x3-98215*x4 +30554*x5+913*x6-
254       35751*x7+17948*x8-58850*x9+66583, 40612*x0+84364*x1-
255       83317*x2+10658*x3+37213*x4 +50489*x5+72040*x6-
256       21227*x7+60772*x8+95114*x9-68533});
257
258solve({ -22319*x0+25032*x1-83247*x2+67973*x3+54189*x4
259        -67793*x5+81135*x6+22293*x7+27327*x8+96599*x9-15144,
260        79815*x0+37299*x1-28495*x2-52463*x3+25708*x4 -55333*x5-
261        2742*x6+83127*x7-29417*x8-43202*x9+93314, -29065*x0-77803*x1-
262        49717*x2-64748*x3-68324*x4 -50162*x5-64222*x6-
263        4716*x7+30737*x8+22971*x9+90348, 62470*x0+59658*x1-
264        46120*x2+58376*x3-28208*x4-74506*x5+28491*x6+21099*x7+29149*x8-
265        20387*x9+36254,-98233*x0-26263*x1-63227*x2+34307*x3+92294*x4
266        +10148*x5+3192*x6+24044*x7-83764*x8-1121*x9+13871,
267        -20427*x0+62666*x1+27330*x2-78670*x3+9036*x4 +56024*x5-4525*x6-
268        50589*x7-62127*x8-32846*x9+38466,
269        -85609*x0+5424*x1+86992*x2+59651*x3-60859*x4 -55984*x5-
270        6061*x6+44417*x7+92421*x8+6701*x9-9459,
271        -68255*x0+19652*x1+92650*x2-93032*x3-30191*x4 -31075*x5-
272        89060*x6+12150*x7-78089*x8-12462*x9+1027, 55526*x0-
273        91202*x1+91329*x2-25919*x3-98215*x4 +30554*x5+913*x6-
274        35751*x7+17948*x8-58850*x9+66583, 40612*x0+84364*x1-
275        83317*x2+10658*x3+37213*x4 +50489*x5+72040*x6-
276        21227*x7+60772*x8+95114*x9-68533});
277
278
279% The next two problems give the current routines some trouble and
280% have therefore been commented out.
281
282% Problem 2.
283
284comment
285solve({ 81*x30-96*x21-45, -36*x4+59*x29+26,
286       -59*x26+5*x3-33, -81*x19-92*x23-21*x17-9, -46*x29-
287       13*x22+22*x24+83, 47*x4-47*x14-15*x26-40, 83*x30+70*x17+56*x10-
288       31, 10*x27-90*x9+52*x21+52, -33*x20-97*x26+20*x6-76,
289       97*x16+41*x8-13*x12+66, 16*x16-52*x10-73*x28+49, -28*x1-53*x24-
290       x27-67, -22*x26-29*x24+73*x10+8, 88*x18+61*x19-98*x9-55, 99*x28-
291       91*x26+26*x21-95, -6*x18+25*x7-77*x2+99, 28*x13-50*x17-52*x14-64,
292       -50*x20+26*x11+93*x2+77, -70*x8+74*x19-94*x26+86, -18*x18-2*x16-
293       79*x23+91, 36*x26-13*x11-53*x25-5, 10*x7+57*x16-85*x10-14,
294       -3*x27+44*x4+52*x22-1, 21*x11+20*x25-30*x4-83, 70*x2-97*x19-
295       41*x26-50, -51*x8+95*x12-85*x26+45, 83*x30+41*x12+50*x2+53,
296       -4*x26+69*x8-58*x5-95, 59*x27-78*x30-66*x23+16, -10*x20-36*x11-
297       60*x1-59});
298
299
300% Problem 3.
301comment
302solve({ 115*x40+566*x41-378*x42+11401086415/6899901,
303       560*x0-45*x1-506*x2-11143386403/8309444, -621*x1-
304       328*x2+384*x3+1041841/64675, -856*x2+54*x3+869*x4-41430291/24700,
305       596*x3-608*x4-560*x5-10773384/11075,
306       -61*x4+444*x5+924*x6+4185100079/11278780, 67*x5-95*x6-
307       682*x7+903866812/6618863, 196*x6+926*x7-930*x8-
308       2051864151/2031976, -302*x7-311*x8-890*x9-14210414139/27719792,
309       121*x8-781*x9-125*x10-4747129093/39901584, 10*x9+555*x10-
310       912*x11+32476047/3471829, -151*x38+732*x39-
311       397*x40+327281689/173242, 913*x10-259*x11-982*x12-
312       18080663/5014020, 305*x11+9*x12-357*x13+1500752933/1780680,
313       179*x12-588*x13+665*x14+8128189/51832, 406*x13+843*x14-
314       833*x15+201925713/97774, 107*x14+372*x15+505*x16-
315       5161192791/3486415, 720*x15-212*x16+607*x17-31529295571/7197760,
316       951*x16-685*x17+148*x18+1034546543/711104, -654*x17-
317       899*x18+543*x19+1942961717/1646560,
318       -448*x18+673*x19+702*x20+856422818/1286375, 396*x19-
319       196*x20+218*x21-4386267866/21303625, -233*x20-796*x21-373*x22-
320       85246365829/57545250, 921*x21-368*x22+730*x23-
321       93446707622/51330363, -424*x22+378*x23+727*x24-
322       6673617931/3477462, -633*x23+565*x24-208*x25+8607636805/4092942,
323       971*x24+170*x25-865*x26-25224505/18354, 937*x25+333*x26-463*x27-
324       339307103/1025430, 494*x26-8*x27-50*x28+57395804/34695,
325       530*x27+631*x28-193*x29-8424597157/680022,
326       -435*x28+252*x29+916*x30+196828511/19593, 327*x29+403*x30-
327       845*x31+8458823325/5927971, 246*x30+881*x31-
328       394*x32+13624765321/156546826, 946*x31+169*x32-43*x33-
329       53594199271/126093183, -146*x32+503*x33-
330       363*x34+66802797635/15234909, -132*x33-
331       686*x34+376*x35+8167530636/902635, -38*x34-188*x35-
332       583*x36+1814153743/1124240, 389*x35+562*x36-688*x37-
333       12251043951/5513560, -769*x37-474*x38-89*x39-2725415872/1235019,
334       -625*x36-122*x37+468*x38+7725682775/4506736,
335       839*x39+936*x40+703*x41+1912091857/1000749,
336       -314*x41+102*x42+790*x43+7290073150/8132873, -905*x42-
337       454*x43+524*x44-10110944527/4538233, 379*x43+518*x44-328*x45-
338       2071620692/519645, 284*x44-979*x45+690*x46-915987532/16665,
339       198*x45-650*x46-763*x47+548801657/11220, 974*x46+12*x47+410*x48-
340       3831097561/51051, -498*x47-135*x48-230*x49-18920705/9282,
341       665*x48+156*x49+34*x0-27714736/156585, -519*x49-366*x0-730*x1-
342       2958446681/798985});
343
344
345% Problem 4.
346
347% This one needs the Cramer code --- it takes forever otherwise.
348
349on cramer;
350
351solve({ -b*k8/a+c*k8/a, -b*k11/a+c*k11/a,
352       -b*k10/a+c*k10/a+k2,
353        -k3-b*k9/a+c*k9/a, -b*k14/a+c*k14/a, -b*k15/a+c*k15/a,
354        -b*k18/a+c*k18/a-k2, -b*k17/a+c*k17/a, -b*k16/a+c*k16/a+k4,
355        -b*k13/a+c*k13/a-b*k21/a+c*k21/a+b*k5/a-c*k5/a,
356        b*k44/a-c*k44/a, -b*k45/a+c*k45/a, -b*k20/a+c*k20/a,
357        -b*k44/a+c*k44/a, b*k46/a-c*k46/a,
358        b**2*k47/a**2-2*b*c*k47/a**2+c**2*k47/a**2,
359        k3, -k4, -b*k12/a+c*k12/a-a*k6/b+c*k6/b,
360        -b*k19/a+c*k19/a+a*k7/c-b*k7/c, b*k45/a-c*k45/a,
361        -b*k46/a+c*k46/a, -k48+c*k48/a+c*k48/b-c**2*k48/(a*b),
362        -k49+b*k49/a+b*k49/c-b**2*k49/(a*c), a*k1/b-c*k1/b,
363        a*k4/b-c*k4/b, a*k3/b-c*k3/b+k9, -k10+a*k2/b-c*k2/b,
364        a*k7/b-c*k7/b, -k9, k11, b*k12/a-c*k12/a+a*k6/b-c*k6/b,
365        a*k15/b-c*k15/b, k10+a*k18/b-c*k18/b,
366        -k11+a*k17/b-c*k17/b, a*k16/b-c*k16/b,
367        -a*k13/b+c*k13/b+a*k21/b-c*k21/b+a*k5/b-c*k5/b,
368        -a*k44/b+c*k44/b, a*k45/b-c*k45/b,
369        a*k14/c-b*k14/c+a*k20/b-c*k20/b, a*k44/b-c*k44/b,
370        -a*k46/b+c*k46/b, -k47+c*k47/a+c*k47/b-c**2*k47/(a*b),
371        a*k19/b-c*k19/b, -a*k45/b+c*k45/b, a*k46/b-c*k46/b,
372        a**2*k48/b**2-2*a*c*k48/b**2+c**2*k48/b**2,
373        -k49+a*k49/b+a*k49/c-a**2*k49/(b*c), k16, -k17,
374        -a*k1/c+b*k1/c, -k16-a*k4/c+b*k4/c, -a*k3/c+b*k3/c,
375        k18-a*k2/c+b*k2/c, b*k19/a-c*k19/a-a*k7/c+b*k7/c,
376        -a*k6/c+b*k6/c, -a*k8/c+b*k8/c, -a*k11/c+b*k11/c+k17,
377        -a*k10/c+b*k10/c-k18, -a*k9/c+b*k9/c,
378        -a*k14/c+b*k14/c-a*k20/b+c*k20/b,
379        -a*k13/c+b*k13/c+a*k21/c-b*k21/c-a*k5/c+b*k5/c,
380        a*k44/c-b*k44/c, -a*k45/c+b*k45/c, -a*k44/c+b*k44/c,
381        a*k46/c-b*k46/c, -k47+b*k47/a+b*k47/c-b**2*k47/(a*c),
382        -a*k12/c+b*k12/c, a*k45/c-b*k45/c, -a*k46/c+b*k46/c,
383        -k48+a*k48/b+a*k48/c-a**2*k48/(b*c),
384        a**2*k49/c**2-2*a*b*k49/c**2+b**2*k49/c**2, k8, k11, -k15,
385        k10-k18, -k17, k9, -k16, -k29, k14-k32, -k21+k23-k31,
386        -k24-k30, -k35, k44, -k45, k36, k13-k23+k39, -k20+k38,
387        k25+k37, b*k26/a-c*k26/a-k34+k42, -2*k44, k45, k46,
388        b*k47/a-c*k47/a, k41, k44, -k46, -b*k47/a+c*k47/a,
389        k12+k24, -k19-k25, -a*k27/b+c*k27/b-k33, k45, -k46,
390        -a*k48/b+c*k48/b, a*k28/c-b*k28/c+k40, -k45, k46,
391        a*k48/b-c*k48/b, a*k49/c-b*k49/c, -a*k49/c+b*k49/c,
392        -k1, -k4, -k3, k15, k18-k2, k17, k16, k22, k25-k7,
393        k24+k30, k21+k23-k31, k28, -k44, k45, -k30-k6, k20+k32,
394        k27+b*k33/a-c*k33/a, k44, -k46, -b*k47/a+c*k47/a, -k36,
395        k31-k39-k5, -k32-k38, k19-k37, k26-a*k34/b+c*k34/b-k42,
396        k44, -2*k45, k46, a*k48/b-c*k48/b, a*k35/c-b*k35/c-k41,
397        -k44, k46, b*k47/a-c*k47/a, -a*k49/c+b*k49/c, -k40, k45,
398        -k46, -a*k48/b+c*k48/b, a*k49/c-b*k49/c, k1, k4, k3, -k8,
399        -k11, -k10+k2, -k9, k37+k7, -k14-k38, -k22, -k25-k37, -k24+k6,
400        -k13-k23+k39, -k28+b*k40/a-c*k40/a, k44, -k45, -k27, -k44,
401        k46, b*k47/a-c*k47/a, k29, k32+k38, k31-k39+k5, -k12+k30,
402        k35-a*k41/b+c*k41/b, -k44, k45, -k26+k34+a*k42/c-b*k42/c,
403        k44, k45, -2*k46, -b*k47/a+c*k47/a, -a*k48/b+c*k48/b,
404        a*k49/c-b*k49/c, k33, -k45, k46, a*k48/b-c*k48/b,
405        -a*k49/c+b*k49/c },
406       {k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14,
407        k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26,
408        k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38,
409        k39, k40, k41, k42, k43, k44, k45, k46, k47, k48, k49});
410
411off cramer;
412
413% Problem 5.
414
415solve ({2*a3*b3+a5*b3+a3*b5, a5*b3+2*a5*b5+a3*b5,
416        a5*b5, a2*b2, a4*b4, a5*b1+b5+a4*b3+a3*b4,
417        a5*b3+a5*b5+a3*b5+a3*b3, a0*b2+b2+a4*b2+a2*b4+c2+a2*b0+a2*b1,
418        a0*b0+a0*b1+a0*b4+a3*b2+b0+b1+b4+a4*b0+a4*b1+a2*b5+a4*b4+c1+c4
419        +a5*b2+a2*b3+c0,
420        -1+a3*b0+a0*b3+a0*b5+a5*b0+b3+b5+a5*b4+a4*b3+a4*b5+a3*b4+a5*b1
421        +a3*b1+c3+c5,
422        b4+a4*b1, a5*b3+a3*b5, a2*b1+b2, a4*b5+a5*b4, a2*b4+a4*b2,
423        a0*b5+a5*b0+a3*b4+2*a5*b4+a5*b1+b5+a4*b3+2*a4*b5+c5,
424        a4*b0+2*a4*b4+a2*b5+b4+a4*b1+a5*b2+a0*b4+c4,
425        c3+a0*b3+2*b3+b5+a4*b3+a3*b0+2*a3*b1+a5*b1+a3*b4,
426        c1+a0*b1+2*b1+a4*b1+a2*b3+b0+a3*b2+b4});
427
428
429% Problem 6.
430
431solve({2*a3*b3+a5*b3+a3*b5, a5*b3+2*a5*b5+a3*b5,
432       a4*b4, a5*b3+a5*b5+a3*b5+a3*b3, b1, a3*b3, a2*b2, a5*b5,
433       a5*b1+b5+a4*b3+a3*b4, a0*b2+b2+a4*b2+a2*b4+c2+a2*b0+a2*b1,
434       b4+a4*b1, b3+a3*b1, a5*b3+a3*b5, a2*b1+b2, a4*b5+a5*b4,
435       a2*b4+a4*b2, a0*b0+a0*b1+a0*b4+a3*b2+b0+b1+b4+a4*b0+a4*b1
436       +a2*b5+a4*b4+c1+c4+a5*b2+a2*b3+c0,-1+a3*b0+a0*b3+a0*b5+a5*b0
437       +b3+b5+a5*b4+a4*b3+a4*b5+a3*b4+a5*b1+a3*b1+c3+c5,
438       a0*b5+a5*b0+a3*b4+2*a5*b4+a5*b1+b5+a4*b3+2*a4*b5+c5,
439       a4*b0+2*a4*b4+a2*b5+b4+a4*b1+a5*b2+a0*b4+c4,
440       c3+a0*b3+2*b3+b5+a4*b3+a3*b0+2*a3*b1+a5*b1+a3*b4,
441       c1+a0*b1+2*b1+a4*b1+a2*b3+b0+a3*b2+b4});
442
443% Example cited by Bruno Buchberger
444%        in R.Janssen: Trends in Computer Algebra,
445%     Springer, 1987
446% Geometry of a simple robot,
447%   l1,l2   length of arms
448%   ci,si   cos and sin of rotation angles
449
450
451solve( { c1*c2 -cf*ct*cp + sf*sp,
452         s1*c2 - sf*ct*cp - cf*sp,
453         s2 + st*cp,
454         -c1*s2 - cf*ct*sp + sf*cp,
455         -s1*s2 + sf*ct*sp - cf*cp,
456         c2 - st*sp,
457         s1 - cf*st,
458         -c1 - sf*st,
459         ct,
460         l2*c1*c2 - px,
461         l2*s1*c2 - py,
462         l2*s2 + l1 - pz,
463         c1**2 + s1**2 -1,
464         c2**2 + s2**2 -1,
465         cf**2 + sf**2 -1,
466         ct**2 + st**2 -1,
467         cp**2 + sp**2 -1},
468      {c1,c2,s1,s2,py,cf,ct,cp,sf,st,sp});
469
470% Steady state computation of a prototypical chemical
471% reaction network (the "Edelstein" network)
472
473solve(
474 { alpha * c1 - beta * c1**2 - gamma*c1*c2 + epsilon*c3,
475   -gamma*c1*c2 + (epsilon+theta)*c3 -eta *c2,
476   gamma*c1*c2 + eta*c2 - (epsilon+theta) * c3},
477  {c3,c2,c1});
478
479solve(
480{( - 81*y1**2*y2**2 + 594*y1**2*y2 - 225*y1**2 + 594*y1*y2**2 - 3492*
481y1*y2 - 750*y1 - 225*y2**2 - 750*y2 + 14575)/81,
482( - 81*y2**2*y3**2 + 594*y2**2*y3 - 225*y2**2 + 594*y2*y3**2 - 3492*
483y2*y3 - 750*y2 - 225*y3**2 - 750*y3 + 14575)/81,
484( - 81*y1**2*y3**2 + 594*y1**2*y3 - 225*y1**2 + 594*y1*y3**2 - 3492*
485y1*y3 - 750*y1 - 225*y3**2 - 750*y3 + 14575)/81,
486(2*(81*y1**2*y2**2*y3 + 81*y1**2*y2*y3**2 - 594*y1**2*y2*y3 - 225*y1
487**2*y2 - 225*y1**2*y3 + 1650*y1**2 + 81*y1*y2**2*y3**2 - 594*y1*
488y2**2*y3 - 225*y1*y2**2 - 594*y1*y2*y3**2 + 2592*y1*y2*y3 + 2550
489*y1*y2 - 225*y1*y3**2 + 2550*y1*y3 - 3575*y1 - 225*y2**2*y3 +
4901650*y2**2 - 225*y2*y3**2 + 2550*y2*y3 - 3575*y2 + 1650*y3**2 -
4913575*y3 - 30250))/81}, {y1,y2,y3});
492
493% Another nice nonlinear system.
494
495solve({y=x+t^2,x=y+u^2},{x,y,u,t});
496
497% Example from Stan Kameny (relation between Gamma function values)
498%   containing surds in the coefficients.
499
500solve({x54=x14/4,x54*x34=sqrt pi/sqrt 2*x32,x32=x12/2,
501       x12=sqrt pi, x14*x34=pi*sqrt 2});
502
503% A system given by J. Hietarinta with complex coefficients.
504
505on complex;
506
507apu := {2*a - a6,2*b*c3 - 1,i - 2*x + 1,2*x**2 - 2*x + 1,n1 + 1}$
508
509solve apu;
510
511clear apu;
512
513off complex;
514
515% a trivial system which led to a wrong result:
516
517{a**2*b - a*b**2 + 1, a**2*b + a*b**2 - 1}$
518
519solve ws;
520
521% also communicated by Jarmo Hietarinta
522
523% More examples that can now be solved.
524
525solve({e^(x+y)-1,x-y},{x,y});
526
527solve({e^(x+y)+sin x,x-y},{x,y}); % no algebraic solution exists.
528
529solve({e^(x+y)-1,x-y**2},{x,y});
530
531solve(e^(y^2) * e^y -1,y);
532
533solve(e^(y^2 +y)-1,y);
534
535solve(e^(y^2)-1,y);
536
537solve(e^(y^2+1)-1,y);
538
539solve({e^(x+y+z)-1,x-y**2=1,x**2-z=2},{x,y,z});
540
541solve(e^(y^4+3y^2+y)-1,y);
542
543% Transcendental equations proposed by Roger Germundsson
544% <roger@isy.liu.se>
545
546eq1 := 2*asin(x) + asin(2*x) - PI/2;
547eq2 := 2*asin(x) - acos(3*x);
548eq3 := acos(x) - atan(x);
549eq4 := acos(2*x**2 - 4*x -x) - 2*asin(x);
550eq5 := 2*atan(x) - atan( 2*x/(1-x**2) );
551
552sol1 := solve(eq1,x);
553sol2 := solve(eq2,x);
554sol3 := solve(eq3,x);
555sol4 := solve(eq4,x);
556sol5 := solve(eq5,x);   % This solution should be the open interval
557			% (-1,1).
558
559% Example 52 of M. Wester: the function has no real zero although
560%  REDUCE 3.5 and Maple tend to return 3/4.
561
562if solve(sqrt(x^2 +1) - x +2,x) neq {} then rederr "Illegal result";
563
564% Using a root_of expression as an algebraic number.
565
566solve(x^5 - x - 1,x);
567
568w:=rhs first ws;
569
570w^5;
571
572w^5-w;
573
574clear w;
575
576% The following examples come from Daniel Lichtblau of WRI and were
577% communicated by Laurent.Bernardin from ETH Zuerich.
578
579solve(x-Pi/2 = cos(x+Pi),x);
580
581solve(exp(x^2+x+2)-1,x);
582
583solve(log(sqrt(1+z)/sqrt(z-1))=x,z);
584
585solve({exp(x+3*y-2)=7,3^(2*x-y+4)=2},{x,y});
586
587solve(a*3^(c*t)+b*3^((c+a)*t),t);
588
589solve(log(x+sqrt(x^2+a))=b,{x});
590
591solve(z=log(w)/log(2)+w^2,w);
592
593solve(w*2^(w^2)=5,w);
594
595solve(log(x/y)=1/y^2*(x+(1/x)),y);
596
597solve(exp(z)=w*z^(-n),z);
598
599solve(-log(3)+log(2+y/3)/2-log(y/3)/2=(-I)/2*Pi,y);
600
601solve(-log(x)-log(y/x)/2+log(2+y/x)/2=(-3*I)/2*Pi,y);
602
603solve((I+1)*log(x)+(3*I+3)*log(x+3)=7,x);
604
605solve(x+sqrt(x)=1,x);
606
607solve({cos(1/5+alpha+x)=5,cos(2/5+alpha-x)=6},{alpha,x});
608
609end;
610