。
ご利用にあたって
変数の型
a,b 入力 複素数 [ar, ai] ar:実数部、ai:虚数部
z 出力 複素数 z[0]:実数部、z[1]:虚数部
x 入力、出力 実数スカラー
d 入力、出力 複素数配列 [ [ar0,ai0], [ar1,ai1], … [arn,ain] ]
命令形式
z = cps(a, op, b) +,-,*,/,^(累乗)
z = cps(a, op, x) +,-,*,/,^(累乗), θ(回転)
z = cps(x, op, b) +,-,*,/,^(累乗)
z = cpx(op, a) +,-. /(逆数), i,-i(*i), conj(共役), e(指数)
x = cpx(op, a) abs(絶対値), θ(atan)
d = cpx(op, a) √(平方根)
d = cps(x, op, b) n√(n乗根)
z = cpx(op, d) Σ(sum), Π(prod)
例示
2+3i → a = [2, 3]
4+5i → b = [4, 5]
(2+3i) + (4+5i) → cpx([2,3], "+", [4, 5]) → cpx(a, "+", b) ⇒ [6, 8]
√(((2+3i) + (4+5i)) → cpx("√", cpx(a, "+", b))
記述例とテスト
var z = cpx("-", [3,4]); // 単独の例
var x = cpx("abs", cpx("-", [3,4])); // 組合せの例
alert("z = " + z + " x = " + x);
命令の連結ができない 例えば cpx("-", [3,4]) で、[Math.abs(-3), 2*2] のように、関数内では通常の記述が有効ですが、 cpx("-", [3,4]) + cpx("i", [1,2]) のように複数の演算を記述することはできません。 ・JavaScript では、配列を含む計算を1命令で表現する簡単な記述法がないこと ・そのため、+ では文字列連結になり、それ以外の演算子を用いると NaN になってしまいます。 計算誤差が発生する 命令のなかには、三角関数や自然対数を用いているため、有効桁数がかなり小さくなっています。 本来は内部で倍精度計算をすべきなのですが採用していません。 出力された数値の丸めを行うほうが適切な場合もあります。
"-" cpx("-", [3,4]) = [-3,-4] "i" cpx("i", [3,4]) = [-4, 3] "-i" cpx("-i", [3,4]) = [ 4,-3] "/" cpx("/", [3,4]) = [-0.428,0.571] // 1/(3 + 4l) 逆数 "conj" "共役" cpx("conj", [3,4]) = [ 3,-4] "e" cpx("e", [3,4]) = [-13.12,-15.20 // e3 + 4*i
"+" cpx([3,4], "+", 2) = [5, 4] // 虚数部はそのまま "-" cpx([3,4], "-", 2) = [1, 4] // 虚数部はそのまま "*" cpx([3,4], "*", 2) = [6, 8] "/" cpx([3,4], "/", 2) = [1.5, 2] "^", "**","pow" dpx([3,4], "^", 3) = [-117,44] // ai≠0 のときは,、x は整数のこと "rθ", "rθn", "rθ°" dox[[1.732, 1], "rθ°, 30) = [1, 1.732] 原点を中心に反時計回りに角度θ回転 rθ° 30 45 60 90 120 135 180 270 360 度分法 rθ 0.524 0.785 1.047 1.571 2.094 3.927 3.142 4.713 6.283 ラジアン法 rθn 1/12 1/8 1/6 1/4 1/3 5/8 1/2 3/4 1 2π=1に対する比率
"+" dpx(2, "+", [3,4]) = [5,4] // 虚数部はそのまま "-" dpx(2, "-", [3,4]) = [-1,4] // 虚数部はそのまま "*" dpx(2, "*", [3,4]) = [6,8] "/" dpx(2, "/", [2,3]) = [-0.8, 1.2]
"+" cpx([1,2], "+", [3,4]) = [4, 6] "-" cpx([1,2], "-", [3,4]) = [-2, -2] "*" cpx([1,2], "*", [3,4]) = [-5, 10] "/" cpx([1,2], "/", [3,4]) = [-1.57, -0.286] "^", "**","pow" cpx([1,2], "^", [3,4]) = [0.129, 0.034] 無限多価関数になるので主解のみを表示
"||", "abs" cpx("abs", [3,4]) = 5 (√(32+42)) "θ", "atan" cpx("atan", [3,4]) = 1.333 (=4/3)
"√", "sqrt" cpx("√", [3,4]) = [ [2,1], [-2, 1] ]
"√" "n√" "乗根" cpx(3, "n√", [2,11]) = [ [2,1], [-1.87,1.23], [-0.13,-2.23] ] (x > 8 のときも計算しますが、下の表では8組だけを表示します)
"Σ", "sum" cpx("Σ", [[1,2],[3,4],[5,6]]) = [9,12] "Π", "prod" cpx("prod", [[1,2],[3,4],[5,6]]) = [-85,20]