• ベストアンサー

繰り返し計算を手計算で

36.04*h^(-1.5) = 6.0 + 2.5*ln {h/(0.17 + 0.008922*h)} というhについての式が解けなくて困っています。lnの底はeです。 答えだけでもいいですが、手計算の方法を教えていただければうれしいです。

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

  • ベストアンサー
  • banakona
  • ベストアンサー率45% (222/489)
回答No.2

#1です。 前回しめした2分法は、解の近辺で連続な関数でありさえすれば求根でき、ニュートン・ラプソン法に比べて計算も簡単なので、私が好んでいる方法です。 Excelのアドインとか探せば気の利いたモノがみつかりそうですが、私はExcelで「手計算」しました。 関数電卓(与式が複雑なので、プログラムできるものが望ましい)でも同様にしてできます。 f(h)=36.04*h^(-1.5) -6.0-2.5*ln {h/(0.17 + 0.008922*h)}とします。 手順は次のようです。 1.試行錯誤で、f(A)>0、f(B)<0となるA,Bを見つける 2.(A+B)/2を算出し、これをCとする。 3.f(C)>0ならAをCに置き換える。f(C)<0ならBをCに置き換える。 4.f(C)が十分小さくなったら終わり(Cが求める解)。小さくなければ2に戻る。 1が面倒な点が2分法の欠点です。私はちょっと反則して、ゴールシークの結果からA,Bを探しました。 なお、プログラム電卓なら、上記手順をプログラムした方が簡単ですね(A,Bの探索は別途必要ですが)。

mamegaku
質問者

お礼

今回は有効数字3桁から4桁程度でよかったのでこの手順を追えば電卓だけでできそうですね。ありがとうございました。

その他の回答 (1)

  • banakona
  • ベストアンサー率45% (222/489)
回答No.1

手計算は厳しいと思います。 >36.04*h^(-1.5) = 6.0 + 2.5*ln {h/(0.17 + 0.008922*h)} これから 36.04*h^(-1.5) -2.5*ln {h/(0.17 + 0.008922*h)} という式を作り出して、Excelのゴールシークで、目標値を6として求めると、   h=2.08117637415711 となりました。ただしこのときの式の値が6.0008033・・・であまり良くありません。 そこで、2分法を使ったら、   h≒2.0812589 となるようです。このときの式の値は5.99999998・・・ ニュートン・ラプソン法を使ったり、Excelを使うにしてもゴールシークではなくソルバーを使ったりすれば、もっと正確な値が分かるかもしれません。

mamegaku
質問者

お礼

ありがとうございます。助かりました。 手計算というのは、「関数電卓あり」なのですが方法はないでしょうか。