REDUCE 3.4.1, 15-Jul-92 ...
1:
(NUMERIC)
on errcont;
bounds (x,x=(1 .. 2));
1 .. 2
bounds (2*x,x=(1 .. 2));
2 .. 4
bounds (x**3,x=(1 .. 2));
- 1
------ .. 8
8
bounds (x*y,x=(1 .. 2),y=(-1 .. 0));
1
- 2 .. ---
2
bounds (x**3+y,x=(1 .. 2),y=(-1 .. 0));
- 9
------ .. 8
8
bounds (x**3/y,{x=(1 .. 2),y=(-1 .. -0.5)});
1
- 16 .. ---
4
bounds (x**3/y,x=(1 .. 2),y=(-1 .. -0.5));
1
- 16 .. ---
4
% unbounded expression (pole at y=0)
bounds (x**3/y,x=(1 .. 2),y=(-1 .. 0.5));
***** unbounded in range
on rounded;
bounds(e**x,x=(1 .. 2));
2.71828182846 .. 7.38905609893
bounds((1/2)**x,x=(1 .. 2));
0.5 .. 0.25
off rounded;
bounds(abs x,x=(1 .. 2));
1 .. 2
bounds(abs x,x=(-3 .. 2));
0 .. 3
bounds(abs x,x=(-3 .. -2));
2 .. 3
bounds(sin x,x=(1 .. 2));
- 1 .. 1
on rounded;
bounds(sin x,x=(1 .. 2));
0.841470984808 .. 1
bounds(sin x,x=(1 .. 10));
- 1 .. 1
bounds(sin x,x=(1001 .. 1002));
0.167266541974 .. 0.919990597586
bounds(log x,x=(1 .. 10));
0 .. 2.30258509299
bounds(tan x,x=(1 .. 1.1));
1.55740772465 .. 1.96475965725
bounds(cot x,x=(1 .. 1.1));
0.508968105239 .. 0.642092615934
bounds(asin x,x=(-0.6 .. 0.6));
- 0.643501108793 .. 0.643501108793
bounds(acos x,x=(-0.6 .. 0.6));
0.927295218002 .. 2.21429743559
bounds(sqrt(x),x=(1 .. 1.1));
1 .. 1.04880884817
bounds(x**(7/3),x=(1 .. 1.1));
1 .. 1.2490589397
bounds(x**y,x=(1 .. 1.1),y=(2 .. 4));
0.870336363636 .. 1.4641
off rounded;
% MINIMA (steepest descent)
% Rosenbrock function (minimum extremely hard to find).
fktn := 100*(x1^2-x2)^2 + (1-x1)^2;
4 2 2 2
FKTN := 100*X1 - 200*X1 *X2 + X1 - 2*X1 + 100*X2 + 1
num_min(fktn, x1=-1.2, x2=1, accuracy=6);
{0.000000218702240318,{X1=0.999532844964,X2=0.99906807244}}
% infinitely many local minima
num_min(sin(x)+x/5, x=1);
{ - 1.33422674663,{X= - 1.77215430279}}
% bivariate polynomial
num_min(x^4 + 3 x^2 * y + 5 y^2 + x + y, x=0.1, y=0.2);
{ - 0.832523282274,{X= - 0.889601609042,Y= - 0.33989805551}}
% ROOTS (non polynomial: damped Newton)
num_solve (cos x -x, x=0,accuracy=6);
*** precision increased to 13
{X=0.739085133385}
% automatically randomized starting point
num_solve (cos x -x,x, accuracy=6);
{X=0.739085134394}
% syntactical errors: forms do not evaluate to purely
% numerical values
num_solve (cos x -x, x=a);
***** A invalid as number
num_solve (cos x -a, x=0);
***** A invalid as number
***** error during function evaluation (e.g. singularity)
num_solve (sin x = 0, x=3);
*** precision increased to 13
{X=3.1415926533}
% blows up: no real solution exists
num_solve(sin x = 2, x=1);
***** Newton method does not converge
% solution in complex plane(only fond with complex starting point):
on complex;
*** Domain mode ROUNDED changed to COMPLEX-ROUNDED
num_solve(sin x = 2, x=1+i);
{X=1.5707963268 + 1.31695789692*I}
off complex;
*** Domain mode COMPLEX-ROUNDED changed to ROUNDED
% blows up for derivative 0 in starting point
num_solve(x^2-1, x=0);
***** zero divisor in quotient
***** error during function evaluation (e.g. singularity)
% succeeds because of perturbed starting point
num_solve(x^2-1, x=0.1);
{X=1.00000000643}
% bivariate equation system
num_solve({sin x=cos y, x + y = 1},{x=1,y=2});
{X= - 4.99778688329,Y=5.99778688329}
on evallhseqp;
% So both sides of equation evaluate.
sub(ws,{sin x=cos y, x + y = 1});
{0.959549703325=0.959549556645,1=1}
% INTEGRALS
num_int( x**2,x=(1 .. 2),accuracy=3);
2.33333333333
% critical function: almost flat line with one
% high narrow needle.
needle := 1/(10**-4 + x**2);
1
NEEDLE := --------------
2 1
X + -------
10000
num_int(needle,x=(-1 .. 1),accuracy=3);
312.165724458
% 312.16
num_int(exp(-x**2),x=(-10 .. 10),accuracy=3);
1.7724717458
% 1.772
num_int(exp(-x**2),x=(-10**2 .. 10**2));
*** ROUNDBF turned on to increase accuracy
1.74618555047
% 1.7461
off roundbf;
% cases with singularities
num_int(1/sqrt x ,x=(0 .. 1));
***** zero divisor in quotient
requested accuracy cannot be reached within iteration limit
critical area of function near to {X=0.0}
current error estimate: 0.00337429826955
1.99997531551
% 1.999
num_int(1/sqrt abs x ,x=(-1 .. 1));
***** zero divisor in quotient
requested accuracy cannot be reached within iteration limit
critical area of function near to {X=0.0}
current error estimate: 0.00870788028243
3.99992568283
% 3.999
% simple multidimensional integrals
num_int(x+y,x=(0 .. 1),y=(2 .. 3));
3.0
num_int(sin(x+y),x=(0 .. 1),y=(0 .. 1));
0.773147731572
% APPROXIMATION
%approximate sin x by a cubic polynomial
num_fit(sin x,{1,x,x**2,x**3},x=for i:=0:20 collect 0.1*i);
*** precision increased to 15
3 2
{ - 0.0847539695007*X - 0.134641944761*X + 1.06263064633*X
- 0.00519313406389,
{ - 0.00519313406389,1.06263064633, - 0.134641944761,
- 0.0847539695007}}
% approximate x**2 by a harmonic series in the interval [0,1]
num_fit(x**2,1 . for i:=1:5 join {sin(i*x), cos(i*x)},
x=for i:=0:10 collect i/10);
{ - 0.196187855271*SIN(5*X) + 0.874456227951*SIN(4*X)
- 0.38159923677*SIN(3*X) - 3.3562268088*SIN(2*X)
+ 5.34063539945*SIN(X) - 0.13327743733*COS(5*X)
+ 1.56208432179*COS(4*X) - 5.82407625714*COS(3*X)
+ 9.95627217794*COS(2*X) - 11.0565397235*COS(X) + 5.49553691049,
{5.49553691049,5.34063539945, - 11.0565397235, - 3.3562268088,9.9562
7217794, - 0.38159923677, - 5.82407625714,0.874456227951,1.56208432
179, - 0.196187855271, - 0.13327743733}}
% approximate a set of points by a polynomial
pts:=for i:=1 step 0.1 until 3 collect i$
vals:=for each p in pts collect (p+2)**3$
num_fit(vals,{1,x,x**2,x**3},x=pts);
3 2
{1.0*X + 5.99999999998*X + 12.0*X + 7.99999999998,{7.99999999998,12
.0,5.99999999998,1.0}}
first ws - (x+2)**3;
3 2
2.70006239589E-12*X - 0.0000000000166000546642*X
+ 0.0000000000329993810055*X - 0.0000000000205000461051
% ODE SOLUTION (Runge-Kutta)
depend(y,x);
% approximate y=y(x) with df(y,x)=2y in interval [0 : 5]
num_odesolve(df(y,x)=y,y=2,x=(0 .. 5),iterations=20);
{{0.0,2.0},
{0.25,2.56805083336},
{0.5,3.29744254135},
{0.75,4.23400003313},
{1.0,5.43656365675},
{1.25,6.98068591465},
{1.5,8.96337814026},
{1.75,11.5092053514},
{2.0,14.778112197},
{2.25,18.9754716714},
{2.5,24.3649879195},
{2.75,31.2852637657},
{3.0,40.1710738427},
{3.25,51.5806798292},
{3.5,66.2309039102},
{3.75,85.0421639903},
{4.0,109.196300053},
{4.25,140.210824675},
{4.5,180.034262576},
{4.75,231.168569021},
{5.0,296.826318159}}
% same with negative direction
num_odesolve(df(y,x)=y,y=2,x=(0 .. -5),iterations=20);
{{0.0,2.0},
{-0.25,1.55760156616},
{-0.5,1.21306131944},
{-0.75,0.944733105504},
{-1.0,0.735758882366},
{-1.25,0.573009593743},
{-1.5,0.446260320318},
{-1.75,0.34754788692},
{-2.0,0.27067056649},
{-2.25,0.210798449139},
{-2.5,0.164169997261},
{-2.75,0.127855722424},
{-3.0,0.0995741367451},
{-3.25,0.0775484156713},
{-3.5,0.0603947668512},
{-3.75,0.0470354917175},
{-4.0,0.036631277782},
{-4.25,0.0285284678218},
{-4.5,0.0222179930796},
{-4.75,0.0173033904088},
{-5.0,0.0134758940003}}
% giving a nice picture when plotted
num_odesolve(df(y,x)=1- x*y**2 ,y=0,x=(0 .. 4),iterations=20);
{{0.0,0.0},
{0.2,0.199600912185},
{0.4,0.393714914143},
{0.6,0.569482634317},
{0.8,0.710657687321},
{1.0,0.805480021865},
{1.2,0.852604290316},
{1.4,0.860563376499},
{1.6,0.842333333669},
{1.8,0.809992008198},
{2.0,0.772211952477},
{2.2,0.734163639954},
{2.4,0.69843323517},
{2.6,0.66601919664},
{2.8,0.637070047105},
{3.0,0.611341375875},
{3.2,0.588447372816},
{3.4,0.567985133961},
{3.6,0.549587947477},
{3.8,0.53294225579},
{4.0,0.517787833885}}
end;
Time: 48739 ms plus GC time: 2601 ms
Quitting