From: gotoken@... (GOTO Kentaro) Date: 1998-07-09T19:35:50+09:00 Subject: [ruby-list:8662] Re: sin(complex) ごとけんです In message "[ruby-list:8659] Re: sin(complex)" on 98/07/09, Shin-ichro Hara writes: >原です。 >sinh は > > sinh(x) = (exp(x)-exp(-x)) / 2 > >かな。ついでに あう; またもやありがとうございます。 # 原先生と呼ばせて下さい ^^;; > exp(x + iy)= exp(x)(cos(y) + i sin(y)) > cos(x + iy)= cos(x)cosh(y) - i sin(x)sinh(y) > sin(x + iy)= sin(x)cosh(y) + i cos(x)sinh(y) どうもです。ぼくが計算してたのと同じです。 ところで、Complex#** を考えるとき、 数学的な定義によると、まず、exp の逆関数として log を定義し、 z**w = exp(w log(z)) で与えられます。ここで、 log は無限個の値を持つ 多価関数なので、 z**w も無限個の値を持つことに なります。で、一つの値(主値)を決めるんですが、 この範囲はどんなライブラリに準拠するのが自然なん でしょうか? FORTRAN あたりで標準化されてればそれに合わせるのが よいと思います。 なお僕が自然だと思うのは、log(z) の虚部 arg(z) を libm の atan2(x,y) の範囲に合わせるとゆー、 いまの complex.rb の仕様(?)と同じモノです。 が、この atan2 の範囲は標準化されてるのでしょうか? # IEEE の浮動点小数演算の規格の解説がどっか行ってしまった ;_; -- gotoken