sinθの数値とcosθの数値が分かっているが、数値誤差のためsin2θ+cos2θ≠1である。

このときなるべく誤差が少なくなるようにθを求めたい。

θの求め方を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/09/10 18:11:29
  • 終了:2008/09/11 09:51:49

ベストアンサー

id:ita No.2

ita回答回数203ベストアンサー獲得回数472008/09/10 21:36:55

ポイント100pt

数値をそれぞれsとcとおきます。

結論から言うとθ=atan2(s,c)という式を使って計算します。

atan2はC言語でもEXELでも入っている基本的な関数です。

誤差がなければ点(C,S)は半径1の円周上にありますが、誤差で外側or内側、

また回転する方向へも動きます。回転する方向への誤差はどうしようも

ありません。しかし外や内へ動く場合はCとSの比は変わりません。

atan2はこの比だけを使って計算するのでそういう外や内へ動く誤差には

影響されません。

http://maglog.jp/excel/Article265803.html

C言語ではatan2(S,C)

EXCELではATAN2(C,S)

と順番が逆になります

id:gontaro-kamura

なるほど、sinとcosの値の比で割り出せばよかったんですね。ありがとうございます。

2008/09/11 09:45:40

その他の回答(3件)

id:desuyoker No.1

たかたか回答回数78ベストアンサー獲得回数82008/09/10 21:36:14

>sinθの数値とcosθの数値が分かっているが

いくつなんですか?w

http://q.hatena.ne.jp/answer

id:gontaro-kamura

毎回異なります。

2008/09/11 09:39:49
id:ita No.2

ita回答回数203ベストアンサー獲得回数472008/09/10 21:36:55ここでベストアンサー

ポイント100pt

数値をそれぞれsとcとおきます。

結論から言うとθ=atan2(s,c)という式を使って計算します。

atan2はC言語でもEXELでも入っている基本的な関数です。

誤差がなければ点(C,S)は半径1の円周上にありますが、誤差で外側or内側、

また回転する方向へも動きます。回転する方向への誤差はどうしようも

ありません。しかし外や内へ動く場合はCとSの比は変わりません。

atan2はこの比だけを使って計算するのでそういう外や内へ動く誤差には

影響されません。

http://maglog.jp/excel/Article265803.html

C言語ではatan2(S,C)

EXCELではATAN2(C,S)

と順番が逆になります

id:gontaro-kamura

なるほど、sinとcosの値の比で割り出せばよかったんですね。ありがとうございます。

2008/09/11 09:45:40
id:oich No.3

oich回答回数18ベストアンサー獲得回数22008/09/11 00:58:33

ポイント30pt

0≦真のθ≦π/2 と想定して答えます。

sin,cosの逆関数としてarcsin,arccos(アークサイン、アークコサインと読みます)という関数があります。エクセルでの関数名はasin(x),acos(x)となります。


誤差を最小に、といったときの誤差を何を定義するかにもよりますが、まずは

(arcsin(サインの数値)+arccos(コサインの数値))/2

で求める値が得られることと思います。


http://www.google.co.jp/search?q=arcsin

id:gontaro-kamura

ありがとうございます。

arcsinとarccosを使用する方法は最初に試して見ました。

その方法だと、0、π/2の近くで誤差が大きくなるようです。

itaさんの方法を試してみます。

2008/09/11 09:48:51
id:rsc96074 No.4

rsc回答回数4391ベストアンサー獲得回数4022008/09/11 05:38:00

ポイント30pt

 Cならば、sinθ=s, cosθ=c とすれば、

#define SGN2(x) ((x)<0 ? (-1) : (1)) /* x≧0のとき、+1、x<0のとき、-1 */

と定義して、

 θ=SGN2(s)*acos(c)

http://q.hatena.ne.jp/ (ダミー)

id:gontaro-kamura

同方法ではSの数値は反映されないため、誤差が大きくなります。

2008/09/11 09:51:04
  • id:rsc96074
     場合分けして、-√2/2<c<√2/2では、acosを使って、それ以外の範囲では、asinの値を使うという手もあるかも。

この質問への反応(ブックマークコメント)

トラックバック

  •     - bookmarks for the day     2008-09-14 03:53:49
    線ひき問題 - hituziのブログ 無料体験コース Amazon.co.jp: Bodies That Matter: On the Discursive Limits of &quot;Sex: Judith P. Butler: 洋書 読書メーター - 知性改善論 (岩波文庫) スピノザ,畠中 尚志 感想 ウメズ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません