Mathematicaの "ブラックボックス"関数の数値最適化を試みている。しかし、私が試みた最小機能の全てを直ちに提供しないように見えるMathematica:ブラックボックス関数の数値最適化時の評価順序
comb[x_,y_,z_] := Module[{},
Print[x,y,z];
M = FindMaximum[SkewNormal[a,x,y,z], {a,x}] // First;
val = f[x,y,z,M];
Return[val];
];
:櫛[X、Y、Z]がこれに同様に定義される
NMinimize[{comb[x,y,z], x > 0}, {x,y,z}]
:概略的には、このように書きprint [x、y、z]も記号的に評価されるため、簡単に検証されるFindMaximumをx、y、zの記号値で評価しようとします。したがってFindmaximumは失敗します(FindMaximum :: nrnum:関数の値は実数ではありません)ので、最小化は失敗します。
combのサブ機能が数値で評価されるように評価順序を修正するにはどうすればよいですか?
NMinimizeでのシンボリックな前処理のため、もう1つ(もっと微妙な)問題は[最近他のスレッドで解決されました](http://stackoverflow.com/questions/6971536/nminimize-eats-all-memory-不必要な象徴的な仕事/ 6975501#6975501)by Daniel Lichtblau。 –
こんにちは、ありがとう、私はそれをチェックします。私はMathematica 8でこの問題が発生していないことにも気付きました(以前は7つでした)。 –