I wrote a complex constraint condition for my problem. I have a simple version of my code:
c[x_] := If[x >= 20, True, False];
FindMinimum[{x^2, c[x] == True}, x]
NMinimize[{x^2, c[x] == True}, x]
Functions FindMinimum
and NMinmize
didn't work. I can't see why?
Update
c[x_] := If[x >= 20, True, False];
FindMinimum[{x^2, c[x] }, x]
NMinimize[{x^2, c[x] }, x]
It works well, but I can't still solve my problem. I constructed another example:
c[x_] := Module[{}, Print[x]; True];
FindMinimum[{x^2, c[x]}, x]
NMinimize[{x^2, c[x]}, x]
x
{0., {x -> 0.}}
Why Print[x]
didn't output the value of x
?
Module
$\endgroup$Print[x]
didn't output the value ofx
becausex
had no value at the timePrint[x]
was evaluated. $\endgroup$