SAS proc IML を使用して、関数があります。CVF(m,p,h,pi,e);
この関数を最小化する h を推測したいと思います。それを最小化する組み込みのサブルーチンはありますか? または、そのための反復プロセスをどのように構築できますか? 他のすべての変数が定義されています。
SAS proc IML を使用して、関数があります。CVF(m,p,h,pi,e);
この関数を最小化する h を推測したいと思います。それを最小化する組み込みのサブルーチンはありますか? または、そのための反復プロセスをどのように構築できますか? 他のすべての変数が定義されています。
もちろん、IML 言語を使用して独自の最適化ルーチンを構築できますが、組み込みの最適化ルーチンもあります。IML ユーザーズ ガイドの第 11 章、非線形最適化の例を参照してください。
を使用しcall nlpqn();
ます。渡す関数には、最適化するベクトルである 1 つのパラメーターのみが必要です。ここでは、a、b、および c パラメーターも定義できる 2 次関数を定義します。GLOBAL ステートメントを使用して、呼び出しの前に非移動変数を定義します。
または、すべてを入力ベクトルに入れてから、それらの値が移動しないように制約を追加することもできます。
proc iml;
start myfun(x) global(a, b, c);
out = a*x**2 + b*x + c;
return (out);
finish myfun;
a = 1;
b = 2;
c = 4;
optn = {0, /* option 1: 0 -> MIN, 1 -> MAX*/
0 /* Print options 0-5 0 least, 5 most*/
};
init = 0;
call nlpqn(rc, res, "myfun", init);
/*rc > 0 means success*/
print rc res;
quit;
戻り値:
The SAS System 08:59 Friday, June 27, 2014 3
rc res
3 -1