本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:三角関数の計算がおかしい)

三角関数の計算がおかしい

2023/10/19 09:33

このQ&Aのポイント
  • 三角関数の計算において角度の入力精度が重要な理由は何でしょうか?底辺の長さを求める際にも正確な角度が必要なのでしょうか?
  • 三角関数の計算において、角度の小数点以下の精度が重要です。底辺の長さを求める際には正確な角度の値を使用する必要があります。
  • 三角関数の計算において、角度の精度は計算結果の正確さに影響を与えます。底辺の長さを求める際には、小数点以下の桁数を増やすほど正確な値が得られます。
※ 以下は、質問の原文です

三角関数の計算がおかしい

2014/05/05 22:56

詳しく書くと長くなりますので要約します。

図がなくて申し訳ないのですが、斜辺→1000、高さ→3,15、底辺→?として三角形を描きます。
三平方の定理を展開して、?²=1000²-3,15²
即ち 底辺?=999,9950387であるということは関数電卓で一瞬で計算することができます。

ただ、一旦角度を求めて逆算するとなんかおかしい数字になります。
まず最初に解ってる斜辺1000、高さ3,15はsinなのでsinで角度を求めると、
0,1804820039°になります。
0,18°としてtanで底辺?を求めると 
?=3,15÷tan0,18
?=1002,672843 と、ミリ単位で誤差が出て、100分台の精度でワークを削る機械加工において致命的なミスが出ます。

ただ小数点以下10桁、0,1804820039°として底辺?を求めると 
?=3,15÷tan0,1804820039
?=999,9950387 となり、三平方の定理を展開して計算した数値と同じ答えが出ます。

なぜこのようなことになるんでしょう?角度は小数点以下3桁まででいいや、と勝手に決めて計算したらダメですか?
関数電卓で小数点以下10桁まで入力しないといけない理由を教えて下さいませんか?1000万分の何°という数字が必要なんでしょうか?

皆さん回答ありがとうございます。多くの方から回答を頂き感謝しています。
しかし、すぐに理屈を理解できません。自分の無知を恥じながら時間がかかったとしても理解しようと思います。

現時点での認識ですが
?最終的に角度を求めるだけなら小数点以下3桁もあれば充分。
?しかし、求めた角度を使って底辺の長さを求めるなど、更に計算を続けるなら、小数点以下3桁ではダメ。できる限り正確に角度を入力する必要がある。
という認識で宜しいでしょうか?

質問者が選んだベストアンサー

ベストアンサー
2014/05/06 06:03
回答No.3

(2)さんのご回答の内容が適切と思います。

その上で、理解の足しになるかもしれませんので、追加の説明を試みます。

3.15mmを基準として、底辺の長さ999.9950387を求めると言うことは、
基準の長さに対して、300倍以上の長さを求めようとすることなので、
その倍率を決めるtanの計算について、十分な精度を与える必要がある
あるのです。

