OSDN Git Service

Remove a Math.qubicsecant function
authordhrname <dhrname@users.sourceforge.jp>
Wed, 1 Apr 2015 14:37:30 +0000 (23:37 +0900)
committerdhrname <dhrname@users.sourceforge.jp>
Wed, 1 Apr 2015 14:37:30 +0000 (23:37 +0900)
org/w3c/dom/smil.js

index 09cdb13..5b9d204 100644 (file)
@@ -616,7 +616,7 @@ base("$from").of( {
            * ベジェ曲線のxの式が三次方程式であるため、その解 t から、ベジェ曲線の y を求める\r
            * なお、ニュートン法の初期値はxとする\r
            * なぜなら、xの式をみると、xが増加傾向となるスプラインモードでは、係数が負となる可能性が低いため*/\r
-          var t = Math.qubicsecant(Ax, Bx, Cx, -x, x-0.001, x);\r
+          var t = _newton(Ax, Bx, Cx, -x, x);\r
           return f(Ay*t*t*t + By*t*t + Cy*t);\r
         };\r
      } else if (this.mode === "discrete") {\r
@@ -628,31 +628,6 @@ base("$from").of( {
    }\r
 } ).to = base("$from").$to;\r
 \r
-/*割線法により、三次方程式 a0x^3 + a1x^2 + a2x + a3 の解を求める\r
- * 引数x0, x1は初期値*/\r
-Math.qubicsecant = function(a0, a1, a2, a3, x0, x1) {\r
-  var eps = 1e-10,\r
-      y0 = a0 *x0*x0*x0 + a1 *x0*x0 + a2*x0 + a3,\r
-      y1 = a0 *x1*x1*x1 + a1 *x1*x1 + a2*x1 + a3,\r
-      x2 = x0;\r
-  if (y1 === 0) {\r
-    return x1;\r
-  }\r
-  /*限界の収束回数は100回とする*/\r
-  for (var i=0;i<100;++i) {\r
-    if ((y1 < eps) && (y1 > -eps)) {\r
-      return x1;\r
-    } else {\r
-      x2 = x1 - y1 * (x1 - x0) / (y1 - y0);\r
-      x0 = x1;\r
-      x1 = x2;\r
-      y0 = y1;\r
-      y1 = a0 *x1*x1*x1 + a1 *x1*x1 + a2*x1 + a3;\r
-    }\r
-  }\r
-  return x2;\r
-};\r
-\r
 /*ニュートン法により、三次方程式 a0x^3 + a1x^2 + a2x + a3 の解を求める\r
  * 引数bは初期値*/\r
 Math.qubicnewton = function(a0, a1, a2, a3, b) {\r