SlideShare a Scribd company logo
1 of 21
Download to read offline
FIBONACCI
                                                  SEARCH METHOD
                                                  ระเบียบวิธีการคนหาของฟโบนาซซี



                             Presented   Miss. Julaluk Laokhunkar
                                    by
                                         Mr. Chaiwat Luejai

วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
history




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
history




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
history
                             เลโอนารโด ปซาโน (Leonardo Pisano) ประมาณ ค.ศ. 1170 - 1250 เปน
                             นักคณิตศาสตรชาวอิตาลี มีชื่อเสียงโดงดังที่สุดจากการคนพบจำนวนฟโบ
                             นาซซี และบทบาทในการเผยแพรการเขียนและวิธีการคำนวณระบบจำนวน
                             ฐานสิบที่ใหคาตามหลักแบบอาราบิก (Arabic positional decimal system) ที่
                             ใชกันในปจจุบัน หลายคนยกยองวาเขาเปนนักคณิตศาสตรที่เกงที่สุดในยุค
                             กลาง โดยการค น พบจำนวนฟ โ บนาซซี จ ากการสำรวจป ญ หาจำนวน
                             ประชากรของกระตาย ตัวอยางของลำดับนี้ 16 อันดับแรก

                                 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

                             ในป 1953 เคียเฟอร (Kiefer) ไดพิสูจนความสัมพันธลำดับตัวเลขฟโบนาซซี
                             ที่นิยามโดย

                                          F0 = F1 = 1; FN = FN-1 + FN-2 สำหรับ N ≥ 2

วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
equation
                                         5
                             FN =         ⎡( 5 + 1)N +1 + (−1)N ( 5 − 1)N +1 ⎤
                                     N +1 ⎣                                      โดยที่ N = 0, 1, ...
                                  5(2 )                                      ⎦

                             หรืออยูในรูปลิมิต
                                  FN      5 −1
                              lim       =
                              N→∞ F        2
                                   N +1


                             สามารถกำหนดชวงของการคนหาไดดังนี้
                                                                 b-a
                              FN × δ = b - a       นั่นคือ    δ=     ≤ε
                                                                 FN


วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
Search Method




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
Search Method




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
algorithm




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
algorithm

                             step 1 : กำหนดชวง [a,b]
                                           b-a
                             step 2 :   δ=
                                           FN
                                               ≤ε
                                                                      FN −2
                                     กำหนดให i = 2 และคำนวณ     L2 =       × (b − a)
                                                                       FN
                             step 3 : คำนวณ L1 = b - a
                                      ถา L2 < 0.5xL1 ใหคำนวณ x1 = a + L2, x2 = b - L2
                                      ถา L2 > 0.5xL1 ใหคำนวณ x1 = b - L2, x2 = a + L2




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
algorithm
                             step 4 : ตรวจสอบคาฟงกชันของจุด x1 และ x2
                                     ถา f(x1) < f(x2) ให [a,b] = [a,x2]
                                     ถา f(x1) > f(x2) ให [a,b] = [x2,b]
                                     ถา f(x1) = f(x2) ให [a,b] = [x1, x2] และ i = i+1
                                     คำนวณ L =        FN −i
                                                 2       L      1
                                                     FN −i+2

                             step 5 : เพิ่มตัวนับ i = i+1 ถา i < n ทำซ้ำ step 3
                                                                        a +b
                             step 6 : จุดคำตอบมีคาเปน        xopt   =
                                                                          2




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
example




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
example 3.2

                      กำหนดฟงกชันวัตถุประสงคเปน f (x) = x − 3x i e
                                                             2        −x
                                                                         ในชวงการคนหา [0,1]
                      โดยใชระเบียบวิธีการคนหาของฟโบนาซซีดวยความคลาดเคลื่อนที่ยอมรับไดเทากับ
                      0.0001




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
solution
      example 3.2

                             ทำการคำนวณรอบสูงสุดที่ตองใช
                             จากการแปรคา N จาก 1 ใหเพิ่มขึ้นเรื่อยๆ จะพบวาที่คา FN=21 = 10946
                                     b − a 1− 0
                                  δ=      =       = 9.14 × 10 −5 ≤ ε (1× 10 −4 )
                                      FN    10946
                                  กำหนดให i = 2 และ
                                       FN −2             F19
                                  L2 =       × (b − a) =     × (1− 0) = 0.382
                                        FN               F22




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
solution
      example 3.2
                      รอบการคำนวณที่ 1: L1 = 1 - 0 = 1.0 และ L2 = 0.382 < 0.5 x 1.0
                             ดังนั้น x1 = a + L2 = 0 + 0.382 = 0.382                     f(x1) = -0.6362
                                   x2 = b - L2 = 1 - 0.382 = 0.618                       f(x2) = -0.6174
                             พบวา f(x1) < f(x2) ดังนั้น [a,b] = [a,x2] = [0,0.618]
                                         FN −i         F19          4181
                                   L2 =         × L1 =     × 1.0 =       × 1.0 = 0.382
                                        FN −i+2        F21         10946

                                   i = i +1 = 3

                              ในรอบการคำนวณที่ 1 นี้ ประมาณจุดคำตอบไดเปน
                                      a + b 0 + 0.618
                                   x=
                                          =          = 0.309
                                        2       2

วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
solution
      example 3.2
                        รอบการคำนวณที่ 2: L1 = 0.618 - 0 = 0.618 และ L2 = 0.382 > 0.5 x L1 = 0.309
                             ดังนั้น x1 = b - L2 = 0.618 - 0.382 = 0.236                      f(x1) = -0.5035
                                    x2 = a + L2 = 0 + 0.382 = 0.382                           f(x2) = -0.6326
                             พบวา f(x1) > f(x2) ดังนั้น [a,b] = [x2,b] = [0.236,0.618]
                                          FN −i         F18           2584
                                    L2 =         × L1 =     × 0.382 =      × 0.618 = 0.2361
                                         FN −i+2        F20           6765

                                    i = i +1 = 4

                             ในรอบการคำนวณที่ 1 นี้ ประมาณจุดคำตอบไดเปน
                                       a + b 0.236 + 0.618
                                    x=
                                           =              = 0.4275
                                         2         2

วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
solution
      example 3.2
                ดำเนินการคำนวณวนรอบตอไปรวมทั้งสิ้น 19 รอบการคำนวณจะไดผลดังนี้
                                         a +b
                             รอบที่   
                                      x=                b	
  -­‐	
  a        
                                                                          f (x)
                                           2
                               1      0.30902          1.00000          -­‐0.58512
                               2      0.42705          0.61803          -­‐0.65349
                               3      0.50000          0.38197          -­‐0.6598
                               4      0.45492          0.23607          -­‐0.65899
                               5      0.48278          0.14590          -­‐0.66064
                               ..        ..                  ..             ..
                              17      0.48113        0.00045679         -­‐0.66065
                              18      0.48109        0.00027407         -­‐0.66065
                              19      0.48109        0.00018272         -­‐0.66065



วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
MATLAB source program




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
DEMO
                             สาธิตการคำนวณโดยโปรแกรม MATLAB




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
Gridsearch   VS   Fibonacci




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
Gridsearch                              VS       Fibonacci
          funcc='f_univar01';                                                 funcc='f_univar01';
          [xmin,fmin] = gridsearch(funcc,[0 1],9,1e-4,100);                   [xmin,fmin] = fibonacci(funcc,[0 1],1e-4,1e-4);
          Iter XL XU      Xmin Fmin Err                                       Iter Xmin Fmin XU-XL Ferr
                0      0 1.0000 0.5000 -0.6598 1.0000                           21.0000 0.3090 0.6180 -0.5851             Inf

              1.0000         0.3750   0.6250   0.5000 -0.6598   0.2500          20.0000   0.4271    0.3820 -0.6535      0.0684

              2.0000         0.4375   0.5000   0.4688 -0.6603   0.0625          19.0000   0.5000    0.2361 -0.6598      0.0063

              3.0000         0.4766   0.4922   0.4844 -0.6606   0.0156          18.0000   0.4549    0.1459 -0.6590      0.0008

              4.0000         0.4785   0.4824   0.4805 -0.6607   0.0039          17.0000   0.4828    0.0902 -0.6606     0.0017

              5.0000         0.4805   0.4814   0.4810 -0.6607   0.0010          16.0000   0.4656    0.0557 -0.6601      0.0006

              6.0000         0.4810   0.4812   0.4811 -0.6607   0.0002          15.0000   0.4762    0.0344 -0.6606      0.0005
                                                                                                     .
              7.0000         0.4811   0.4811   0.4811 -0.6607   0.0001                               .
                                                                                                     .
                                                                                3.0000    0.4811       0 -0.6607        0



         จำนวนการแทนคาฟงกชัน 7 x 9 = 63 ครั้ง                          จำนวนการแทนคาฟงกชัน 19 x 2 = 38 ครั้ง

วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ
End
                             Presentation
                               จบการนำเสนอ




วันอาทิตย์ที่ 24 มถนายน 12
                  ิ ุ

More Related Content

What's hot

แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อนแบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อนchatchai
 
Conic section2555
Conic section2555Conic section2555
Conic section2555wongsrida
 
Pat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒ
Pat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒPat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒ
Pat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒMajolica-g
 
Pretest เรขาคณิตวิเคราะห์
Pretest เรขาคณิตวิเคราะห์Pretest เรขาคณิตวิเคราะห์
Pretest เรขาคณิตวิเคราะห์nongyao9
 
บทที่ 13 ระบบสมการ
บทที่ 13 ระบบสมการบทที่ 13 ระบบสมการ
บทที่ 13 ระบบสมการkrulerdboon
 
คณิตศาสตร์ ม.ปลาย พค31001
คณิตศาสตร์ ม.ปลาย พค31001คณิตศาสตร์ ม.ปลาย พค31001
คณิตศาสตร์ ม.ปลาย พค31001Thidarat Termphon
 

What's hot (11)

แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อนแบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
แบบฝึกทักษะเรื่อง จำนวนเชิงซ้อน
 
Conic section2555
Conic section2555Conic section2555
Conic section2555
 
Pat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒ
Pat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒPat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒ
Pat1 เธ„เธงเธฒเธกเธ–เธ™เธฑเธ”เธ—เธฒเธ‡เธ„เธ“เธดเธ•เธจเธฒเธชเธ•เธฃเนŒ
 
Pretest เรขาคณิตวิเคราะห์
Pretest เรขาคณิตวิเคราะห์Pretest เรขาคณิตวิเคราะห์
Pretest เรขาคณิตวิเคราะห์
 
จำนวนเชิงซ้อน
จำนวนเชิงซ้อนจำนวนเชิงซ้อน
จำนวนเชิงซ้อน
 
Eng
EngEng
Eng
 
บทที่ 13 ระบบสมการ
บทที่ 13 ระบบสมการบทที่ 13 ระบบสมการ
บทที่ 13 ระบบสมการ
 
Function1
Function1Function1
Function1
 
Graph
GraphGraph
Graph
 
คณิตศาสตร์ ม.ปลาย พค31001
คณิตศาสตร์ ม.ปลาย พค31001คณิตศาสตร์ ม.ปลาย พค31001
คณิตศาสตร์ ม.ปลาย พค31001
 
Function3
Function3Function3
Function3
 

