|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--jp.go.ipa.jgcl.JgclComplexPolynomial
変数および各項の係数が複素数である多項式を表すクラス。
このクラスは、t を変数とする n 次の多項式 :
P(t) = A0 + A1 * t + A2 * t^2 + ... + An * t^nを表す。
このクラスのインスタンスは、 多項式の各項の係数 Ai (i = 0, ..., n) の値を含む複素数配列 coef を持つ。 coef には、次数の低い項の係数値から先に格納されるものとする。 つまり、coef[i] には i 次の項の係数 Ai の値が格納される。
内部クラスの概要 | |
class |
JgclComplexPolynomial.DKANotConverge
ある方程式の根を Durand-Kerner 法によって求めようとした際に、 その収束演算に失敗したことを示す例外の (内部) クラス。 |
class |
JgclComplexPolynomial.ImpossibleEquation
ある多項式を左辺とする代数方程式が不能であることを示す例外の (内部) クラス。 |
class |
JgclComplexPolynomial.IndefiniteEquation
ある多項式を左辺とする代数方程式が不定であることを示す例外の (内部) クラス。 |
class |
JgclComplexPolynomial.NRNotConverge
ある方程式の根を Newton-Raphson 法によって求めようとした際に、 その収束演算に失敗したことを示す例外の (内部) クラス。 |
コンストラクタの概要 | |
JgclComplexPolynomial(double[] coef)
各項の実数係数値を含む配列を与えてオブジェクトを構築する。 |
|
JgclComplexPolynomial(JgclComplex[] coef)
各項の係数値を含む配列を与えてオブジェクトを構築する。 |
|
JgclComplexPolynomial(JgclComplex coef0,
JgclComplex coef1,
JgclComplex coef2)
2 次多項式の各項の係数値を与えてオブジェクトを構築する。 |
メソッドの概要 | |
JgclComplexPolynomial |
add(JgclComplexPolynomial mate)
この多項式と他の多項式の「和」を表す多項式を返す。 |
JgclComplex |
coefficientAt(int degree)
この多項式の指定の次数の項の係数の値を返す。 |
JgclComplex[] |
coefficientsBetween(int lower,
int upper)
この多項式の指定の範囲の次数の項の係数の値を返す。 |
int |
degree()
この多項式の次数を返す。 |
JgclComplexPolynomial |
derive()
この多項式の一次導関数を表す多項式を返す。 |
JgclComplex |
evaluate(JgclComplex parameter)
この多項式を、与えられたパラメータ値で評価する。 |
JgclComplex |
getOneRootByNR(JgclComplex initialGuess)
この多項式を左辺とする方程式の根を Newton-Raphson 法によって一つだけ求める。 |
JgclComplex[] |
getRootsByDKA()
この多項式を左辺とする方程式の根のすべてを Durand-Kerner 法によって求める。 |
JgclComplex[] |
getRootsIfQuadric()
この多項式を左辺とする二次方程式 (A0 + A1 * t + A2 * t^2 = 0) を解く。 |
static void |
main(java.lang.String[] argv)
デバッグ用メインプログラム。 |
JgclComplexPolynomial |
multiply(JgclComplex val)
この多項式に与えられた値をかけた多項式を返す。 |
JgclComplexPolynomial |
multiply(JgclComplexPolynomial mate)
この多項式と他の多項式の「積」を表す多項式を返す。 |
JgclComplexPolynomial |
normalize()
この多項式について、絶対値が 0 とみなせる高次の係数を取り除いた多項式を返す。 |
JgclComplexPolynomial |
subtract(JgclComplexPolynomial mate)
この多項式と他の多項式の「差」を表す多項式を返す。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public JgclComplexPolynomial(JgclComplex[] coef)
coef には、次数の低い項の係数値から先に格納されているものとする。 つまり、coef[i] には i 次の項の係数値が格納されている。
coef が null の場合には JgclInvalidArgumentValue の例外を発生する。 また、coef の要素数が 1 より小さい場合にも JgclInvalidArgumentValue の例外を発生する。
coef
- 多項式の各項の係数値の配列JgclInvalidArgumentValue
public JgclComplexPolynomial(double[] coef)
各項の係数の虚数部はすべて 0 であるものとする。
coef には、次数の低い項の係数値から先に格納されているものとする。 つまり、coef[i] には i 次の項の係数値が格納されている。
coef が null の場合には JgclInvalidArgumentValue の例外を発生する。 また、coef の要素数が 1 より小さい場合にも JgclInvalidArgumentValue の例外を発生する。
coef
- 多項式の各項の係数値の配列JgclInvalidArgumentValue
public JgclComplexPolynomial(JgclComplex coef0, JgclComplex coef1, JgclComplex coef2)
このコンストラクタで生成される多項式の次数は必ず 2 次である。
coef0
- 0 次項の係数値coef1
- 1 次項の係数値coef2
- 2 次項の係数値メソッドの詳細 |
public int degree()
public JgclComplex coefficientAt(int degree)
coef[degree] の値を返す。
degree
- 次数public JgclComplex[] coefficientsBetween(int lower, int upper)
lower 次から upper 次までの項の係数値を返す。
lower
- 次数の下限upper
- 次数の上限public JgclComplex evaluate(JgclComplex parameter)
与えられたパラメータ値 t におけるこの多項式の値 P(t) を返す。
JgclComplexFunctionWithOneVariable
内の evaluate
parameter
- パラメータ値public JgclComplex[] getRootsIfQuadric()
この多項式が 2 次でなければ null を返す。
結果として得られる配列は、方程式の根を含む。 よって、この配列の長さは常に 2 である。
coef[2], coef[1] の絶対値がともに JgclMachineEpsilon.DOUBLE 以下である場合には、 方程式の根として (Double.NaN, 0.0) を返す。
JgclMachineEpsilon.DOUBLE
public JgclComplexPolynomial normalize()
このメソッドが返す多項式の各項の係数値は、 その絶対値の最大値が 1 になるように正規化されたものになる。
このメソッドでは、 この多項式の 各項の係数の絶対値の最大値が 1 になるような正規化を行なったときに、 係数の絶対値が JgclMachineEpsilon.DOUBLE より小さくなるような 高次項を取り除く。
この多項式の 各項の係数の絶対値の最大値が JgclMachineEpsilon.DOUBLE より小さい場合には 0 次の項の係数値が (0, 0) の 0 次多項式を返す。 また、 各項の係数の絶対値の最大値を持つのが 0 次の項で、 他のすべての項の係数値 Ai が ((|Ai| / |A0|) < JgclMachineEpsilon.DOUBLE) である場合にも 0 次の項の係数値が (0, 0) の 0 次多項式を返す。
JgclMachineEpsilon.DOUBLE
public JgclComplexPolynomial add(JgclComplexPolynomial mate)
この多項式 P(t) と他の多項式 Q(t) の和 P(t) + Q(t) を返す。
mate
- 他の多項式public JgclComplexPolynomial subtract(JgclComplexPolynomial mate)
この多項式 P(t) と他の多項式 Q(t) の差 P(t) - Q(t) を返す。
mate
- 他の多項式public JgclComplexPolynomial multiply(JgclComplex val)
この多項式 P(t) に val をかけた多項式 val * P(t) を返す。
val
- 多項式の各項の係数にかける値public JgclComplexPolynomial multiply(JgclComplexPolynomial mate)
この多項式 P(t) と他の多項式 Q(t) の積 P(t) * Q(t) を返す。
mate
- 他の多項式public JgclComplexPolynomial derive()
この多項式の次数が 0 の場合には、 0 次の項の係数値が 0 である 0 次多項式を返す。
public JgclComplex getOneRootByNR(JgclComplex initialGuess) throws JgclComplexPolynomial.NRNotConverge
initialGuess
- 方程式の根の初期値JgclComplexPolynomial.NRNotConverge
- 演算が収束しなかったpublic JgclComplex[] getRootsByDKA() throws JgclComplexPolynomial.DKANotConverge, JgclComplexPolynomial.IndefiniteEquation, JgclComplexPolynomial.ImpossibleEquation
JgclComplexPolynomial.DKANotConverge
- 演算が収束しなかったJgclComplexPolynomial.IndefiniteEquation
- 方程式が不定であるJgclComplexPolynomial.ImpossibleEquation
- 方程式が不能であるpublic static void main(java.lang.String[] argv)
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |