- PR -

べき乗した結果がNaNになる

1
投稿者投稿内容
beck
常連さん
会議室デビュー日: 2004/04/14
投稿数: 24
投稿日時: 2007-09-13 16:32
-6618^-0.109 を計算すると、電卓上は
0.38330173303780898381168739396905 という結果が得られます。

それをC#で処理する場合は、Pow関数を用いて計算するとNaNが
返ってきます。
Math.Pow(-6618, -0.109)


電卓で計算した結果を得る方法、若しくは電卓で計算した結果を任意に
まるめて取得する方法はないでしょうか?

ご存知の方がいらっしゃったらご教授ください。
よろしくお願いします。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-09-13 17:18
負の数の非整数乗は実数で表せないので(複素数になったりする)、電卓が間違ってます。
電卓がどういう計算をしているのかは謎ですが。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-09-13 17:33
電卓は Pow(6618, -0.109) を表示しているみたいですね。
beck
常連さん
会議室デビュー日: 2004/04/14
投稿数: 24
投稿日時: 2007-09-13 18:00
スフレさん、ご返答ありがとうございます。

たしかに、電卓の計算は間違っているみたいですね orz

数学の本を持ち出して調べたら、スフレさんの仰るとおりみたいです。

スフレさん、ご教授いただきありがとうございました m(_ _)m
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2007-09-13 18:06
rubyで -6618の マイナス0.109乗 を計算してみたところ
コード:

require 'mathn.rb'
p (-6618) ** (-109/1000)
# => Complex(0.361047349679834, -0.128705205174286)


となりました。
およそ 0.3610 - 0.1287i だそうです。参考までに。

#数字を思いっきり間違えてた

[ メッセージ編集済み 編集者: sawat 編集日時 2007-09-13 18:32 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-09-13 18:11
余談ですがgoogleは計算してくれるんですねw

http://www.google.co.jp/search?hl=ja&q=%28-6618%29%5E%28-0.109%29&lr=
1

スキルアップ/キャリアアップ(JOB@IT)