平成13年9月30日

[流れ星]

        第83回数学的な応募問題解答NO2

          <解答募集期間:9月16日〜9月30日>

[最大雨量]

太郎さんは、8月20・21日に行われた「県教育課程講習会」に出席してきましたが、県教委の方が次のような身近な問題を出され、解説されました。紹介します。

問題:幅aの細長い鉄板を折り曲げて、といを作ります。対称に2カ所で同じ角度に折り曲げて、切り口を等脚台形にします。(下の図)
どこでどのように折り曲げたら、雨を最も多量に流すことができるでしょうか。

 NO5<浜田>さんからの解答 9/17:16時57分受信 更新9/30

折り曲げる部分の長さをx,角をt(0<x≦a/2,0<t≦π/2)とする.
 このくいの断面である等脚台形の面積Sが最大になるように,x,tを選べばよい.
  S={(a−2x)+(a−2x+2xcost)}×xsint/2
   =sint×{a−(2−cost)x}x
   =sint(2−cost)×{a/(2−cost)−x}x………@
 0≦cost<1であるから,0<a/{2(2−cost)}<a/2となるので,xの2次関数 {a/(2−cost)−x}x が最大になるのは,
  x=a/{2(2−cost)}………A
のときである.
 @から,さらにこのとき,
  T=sint(2−cost)
が最大になれば,Sは最大となる.
 T>0であるから,X=costとするとき,
  f(X)=T^2=(sint)^2(2−cost)^2=(1−X^2)(2−X)^2
が最大になればよい.
  f'(X)=−2X(2−X)^2+(1−X^2){−2(2−X)}
      =−2(2−X){X(2−X)+(1−X^2)}
      =2(2−X)(2X^2−2X−1)
 0≦X=cost<1であるから,
  2X^2−2X−1=2(X−1/2)^2−3/2<0
  ∴f'(X)<0
 故にf(X)は減少関数である.
 0≦X<1であるので,
  X=cost=0
のとき,f(X)が最大になる.
 このとき,
  t=π/2
であり,Aに代入して,
  x=a/4
である.

 この答を実際にチェックする為に,UBASICとエクセルのプログラムを作って走らせてみた.しかしまったく違う答が出て来てしまったことに驚いた.それらのプログラムでの答は,a=1としたとき,
  x=0.333333,t=60.0000(°),S=0.144338
であった.
 確かにx=1/4,t=90(°)としたとき,S=1/8=0.125となり,上記の場合よりも小さい.またGRAPESを使い,作図してみると,確かに上の2つの場合の面積の違いがはっきり分かる.
                              

(UBASICのプログラム)
   10   'asave "83.ub"
   20   Pi=4*atan(1):Rad=Pi/180:Max=0:X_kizami=1/10:T_kizami=90/10
   30   X_min0=X_kizami:X_max0=1/2:T_min0=T_kizami:T_max0=90
   40   for J=1 to 15
   50    if J=1 then X_min=X_min0:X_max=X_max0:T_min=T_min0:T_max=T_max0:goto 110
   60    X_min=Xx-X_kizami:if X_min<X_min0 then X_min=X_min0
   70    X_max=Xx+X_kizami:if X_max>X_max0 then X_max=X_max0
   80    T_min=Tt-T_kizami:if T_min<T_min0 then T_min=T_min0
   90    T_max=Tt+T_kizami:if T_max>T_max0 then T_max=T_max0
  100    X_kizami*=0.1:T_kizami*=0.1
  110    X=X_min
  120    while X<=X_max:T=T_min
  130     while T<=T_max
  140      S=((1-2*X)+(1-2*X+2*X*cos(T*Rad)))*(X*sin(T*Rad))/2
  150      if Max<S then Max=S:Xx=X:Tt=T:print X;T;S
  160      T+=T_kizami
  170     wend:X+=X_kizami
  180    wend
  190   next J:end

