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