Class MatchMethodJacobian
- java.lang.Object
-
- cern.accsoft.steering.jmad.domain.result.match.methods.AbstractMatchMethod
-
- cern.accsoft.steering.jmad.domain.result.match.methods.MatchMethodJacobian
-
- All Implemented Interfaces:
MatchMethod
public class MatchMethodJacobian extends AbstractMatchMethod
The JACOBIAN command minimises the penalty function calculating the Jacobian and solving the linear problem. A QR or LQ decomposition is performed when the system is over or under-determined. Before starting the matching routine two optional transformations (COOL and RANDOM) are performed. JACOBIAN,CALLS=integer,TOLERANCE=real,REPEAT=integer,STRATEGY=integer,COOL= real,BALANCE=real, random=real; The command has the attributes: CALLS: The maximum number of calls to the penalty function (default: 30). TOLERANCE: The desired tolerance for the minimum (default: 10**(-6)). REPEAT: The number of call of the JACOBIAN routine (default: 1). BISEC: Selects the maximum number of iteratation used to determin the step length which reduces the penalty function during the main iteration. A large number (i.e. 6) reduce the probability to diverge from the solution, but increase the one for being trapped in a local minum. STRATEGY: A code for the strategy to be used (default: 3). If STRATEGY=1 the routine resets the values of the variables which exceeds the limits. If STRATEGY=2 the routine print the Jacobian and exit without matching. If STRATEGY=3 the routine disables the variables which exceeds the limits keeping however the number of variables greater or equal to the number of the constraints. COOL, BALANCE: The factors which specify the following transformation: if "balance" >=0 newval=(1-cool)*oldval+cool*((1-balance)*maxval+balance*minval ) else newval=(1-cool)*oldval+cool* optval where newval is the new value after the transformation, oldval is the previous value, maxval, minval, optval are the maximum value, minimum value, optimal value of the variable specified in the VARY command. RANDOM: The factors which specify the following transformation: newval= (1+ random * rand() ) * oldval where newval is the new value after the transformation, oldval is the previous value, rand() is a stochastic variable with a uniform (-0.5,0.5) distribution. Example: JACOBIAN,CALLS=20,TOLERANCE=1.0E-8,STRATEGY= 3,COOL=0.1,BALANCE=0.5,RANDOM=0.01;
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface cern.accsoft.steering.jmad.domain.result.match.methods.MatchMethod
MatchMethod.AlgorithmType
-
-
Constructor Summary
Constructors Constructor Description MatchMethodJacobian()
The default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MatchMethod.AlgorithmType
getAlgorithmType()
int
getRepeat()
void
setRepeat(int repeat)
-
Methods inherited from class cern.accsoft.steering.jmad.domain.result.match.methods.AbstractMatchMethod
getCalls, getTolerance, setCalls, setTolerance
-
-
-
-
Method Detail
-
setRepeat
public void setRepeat(int repeat)
- Parameters:
repeat
- adjust the number of call of the JACOBIAN routine(default: 1)
-
getRepeat
public int getRepeat()
- Returns:
- the number of calls of the JACOBIAN routine
-
getAlgorithmType
public MatchMethod.AlgorithmType getAlgorithmType()
- Returns:
- the
MatchMethod.AlgorithmType
of the MatchMethod
-
-