=DYNVAL(ref)
DYNVAL
is a dummy function that simply returns the value of its argument but in an optimization context, it ensures that its
argument is dynamically evaluated during the optimization. In ExceLab 7.0 and later you can define arbitrary constraint formulas
on the array result simply by referencing any value or range of values in the array result in your constraint formulas by using DYNVAL
.
If you have used any of the pre ExceLab 7.0 criterion functions ARRAYVAL, ODEVAL
or PDEVAL for imposing constraints on array results, the examples below show how to easily convert your formulas to use the new
DYNVAL
function in ExceLab 7.0 or later.
Let the array below represent the results of an initial value problem simulation using IVSOLVE.
A | B | C | |
1 | Time | Disp | Velocity |
2 | 0 | 1 | 0 |
3 | 0.1 | 0.95711 | -0.26427 |
4 | 0.2 | 0.846225 | -0.4425 |
5 | 0.3 | 0.692986 | -0.54106 |
6 | 0.4 | 0.520265 | -0.57127 |
.. | |||
41 | 3.9 | -0.00483 | 0.004681 |
42 | 4.0 | -0.00339 | 0.004634 |
To constrain the value in B5 (which corresponds to the value of Disp at Time =0.3 to be 0.5.
=DYNVAL(B5) - 0.5
=ARRAYVAL(B5) - 0.5
To constrain the maxium value for the Disp, column B2:B12, to be less than or equal be 0.5.
=MAX(DYNVAL(B2:B12)) - 0.5
=ARRAYVAL(B2:B12, "MAX") - 0.5
To constrain the interpolated value of the Disp at Time=0.35 to be 0.6.
=INTERPXY(A2:A12, DYNVAL(B2:B12), 0.35) – 0.6
=ODEVAL(A2:A12, Disp, "INTERP", 0.35) – 0.6
To constrain the derivative of the Disp at Time=0.35 to be 0.
=DERIVXY(A2:A12, DYNVAL(B2:B12), 0.35) – 0
=ODEVAL(A2:A12, Disp, "DERIV", 0.35) – 0