- 締切済み
方程式を解く(円弧と角度)
困っています。 ある2次元図形(CAD)で方程式を立てたところ、 R・sin(θ)-R・sin(A)/B =C・tan(D)-R・θ・tan(E)・tan(D)+F・tan(E)・tan(D) という計算式ができました。 この式のθを導きたいのですが、どなたか分かりませんか? ※θ以外は、既知の値です。 図形的に導くことができたのですが、これを解こうとしていくつかやってみたのですが、計算値と図形での値とが一致しませんでした。(1週間悩みました。) →計算での答えは合っていたのですが・・・。 お願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
> sin(θ) + θ*F = G つまり、 y = sin(x) + x*F - G の零点へ逐次収束させればよいわけですね。(Newton 法など) EXCEL にグラフを描いてみると、y = x*F - G に y = sin(x) を重畳した形になりますから、 逐次求解の初期値として xo = G/F を使えば済みそうです。
- arrysthmia
- ベストアンサー率38% (442/1154)
(sin θ) + αθ = β, α = (tan E)(tan D), β = sin(A)/B + (C/R)(tan D) + (F/R)(tan E)(tan D). を解くのですね。 ニュートン法は、いかがですか? φ(x) = (sin x) + αx - β と置いて、 θ[k+1] = θ[k] - { φ(θ[k]) / φ'(θ[k]) } で、近似解を漸化します。 cos θ ≒ -α でなければ、これで上手くゆくハズです。 初期値 θ[0] は、No.2 さんも指摘しておられるように、 -1 ≦ -αθ+β ≦ 1 から、2nπ ≦ θ < 2(n+1)π となる 整数 n を見つけて、2nπ ≦ θ[0] < 2(n+1)π の範囲で テキトーに設定すれば良いでしょう。
>...... この式はねじのリードに対する移動位置に関する計算です。 ねじの門外漢ですが「G/(1+F) が 1 よりも十分小さければ.... 」じゃ済まないことはわかりました。 sin(θ+ 2nπ) + (θ+ 2nπ)*F = sin(θ) + (θ+ 2nπ)*F = G なので、泥臭いやり方ですが、θ= 0, n = 0, 1, 2, 3 ...... のときの F と G の値を F(0,n), G(0,n) と表形式にしておき、そこから近似解を拾って(LOOKUP 関数)逐次求解するのが実際的みたいです。 専門家なら、もっとスマートな解法があるのかも。
>R・sin(θ)-R・sin(A)/B =C・tan(D)-R・θ・tan(E)・tan(D)+F・tan(E)・tan(D) θを含む項を左辺にまとめると、 R*sin(θ) + R*θ*tan(E)*tan(D) = R*sin(A)/B + C*tan(D) + F*tan(E)*tan(D) なので、 sin(θ) + θ*F = G という形。 この先の式誘導はできそうもありませんね。 逐次求解しかなさそうです。 G/(1+F) が 1 よりも十分小さければ、それを近似解にすれば収束しそうですが、実際の数値は如何?
補足
178tallさん 本当にありがとうございます。 実際の数字については、手元に詳しい資料が無いので即答できません。 後日、実際の数字について解答いたします。 >→計算での答えは合っていたのですが・・・。 とは、実際の数字を当てはめたときに答えが合ってくるという意味です。 実際の数字は、プログラムを作成して回答を導き、実作に作図して検証しました。 できれば、EXCELのシート計算だけでやりたかったので、何とかならないかと思いました。 ちなみに、この式はねじのリードに対する移動位置に関する計算です。
お礼
arrysthmiaさん ありがとうございます。 値を適当に設定して確認したところ、収束することを確認しました。 初期値θ[0]=Eで、解はE<θ<π/2と分かっており、大丈夫だと思われます。 EXCELの計算ではせいぜいE-14までの桁なので、近似解でも十分だと思われます。 あとは、この後の計算もあるので、誤差で影響しないように気をつければ良さそうですね。 お二方に感謝いたします。