PolynomialGenerator

PolynomialGenerator

QuadraticBezierSegment/CubicBezierSegment の getTimeForX()/getTimeForY()/getTimes() メソッドで使ってる Polynomial.solve() の演算誤差が恐かったのでデバッガ作った。

Polynomial クラスとは

「ax^n + bx^(n-1) … + vx + w で表される実数の体から成る一変数多項式」っていう高校くらいで習うかなり限定された多項式を、高校くらいで習う公式+αな公式でいじるクラスで、グラフ描くとかそういうことが最終目的じゃなくて演算上必要な代数方程式をわりとさくっと扱えたらいいなくらいのクラス。
# 某ブログのコメント欄で見たけど、「flashでただ数学やってどうすんの?」とかいうコメントは自分の日記とかに書いてほしい。数学やるためにAS使ったわけじゃなくて、BezierSegmentを操作する過程で必要だったから数学使ったってだけの話。

このデバッガでやってること

  1. 2つの一変数多項式をそれぞれ assign() メソッドで x = -17 ~ 17 を代入し、グラフを描画。
  2. 2つの一変数多項式をそれぞれ solve() メソッドで実数解を求め、 x 軸との交点として点を描画。
  3. 2つの一変数多項式を equals() メソッドで比較。
  4. 2つの一変数多項式を add() メソッドで加算。
  5. 2つの一変数多項式を subtract() メソッドで減算。
  6. 2つの一変数多項式を multiplicate() メソッドで乗算。
  7. 2つの一変数多項式をそれぞれ differentiate() メソッドで微分。
  8. 2つの一変数多項式をそれぞれ integrateIndefinite() メソッドで不定積分。
  9. 2つの一変数多項式をそれぞれ integrate() メソッドで体積分。
  10. 2~9の結果を toString() メソッドでストリング表現にして textField に表示。

要は、 clone() メソッド以外全部。


About this entry