過去ログ

                                Page     154
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼算定式を解きたいのですが?  おか 02/9/30(月) 17:21
   ┗Re:算定式を解きたいのですが?  こうちゃん 02/10/1(火) 11:43
      ┗Re:算定式を解きたいのですが?  おか 02/10/1(火) 14:23
         ┗ベタですが・・  こうちゃん 02/10/1(火) 15:19
            ┗Re:ベタですが・・  おか 02/10/1(火) 17:37

 ───────────────────────────────────────
 ■題名 : 算定式を解きたいのですが?
 ■名前 : おか
 ■日付 : 02/9/30(月) 17:21
 -------------------------------------------------------------------------
   下記の様な算定式があって、L(セルのA3)を求めようとする場合、どのようにすればよいのでしょうか?
ちなみに下記のT=16.8、h=11.0の場合です。TがセルのA1に、hがセルのA2です。

L=(9.8・T^2)/(2・π)Tanh(2π・h)/L

 =9.8×16.8^2/(2・π)Tanh(2π×11.0)/169.85=169.85

宜しくお願いします。
 ───────────────────────────────────────  ■題名 : Re:算定式を解きたいのですが?  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/10/1(火) 11:43  -------------------------------------------------------------------------
   おか さん、こんにちは

>下記の様な算定式があって、L(セルのA3)を求めようとする場合、どのようにすればよいのでしょうか?
>ちなみに下記のT=16.8、h=11.0の場合です。TがセルのA1に、hがセルのA2です。
>
>L=(9.8・T^2)/(2・π)Tanh(2π・h)/L
>
> =9.8×16.8^2/(2・π)Tanh(2π×11.0)/169.85=169.85
>
>宜しくお願いします。

算定式をそのままExcelの計算式に置き換えて計算しても成り立たないのですが、どう計算すればいいのかロジックを教えていただけませんか?
以下の式を計算すると 2.591786 になります。

=9.8*16.8^2/(2*PI())*TANH(2*PI()*11)/169.85
 ───────────────────────────────────────  ■題名 : Re:算定式を解きたいのですが?  ■名前 : おか  ■日付 : 02/10/1(火) 14:23  -------------------------------------------------------------------------
   こうちゃん さん こんにちは。

TANH(2*PI()*11)/169.85が、TANH((2*PI()*11)/169.85)でした。足りなくて、すみません。
 ───────────────────────────────────────  ■題名 : ベタですが・・  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/10/1(火) 15:19  -------------------------------------------------------------------------
   おか さん、こんにちは。

検索範囲を設定して、以下のモジュールを実行してみてください

  HaniMin :検索範囲の先頭*100
  HaniMax :検索範囲の終端*100
  Limit  :収束判定誤差

サンプルではA1セルに9.8が、B1セルに11が入っているときの169.80から170.00を収束判定誤差0.01で検索して169.85を表示します。
(収束判定誤差"Limit"以内の誤差で収束したと判定します)

Sub test()

  Dim L As Double
  Dim S As Double
  Dim i As Long
  Dim HaniMin As Double
  Dim HaniMax As Double
  Dim Limit As Double
  
  HaniMin = 16980
  HaniMax = 17000
  Limit = 0.01
  
  For i = HaniMin To HaniMax
    L = i / 100
    
    S = L - _
      Range("$A$1").Value * 16.8 ^ 2 _
      / (2 * WorksheetFunction.Pi()) _
      * WorksheetFunction.Tanh((2 * WorksheetFunction.Pi() _
      * Range("$B$1").Value) / L)
    
    If S < Limit And S > -1 * Limit Then
      Exit For
    End If
  Next
  If i < HaniMax Then
    MsgBox "L=" & L
  Else
    MsgBox "収束しません"
  End If

End Sub

#思いっきりベタですね^^; もっといい方法がありそうかも・・
どなたかHELPです
 ───────────────────────────────────────  ■題名 : Re:ベタですが・・  ■名前 : おか  ■日付 : 02/10/1(火) 17:37  -------------------------------------------------------------------------
   こうちゃん さん どうもありがとうございました。

すごく助かりました。前から出来ればと思っていたので、すごく便利に扱えます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 154