(エクセルのマクロ)
Option Explicit
Sub Macro1()
    Dim pi As Double
    Dim x As Double
    Dim t As Double
    Dim S As Double
    Dim xx As Double
    Dim tt As Double
    Dim x_min As Double
    Dim x_max As Double
    Dim t_min As Double
    Dim t_max As Double
    Dim x_min0 As Double
    Dim x_max0 As Double
    Dim t_min0 As Double
    Dim t_max0 As Double
    Dim max As Double
    Dim x_kizami As Double
    Dim t_kizami As Double
    Dim j As Integer
    pi = 4 * Atn(1)
    max = 0
    x_kizami = 1 / 10
    t_kizami = 90 / 10
    x_min0 = x_kizami
    x_max0 = 1 / 2
    t_min0 = t_kizami
    t_max0 = 90
    Cells(1, 1).Value = "x"
    Cells(1, 2).Value = "t"
    Cells(1, 3).Value = "S"
    For j = 1 To 14
      If j = 1 Then
        x_min = x_min0
        x_max = x_max0
        t_min = t_min0
        t_max = t_max0
      Else
        x_min = xx - x_kizami
        If x_min < x_min0 Then
          x_min = x_min0
        End If
        x_max = xx + x_kizami
        If x_max > x_max0 Then
          x_max = x_max0
        End If
        t_min = tt - t_kizami
        If t_min < t_min0 Then
          t_min = t_min0
        End If
        t_max = tt + t_kizami
        If t_max > t_max0 Then
          t_max = t_max0
        End If
        x_kizami = x_kizami * 0.1
        t_kizami = t_kizami * 0.1
      End If
      For x = x_min To x_max Step x_kizami
        For t = t_min To t_max Step t_kizami
          S = menseki(x, t)
          If max < S Then
            max = S
            xx = x
            tt = t
            Cells(2, 1).Value = x
            Cells(2, 2).Value = t
            Cells(2, 3).Value = S
          End If
        Next t
      Next x
    Next j
End Sub
Private Function menseki(ByVal x As Double, ByVal t As Double) As Double
    Dim pi As Double
    Dim rad As Double
    pi = 4 * Atn(1)
    rad = pi / 180
    menseki = ((1 - 2 * x) + (1 - 2 * x + 2 * x * Cos(t * rad))) * (x * Sin(t * rad)) / 2
End Function

 なぜこのような違いが出て来たか,考察してみた.おそらくこういうことであろう.最初の解答では,xとtを別々に考え,Sが最大となるのは,
  x=a/{2(2−cost)} であり,かつ
  T=sint(2−cost)
が最大になるとき,とした.
 ところがこのときxとtは独立ではなく従属しているのである.したがってそれぞれの最大になる場合は,微妙に絡み合っており,別個には考えられないのである.
 この問題の答は,プログラムの解答通り,
  a=1,x=0.333333,t=60.0000(°),S=0.144338 となるので,
 「左右の板の端から,それぞれa/3の長さの箇所から,60°の角度で折り曲げれば,断面積が,√3a^2/12となり最大となる.このときに雨を最も多量に流すことができる.」であろう.

 これを偏微分で解いてみる(高校数学の範囲を逸脱するが・・・).
  S=sint{a−(2−cost)x}x において,
  Sx=St=0
を満たすx,tの値において極値をとる.この問題の場合,このときにSは最大となる.
  Sx=sint[−(2−cost)x+{a−(2−cost)x}]
    =sint{a−2(2−cost)x}=0 から,
  x=a/{2(2−cost)}(∵sint≠0,cost≠2)………A
 また,
  St=[cost{a−(2−cost)x}+sint(−sintx)]x
    ={acost−2xcost+x(cost)^2−x(sint)^2}x
    =(acost−2xcost+xcos2t)x=0 から,
  acost−2xcost+xcos2t=0(∵x≠0)
 Aを代入すると,
  acost−acost/(2−cost)+acos2t/{2(2−cost)}=0
 a≠0から,
  2cost(2−cost)−2cost+cos2t=0
  ∴4cost−2(cost)^2−2cost+2(cost)^2−1=0
  ∴cost=1/2
 0<t≦π/2から,t=π/3
 Aに代入すると,x=a/3   ・・・


