1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.hipparchus.optim.nonlinear.vector.constrained;
18
19 import org.hipparchus.linear.Array2DRowRealMatrix;
20 import org.hipparchus.linear.ArrayRealVector;
21 import org.hipparchus.linear.RealMatrix;
22 import org.hipparchus.linear.RealVector;
23
24 public class HockSchittkowskiFunction72 extends TwiceDifferentiableFunction {
25
26 @Override
27 public int dim() {
28 return 4;
29 }
30
31 @Override
32 public double value(RealVector x) {
33 double x1 = x.getEntry(0);
34 double x2 = x.getEntry(1);
35 double x3 = x.getEntry(2);
36 double x4 = x.getEntry(3);
37
38
39 return 1+x1+x2+x3+x4;
40 }
41
42 @Override
43 public RealVector gradient(RealVector x) {
44 RealVector grad=new ArrayRealVector(x.getDimension());
45
46 grad.setEntry(0,1.0);
47 grad.setEntry(1,1.0);
48 grad.setEntry(2,1.0);
49 grad.setEntry(3,1.0);
50
51 return grad;
52 }
53
54 @Override
55 public RealMatrix hessian(RealVector x) {
56 RealMatrix h=new Array2DRowRealMatrix(x.getDimension(),x.getDimension());
57
58 h.setEntry(0,0, 0);
59 h.setEntry(0,1, 0);
60 h.setEntry(0,2, 0);
61 h.setEntry(0,3, 0);
62
63
64 h.setEntry(1,0, 0);
65 h.setEntry(1,1, 0);
66 h.setEntry(1,2, 0);
67 h.setEntry(1,3, 0);
68
69
70 h.setEntry(2,0, 0);
71 h.setEntry(2,1, 0);
72 h.setEntry(2,2,0);
73 h.setEntry(2,3, 0);
74
75
76 h.setEntry(3,0, 0);
77 h.setEntry(3,1, 0);
78 h.setEntry(3,2, 0.0);
79 h.setEntry(3,3, 0);
80
81
82
83
84
85 return h;
86 }
87
88 }