Fibonacci for print

  • 1. FIBONACCI SEARCH METHOD ระเบียบวิธีการคนหาของฟโบนาซซี Presented Miss. Julaluk Laokhunkar by Mr. Chaiwat Luejai วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 4. history เลโอนารโด ปซาโน (Leonardo Pisano) ประมาณ ค.ศ. 1170 - 1250 เปน นักคณิตศาสตรชาวอิตาลี มีชื่อเสียงโดงดังที่สุดจากการคนพบจำนวนฟโบ นาซซี และบทบาทในการเผยแพรการเขียนและวิธีการคำนวณระบบจำนวน ฐานสิบที่ใหคาตามหลักแบบอาราบิก (Arabic positional decimal system) ที่ ใชกันในปจจุบัน หลายคนยกยองวาเขาเปนนักคณิตศาสตรที่เกงที่สุดในยุค กลาง โดยการค น พบจำนวนฟ โ บนาซซี จ ากการสำรวจป ญ หาจำนวน ประชากรของกระตาย ตัวอยางของลำดับนี้ 16 อันดับแรก 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 ในป 1953 เคียเฟอร (Kiefer) ไดพิสูจนความสัมพันธลำดับตัวเลขฟโบนาซซี ที่นิยามโดย F0 = F1 = 1; FN = FN-1 + FN-2 สำหรับ N ≥ 2 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 5. equation 5 FN = ⎡( 5 + 1)N +1 + (−1)N ( 5 − 1)N +1 ⎤ N +1 ⎣ โดยที่ N = 0, 1, ... 5(2 ) ⎦ หรืออยูในรูปลิมิต FN 5 −1 lim = N→∞ F 2 N +1 สามารถกำหนดชวงของการคนหาไดดังนี้ b-a FN × δ = b - a นั่นคือ δ= ≤ε FN วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 9. algorithm step 1 : กำหนดชวง [a,b] b-a step 2 : δ= FN ≤ε FN −2 กำหนดให i = 2 และคำนวณ L2 = × (b − a) FN step 3 : คำนวณ L1 = b - a ถา L2 < 0.5xL1 ใหคำนวณ x1 = a + L2, x2 = b - L2 ถา L2 > 0.5xL1 ใหคำนวณ x1 = b - L2, x2 = a + L2 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 10. algorithm step 4 : ตรวจสอบคาฟงกชันของจุด x1 และ x2 ถา f(x1) < f(x2) ให [a,b] = [a,x2] ถา f(x1) > f(x2) ให [a,b] = [x2,b] ถา f(x1) = f(x2) ให [a,b] = [x1, x2] และ i = i+1 คำนวณ L = FN −i 2 L 1 FN −i+2 step 5 : เพิ่มตัวนับ i = i+1 ถา i < n ทำซ้ำ step 3 a +b step 6 : จุดคำตอบมีคาเปน xopt = 2 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 12. example 3.2 กำหนดฟงกชันวัตถุประสงคเปน f (x) = x − 3x i e 2 −x ในชวงการคนหา [0,1] โดยใชระเบียบวิธีการคนหาของฟโบนาซซีดวยความคลาดเคลื่อนที่ยอมรับไดเทากับ 0.0001 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 13. solution example 3.2 ทำการคำนวณรอบสูงสุดที่ตองใช จากการแปรคา N จาก 1 ใหเพิ่มขึ้นเรื่อยๆ จะพบวาที่คา FN=21 = 10946 b − a 1− 0 δ= = = 9.14 × 10 −5 ≤ ε (1× 10 −4 ) FN 10946 กำหนดให i = 2 และ FN −2 F19 L2 = × (b − a) = × (1− 0) = 0.382 FN F22 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 14. solution example 3.2 รอบการคำนวณที่ 1: L1 = 1 - 0 = 1.0 และ L2 = 0.382 < 0.5 x 1.0 ดังนั้น x1 = a + L2 = 0 + 0.382 = 0.382 f(x1) = -0.6362 x2 = b - L2 = 1 - 0.382 = 0.618 f(x2) = -0.6174 พบวา f(x1) < f(x2) ดังนั้น [a,b] = [a,x2] = [0,0.618] FN −i F19 4181 L2 = × L1 = × 1.0 = × 1.0 = 0.382 FN −i+2 F21 10946 i = i +1 = 3 ในรอบการคำนวณที่ 1 นี้ ประมาณจุดคำตอบไดเปน a + b 0 + 0.618 x=  = = 0.309 2 2 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 15. solution example 3.2 รอบการคำนวณที่ 2: L1 = 0.618 - 0 = 0.618 และ L2 = 0.382 > 0.5 x L1 = 0.309 ดังนั้น x1 = b - L2 = 0.618 - 0.382 = 0.236 f(x1) = -0.5035 x2 = a + L2 = 0 + 0.382 = 0.382 f(x2) = -0.6326 พบวา f(x1) > f(x2) ดังนั้น [a,b] = [x2,b] = [0.236,0.618] FN −i F18 2584 L2 = × L1 = × 0.382 = × 0.618 = 0.2361 FN −i+2 F20 6765 i = i +1 = 4 ในรอบการคำนวณที่ 1 นี้ ประมาณจุดคำตอบไดเปน a + b 0.236 + 0.618 x=  = = 0.4275 2 2 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 16. solution example 3.2 ดำเนินการคำนวณวนรอบตอไปรวมทั้งสิ้น 19 รอบการคำนวณจะไดผลดังนี้ a +b รอบที่  x= b  -­‐  a  f (x) 2 1 0.30902 1.00000 -­‐0.58512 2 0.42705 0.61803 -­‐0.65349 3 0.50000 0.38197 -­‐0.6598 4 0.45492 0.23607 -­‐0.65899 5 0.48278 0.14590 -­‐0.66064 .. .. .. .. 17 0.48113 0.00045679 -­‐0.66065 18 0.48109 0.00027407 -­‐0.66065 19 0.48109 0.00018272 -­‐0.66065 วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 18. DEMO สาธิตการคำนวณโดยโปรแกรม MATLAB วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 19. Gridsearch VS Fibonacci วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 20. Gridsearch VS Fibonacci funcc='f_univar01'; funcc='f_univar01'; [xmin,fmin] = gridsearch(funcc,[0 1],9,1e-4,100); [xmin,fmin] = fibonacci(funcc,[0 1],1e-4,1e-4); Iter XL XU Xmin Fmin Err Iter Xmin Fmin XU-XL Ferr 0 0 1.0000 0.5000 -0.6598 1.0000 21.0000 0.3090 0.6180 -0.5851 Inf 1.0000 0.3750 0.6250 0.5000 -0.6598 0.2500 20.0000 0.4271 0.3820 -0.6535 0.0684 2.0000 0.4375 0.5000 0.4688 -0.6603 0.0625 19.0000 0.5000 0.2361 -0.6598 0.0063 3.0000 0.4766 0.4922 0.4844 -0.6606 0.0156 18.0000 0.4549 0.1459 -0.6590 0.0008 4.0000 0.4785 0.4824 0.4805 -0.6607 0.0039 17.0000 0.4828 0.0902 -0.6606 0.0017 5.0000 0.4805 0.4814 0.4810 -0.6607 0.0010 16.0000 0.4656 0.0557 -0.6601 0.0006 6.0000 0.4810 0.4812 0.4811 -0.6607 0.0002 15.0000 0.4762 0.0344 -0.6606 0.0005 . 7.0000 0.4811 0.4811 0.4811 -0.6607 0.0001 . . 3.0000 0.4811 0 -0.6607 0 จำนวนการแทนคาฟงกชัน 7 x 9 = 63 ครั้ง จำนวนการแทนคาฟงกชัน 19 x 2 = 38 ครั้ง วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ
  • 21. End Presentation จบการนำเสนอ วันอาทิตย์ที่ 24 มถนายน 12 ิ ุ