/usr/share/openturns/validation/AbdoRackwitz.txt is in openturns-validation 1.5-7build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | > restart:
> with(LinearAlgebra):
> abs_e:=proc(x)
> if evalf(x) < -0.0001 then
> -x
> else
> if evalf(x) > 0.0001 then
> x
> else
> x*x/0.0001
> fi:
> fi:
> end:
> G:=proc(u)
> local G1,G2;
> G1:=2-u[2]+exp(-0.1*u[1]^2)+(0.2*u[2])^4;
> G2:=4.5-u[1]*u[2];
> (G1+G2+abs_e(evalf(G1-G2))/2)
> end;
> gradG:=proc(u)
> local x;
> x:=<x1,x2>;
> subs(x1=u[1],x2=u[2],<diff(G(x),x1),diff(G(x),x2)>)
> end;
G := proc(u)
local G1, G2;
G1 := 2 - u[2] + exp(-0.1*u[1]^2) + 0.2^4*u[2]^4;
G2 := 4.5 - u[1]*u[2];
G1 + G2 + 1/2*abs_e(evalf(G1 - G2))
end proc
gradG := proc(u)
local x;
x := <x1, x2>;
subs(x1 = u[1], x2 = u[2],
<diff(G(x), x1), diff(G(x), x2)>)
end proc
> u:=<1.,1.>;
> lambda:=0;
> print(evalf([u, lambda, G(u), gradG(u)]));
> for i from 1 to 20 do
>
> lambda:=evalf((G(u)-Transpose(u).gradG(u))/(Transpose(gradG(u)).gradG(
> u)));
> u:=evalf(-lambda.gradG(u));
> print([u, lambda, G(u), gradG(u)]);
> od:
[1.]
u := [ ]
[1.]
lambda := 0
Error, (in abs_e) cannot determine if this expression is true or
false: -1.*x2+exp(-.1*x1^2)+.16e-2*x2^4+x1*x2 < 2.4999
Error, (in abs_e) cannot determine if this expression is true or
false: -1.*x2+exp(-.1*x1^2)+.16e-2*x2^4+x1*x2 < 2.4999
> gradG(<a,b>);
Error, (in PiecewiseTools:-Convert) unable to convert
> x(3,4);
4
>
|