直角三角形の底辺と高さの関係を逆に考えて、
底辺の長さ999.9950387mmから、高さ3.15mmを求めるとすすとき、
tanに入力する角度を、0.18°と0.1804820039°との場合を比較すると
次の通りです。 

  999.9950387mm×tan0.18    =3.1411mm
  999.9950387mm×tan0.1804820039=3.1500mm (-
  ----------------------------------------
                 Δ0.0089mm    

1/100mm程度の差異の計算結果が得られます。
このように、基準の長さに対して、短い寸法を計算する場合は、角度に
対して10桁もの有効桁を必要としません。


もう少し数学的に考えてみたとき、
tan 0の値は、0なので、一定の数をtan 0で割ると、解が求まりません。
これを工学的に言い換えると、一定の数をtan で割る場合、角度が0°に近
いと誤差が大きくなると心得ることが宜しいと言うことです。


実際に角度を測定しようとする場合、有効桁数は3桁あれば上出来の部類で
しょうが、その値を使って計算する場合は、「角度は小数点以下3桁までで」
では済まない場合があるということです。

お礼

2014/05/10 00:07

丁寧な解説ありがとうございました。
今回の件で三角形の性質等、基本から勉強し直してますが少しずつ理屈が解ってきました。
中途半端な知識ほど怖いものはない、というのが今回の教訓です。解らないこと、疑問に思うことはとことん突き詰めて研究を重ねていきたいと思います。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

その他の回答 (8件中 1~5件目)

2014/05/08 21:14
回答No.8

現状の認識が間違ってる気がするので。。。
ちょっと順番に問題に応えてください

問題?
高さ3.15 角度60°の傾斜を加工しようとして
高さ3.15 角度60.2°で仕上がった
底辺(傾斜範囲)の誤差は0.015

高さ3.15 角度30°の傾斜を加工しようとして
高さ3.15 角度30.2°で仕上がった
底辺(傾斜範囲)の誤差は0.044

同じ0.2°の誤差なのに底辺の誤差は3倍も違う
これは何故でしょうか?

問題?
『60°の加工したときに0.2°の誤差がでた』と
『0.18°の加工したときに0.000651°の誤差がでた』
このふたつのうち割合として誤差が大きいのはどっち?

問題?
高さ3.15、角度0.18°の加工をします。
傾斜範囲(底辺)に±0.1mmの公差があります。
0.0005度を誤差として切り捨てていいですか?

要するに、底辺の距離が必要な時には、60°も10°も0.18°も同じ認識で計算してはいけません。
角度を求める時に少数点3桁にすれば、万分代で誤差が出ます。
万分代の角度誤差を許容していいかは、加工ごとに異なるから自分で判断しなさい、ということです。

ガッテンしていただけましたでしょーか?(古い)

答えはあってます

ですから、角度計算だから少数点以下3桁とか、その先の計算だから少数点10桁とかではないですよね、
加工の時や図面を見るときに、この角度はヤバイと直感して、少数点以下も切り捨てずに計算したりするのが熟練の加工者かなあと思います。

あと、これは現場ごとに認識は違うとは思いますが、0.18°の加工ではmm単位の誤差もそれほど大きい誤差ではないという考え方もあります
それは周囲の先輩方に聞いてみてください

お礼

2014/05/10 00:22

回答ありがとうございます。

>角度計算だから少数点以下3桁とか、その先の計算だから少数点10桁とかではないですよね

そうです。実際自分で計算してみてよく解りました。

理屈を理解せず計算式だけ応用してもダメ、今更ですがそう感じました。
旋盤加工で使う三角関数なんて、せいぜい図面に明記してある一角と一辺から、tanでもう一辺を求めるぐらいと、大して勉強してなかったなめにこのような質問をするに至りました。不勉強を恥じています。

質問者

補足

2014/05/08 22:31

回答ありがとうございます。問題の答えですが

?はそもそもtan60=tan30の3倍なので、同じ0,2 度の誤差でも底辺の長さの誤差が3倍になります。

?高さを3,15とすると、
『60°の加工したときに0.2°の誤差がでた』時の底辺の長さの誤差が
0,0146......
公差が±0,01とかじゃない限りokです。

『0.18°の加工したときに0.000651°の誤差がでた』時の底辺の長さの誤差は、3,613.....
一般公差すら大幅にオーバーし間違いなく不良です。

?2,777...とミリ単位で誤差が出るので切り捨てることは出来ません。

もう一人の方からも解説を頂いてますが、高さと角度からtanで底辺を求める場合、角度が小さくなるほど誤差が大きくなる理屈が解った気がします。

答えは合ってますでしょうか?

質問者
2014/05/07 12:59
回答No.7

辺長さの精度を求めるなら

Θを使わないやり方

sinΘ=3.15/1000=0.00315

tanΘ=(+/-)sinΘ/sqrt(1-(sinΘ)^2)=0.0031500000035

(関数電卓の演算精度で計算できる)

2014/05/06 14:20
回答No.6

詳しく考えるには参考に挙げたような誤差伝播の法則を理解していただく必要が有ります。

その上で大筋だけ言うと計算に必要な相対誤差(精度)≒求めたい値の相対誤差といえます。
なので約1000mmに対し100分台の精度(約5桁)を出したいなら最低5桁、余裕を見るなら7桁の精度の角度を使う必要が有ります。

2014/05/06 09:04
回答No.5

>角度は小数点以下3桁まででいいや、と勝手に決めて計算したらダメですか?

だめです。
小数点以下何桁ではなく有効桁数が問題。
この場合「0.」は位取りであって有効桁数は「18」の僅か2桁。
1800、18、0.0018、0.000000018 も同じく2桁。但し1800については4桁または3桁かもしれない。

有効桁数2桁で × ÷ 三角関数 など計算すると結果も同じ程度の精度しか期待できないはずが 1002,672843 と3桁以上の精度になったのは偶然です。

NC、コンピュータなどの数を扱うには「数値計算の常識」という難しい問題がありますが、本件は有効桁数の話だけで判ると思います。

2014/05/06 07:02
回答No.4

実はよくは分からないのだが・・・
Excelでの三角関数では単位がラジアンと成っているのは御存知だと思う
関数電卓も恐らく同じようなシステムというか計算方法になっている気がする

つまり、”tanθ”を考えた場合にθが deg ならθ→ 0 なら tanθ→ 0 だが
もしもラジアンであれば θ→ 0 なら tanθ→ θ に帰結するということが
関係しているというか誤差が必然的に生じ易い真理が隠されていると思われる
だからθが十分小さい場合はこのような性質を十分に理解して電卓を使う事だ

1°=PI/180=0.0174532925199433 (rad)(※測定値とそうでない値を区別する)
電卓やPCは先のπ/180を内部で計算している訳ですが計算結果の角度有効数字
を貴殿が勝手に 0.18°と有効数字2桁にまで下げてしまったことが問題でした
つまり、radで考えるなら、10%も誤差を増やしてしまったことになるのですよ

↓ の有効数字同士の掛け算の部分はとても分かり易いと思うので、
今後の数値計算は、この有効数字を常に意識して計算すれば一味違うね
http://www.mmlab.mech.tuat.ac.jp/mmlab/lect_murata/significant_figure.shtml

未だ迷っているのも仕方がない。皆さん言っていることは各々正しいと思う。

ozuさんの仰っていることも同じことである・・・
「”tanθ”を考えた場合にθが deg ならθ→ 0 なら tanθ→ 0
・・・ラジアンであれば θ→ 0 なら tanθ→ θ に帰結」

つまり、θが小さくなれば成る程、誤差比は"θ/0"で∞になるという理屈です
従って有効数字というのも大事なのだが、数学的な基本を踏まえておかないと
物事の本質を見失うことになるのです。物理でも何でもそうだと思いますけど

今になって私も数学は得意だったが、もっと勉強しておけばと後悔しています

我社もそうなのですが、司令塔となる人が何人もいるようだと組織は混乱する
そう言う意味で未熟な組織だと思っていますし現に失敗も多く恥しい限りです
設計はモノ作りの旗振り役でなければならないっという信念を持っております

話は逸れましたが設計も同じで本当の数式の意味とか何故そのようにするのか
という所を端折ると、その度に同じような間違いの危険は無くなりませんが、
一時は遅かろうと理屈を理解すれば忘れないし、二度と間違いも繰り返さない

例えば円周率πをゆとり教育として小学校では、3.14 にしてしまったようだが
私は少し驚きましたし、重力加速度を 9.81 に丸めて計算するのと変わらない
>※測定値とそうでない値を区別する。っと有効数字を理解するのが重要です

お礼

2014/05/10 00:01

ありがとうございます。正直、回答を沢山頂きながら、回答を理解出来る知識がなかったため、理解できませんでした。
今あちこちで資料を集めて勉強してますが、徐々にですが解ってきました。

理屈を理解した上で何でもやらないとダメ、今回の教訓です。

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。