PS.前回の問題の間違いは,私の勘違いでした.長さと長さの比を混同した為の計算間違いでした.まことに申し訳ないですが,今後このような間違いを犯さない戒めとして,その間違いはそのまま残しておいてもらえないでしょうか.ご迷惑な話で,わがままなお願いですが,お願いします.

PS2.前回の問題で,∠A〜∠Cを使っていいとは思いませんでした.てっきりp〜rのみを使って解くのだとばかり思っていたのです.

<水の流れ:誤解を招くような文章で、申し訳ありませんでした。> 

 NO6<kashiwagit>さんからの解答 9/19:8時40分受信 更新9/30


  おはようございます。解答を送付致します。微分を使いましたが、中学生にはわかりませんし−−−。
 二次式を平方式にしてやるのが、オーソドックスな解答なのでしょうが、面倒なのでお許し下さい。
 両端から折る長さをx、残った長さを2y、折り曲げる角度をθとする。
 2x+2y=a−−−@ 題意より a/2>x,y>0 π/2>θ>0−−−A 
といの面積Sは、 S=(2y+xcosθxsinθ  ここで@の関係からyを消去すると、
             =sinθcosθ−2)x(superscript: 2) +asinθx
 ところで、条件Aよりx(superscript: 2) の係数は0にならず、必ずであるから、最大値を持つ。
因って、Sをxの関数として微分すると、
x=a/2(2-cosθ)で最大値をとる。この値はa/4とa/2の間にあるので題意を満たしている。
この値をSに代入すると、a(superscript: 2)sinθ/4(2-cosθ)となる。
そこで、この値をθの関数とみなし、同様にθで微分し、計算すると、cosθ=1/2で最大値をとる。
即ち、θ=π/3、x=a/3である。これらはAの条件を満たすので求めるものである。
 両端から1/3のところで60°折り曲げれば良い。
 以上よろしくお願い申し上げます。

 <水の流れ:コメント> ええー!中学生でしたか、以前話題になったけ。記憶になーい。いや、どんな解法でも制約をしていませんから、自由な発想で結構です。ええー、この微分が理解できているんですか。驚きです。もう少し、丁寧に書いてもらえると、ありがたいです。

 

  NO7<kashiwagit>さんからの解答 9/20:7時54分受信 更新9/30

ご返信どうも有難うございました。おっしゃるように少々簡単に書きすぎまし
た。以下に赤字で補足させて頂きます。
両端から折る長さをx、残った長さを2y、折り曲げる角度をθとする。
 2x+2y=a−−−@ 題意より a/2>x,y>0 π/2>θ>0−−−A
といの面積Sは、 S=(2y+xcosθxsinθ  ここで@の関係からyを消去すると、
            =sinθcosθ−2)x(superscript: 2) +asinθx
 ところで、条件Aよりx(superscript: 2) の係数は0にならず、必ず負であるから、最大値を持つ。
因って、Sをxの関数として微分すると、
S’=2sinθ(cosθ−2)x+asinθ

,因って x=a/2(2-cosθ)で最大値をとる。この値はa/4とa/2の間にあるので題意を満たし
ている。 この値をSに代入すると、a(superscript: 2)sinθ/4(2-cosθ)となる。
そこで、この値をθの関数とみなし、関数をFとし、同様にθで微分し、計算すると、
F’=(2cosθ−1)/(2−cosθ)(superscript: 2) より、θの増加に伴い、値を正
から負に変えるので、cosθ=1/2で最大値をとる。
即ち、θ=π/3、x=a/3である。これらはAの条件を満たすので求めるものである。
因って、両端から1/3のところで60°折り曲げれば良い。
 以上よろしくお願い申し上げます。
 
NO8<やぎ>さんからの解答 9/22:1時13分受信 更新9/30

 NO9<やぎ>さんが出された問題でN=4のときの解答 9/24:1時45分受信 更新9/30

いずれも「やぎ」さんから寄せられたものです。ここをクリックください。

 <水の流れ:コメント> 最大値はといの断面が正六角形の半分になる場合である。よく見かける蜂の巣と同じ形になるのです。


                          

 

    <自宅>  mizuryu@aqua.ocn.ne.jp