代数方程式を解く方法

[OS] ALL
[リリース] ALL
[キーワード] IML, POLYROOT

[質問]

SASで代数連立方程式を解く方法を教えてください。

[回答]

SAS/IMLのPOLYROOT関数を用いると、代数方程式の複素数解を求めることができます。具体的には、次のようなプログラムとなります。

サンプルプログラム

proc iml;

/* x^3- 2*x^2 + 5*x + 9=0  「^」の後ろの数字は累乗を表す */
coeff={1 -2 5 9};  /* 次数の高い方から係数を記述。最後は定数項 */
sol=polyroot(coeff);
print sol;

上記プログラムの出力

/* 解は3つ得られた。1列目が実部、2列目が虚部 */

          S

 -1.080584         0
  1.540292 2.4405594
  1.540292 -2.440559

実数解が1つ、(共役な)虚数解が2つ得られたことがわかります。
なお、一般の連立方程式の解法については下記のFAQをご参照ください。