ค้นหาค่าต่ำสุดของฟังก์ชันโดยใช้วิธีส่วนสีทอง c ตัวอย่างของวิธีส่วนสีทอง

แนวคิดหลักของวิธีนี้คือการลดจำนวน n วการคำนวณฟังก์ชันในแต่ละขั้นตอน (ยกเว้นขั้นแรก) ถึง 1 (ค่าต่ำสุดที่เป็นไปได้) พร้อมใช้ต่อไปเมื่อค้นหาจุดทดลองขั้นต่ำที่สองของแต่ละขั้นตอน ซึ่งอยู่ในช่วงความเชื่อมั่นใหม่ แม้ว่าช่วงความเชื่อมั่นจะลดลงอย่างมีนัยสำคัญน้อยกว่าสองครั้ง (ตรงกันข้ามกับการแบ่งขั้ว) วิธีนี้เนื่องจากการลดลง n วโดยทั่วไปจะทำงานได้เร็วกว่ามาก

อัตราส่วนทองคำส่วน [ ก ข] เรียกว่าการหารด้วยจุดกึ่งกลาง กับซึ่งความสัมพันธ์ (รูปที่ 10.12ก) , โดยที่ ξ คืออัตราส่วนทองคำ

รูปที่ 10.12 ตรงและกลับส่วนสีทองของส่วน

แสดงผ่าน x และส่วน abเซ็กเมนต์ เอซและ cb: ไฟฟ้ากระแสสลับ = x เอบี; cb= x ไฟฟ้ากระแสสลับ= x2 ab

จากสภาพ เอซี + ซีบี = เอบีหลังจากแทนนิพจน์เหล่านี้แล้วลดขนาดเป็น abเราได้สมการกำลังสองต่อไปนี้สำหรับ x:

x 2 + x - 1 = 0 .

เราค้นหาราก:

เมื่อละทิ้งรูทเชิงลบเราจะได้ค่าอัตราส่วนที่ต้องการ:

แยกส่วน [ ก ข] เป็นไปได้ไม่เพียง แต่ในทิศทางไปข้างหน้า แต่ยังอยู่ในทิศทางตรงกันข้าม - จาก ถึง . จุดที่คล้ายกัน อยู่อย่างสมมาตร กับเทียบกับจุดกึ่งกลางของช่วง ( เอ+บี)/2 (รูปที่ 10.12 ข).

ค่าของอัตราส่วน โฆษณา/abเราได้โดยการลบ x จาก 1:

คะแนน , กับซึ่งกำหนดส่วนผกผันและโดยตรงของส่วนในส่วนสีทองมีคุณสมบัติดังต่อไปนี้

1. หากเราทิ้งส่วนหนึ่งของส่วน [ ก,ง], ที่ กับ ง, ข].

2. หากเราทิ้งส่วนหนึ่งของส่วน [ ค, ข], ที่ คืออัตราส่วนทองคำของส่วนที่เหลือ [ ก, ค].

คุณสมบัติเหล่านี้สามารถพิสูจน์ได้โดยการแทนค่าโดยตรง

สมมติว่าจำเป็นด้วยความถูกต้อง อีหาค่าต่ำสุดของฟังก์ชันยูนิโมดอล (x) บน [ ก ข].

การดำเนินการเบื้องต้น ( ขั้นตอนที่ 0) .

ส่วนความเชื่อมั่นจะเท่ากับส่วนที่กำหนด: 0 = ก, ข 0 = ข.

ขั้นตอน ฉัน(i>0) จะดำเนินการวนซ้ำเมื่อเงื่อนไข ( ข ฉัน - ฉัน >จ).

ขั้นตอนที่ 1 . 1. การคำนวณตำแหน่งของจุดทดลองสองจุด:

เอ็กซ์ 2 =ก 0 + x( 0 - ก 0)» 0 + 0,618 ( 0 - ก 0);

เอ็กซ์ 1 = (ข 0 + ก 0) -x 2 » 0 + 0,382( 0 - ก 0).

2. การคำนวณค่าฟังก์ชัน (x 1) และ (x 2).

3. การวิเคราะห์ค่าฟังก์ชันที่จุด x 1, x 2และเปลี่ยนส่วนความเชื่อมั่นโดยการเปรียบเทียบกับขั้ว:

ก) ที่ (x 1) ³ (x 2) ยอมรับ: 1 = x 1 , เอ็กซ์ 1 = x 2 ,ข 1 = ข 0 ,

ข) เมื่อไหร่ (x 1) < F (x 2) ยอมรับ: 1 = ก 0 , เอ็กซ์ 2 = x 1 ,ข 1 = x 2 .

4. การตรวจสอบการสิ้นสุดของรอบ: ถ้า ( 1 - 1) > ความต่อเนื่องของ e - loop มิฉะนั้นให้ออก

ขั้นตอนที่ i (i>1) . จากบทที่แล้ว ( ฉัน-1) ทราบค่าหนึ่งของฟังก์ชัน (x) ที่จุดภายใน เอ็กซ์ส่วนความเชื่อมั่น [ ฉัน - 1 ; x ฉัน - 1 ]. ดังนั้น สำหรับการลดลง การแนะนำจุดทดลองใหม่เพียงจุดเดียวก็เพียงพอแล้ว

1. การคำนวณตำแหน่งของจุดทดลองใหม่: x ¢ =(ข ฉัน - 1 + และฉัน - 1) - เอ็กซ์, การคำนวณค่าฟังก์ชัน (x ¢).

2. สั่งซื้อจุดทดลอง เอ็กซ์, x ¢และค่าฟังก์ชันในนั้น:

ถ้า ( เอ็กซ์< х¢ ), ที่ ( เอ็กซ์ 1 = x; (x 1)=(x); เอ็กซ์ 2 = x ¢; (x 2)=(x ¢) };

มิฉะนั้น ( เอ็กซ์ 1 = x ¢;(x 1)=(x ¢) ; เอ็กซ์ 2 = x; (x 2)=(x) }.

ขั้นตอนที่ 3 และ 4 เหมือนกับขั้นตอนที่ 1

อัตราการบรรจบกันและความแม่นยำของวิธีการเนื่องจากในแต่ละขั้นตอนความยาวของช่วงความมั่นใจจะลดลง เสื้อ = 1/x » 1.618 เท่า แล้วความยาว[ 1 ,ข 1 ] สัมพันธ์กับความยาว [ ก ข] ด้วยวิธีการต่อไปนี้: 1 -ก 1 = x ( 0 -ก 0) = x ( ปริญญาตรี).

โดยการเปรียบเทียบสำหรับขั้นตอนโดยพลการ เคความยาวส่วนความเชื่อมั่น: ข ก - ก = x เค (ปริญญาตรี).

กระบวนการสิ้นสุดลงเมื่อความไม่เท่าเทียมกัน bk - ak = xk(ปริญญาตรี) £ อี

มันเป็นไปตามที่หมายเลขขั้นตอน เคซึ่งบรรลุความแม่นยำที่ต้องการ อี, เท่ากับ เค(e)= ]บันทึก t ( ปริญญาตรี)/e [ = ] บันทึก t [.

ในขั้นตอนแรกจะมีการคำนวณฟังก์ชันวัตถุประสงค์สองครั้งในภายหลัง n ว = 1. ดังนั้นจำนวนการคำนวณที่จำเป็นทั้งหมด (เอ็กซ์)

พี(จ)=1 + n w k(e) = 1+] บันทึก t (( ปริญญาตรี)/จ)[ .

การพึ่งพาอาศัยกัน ( พี) เราหาได้จากความเท่าเทียมกัน ( ปริญญาตรี)/e = เสื้อ ( n-1) : อี ( พี) = (ปริญญาตรี)x (n-1) .

อัตราการเติบโตแบบไม่มีซีมโทติคของการพึ่งพา e( ) และ (e) สำหรับวิธีอัตราส่วนทองคำ:

จ ( ) = โอ[( ปริญญาตรี)xn];

พี( อี) = O=โอ

วิธีนี้เร็วกว่าการแบ่งขั้วเนื่องจากในสูตรสำหรับ พี(e) ฐานของลอการิทึม t » 1.618< 2. Как и дихотомия, он является регулярным. Также он принадлежит к группе так называемых симметричных методов.

วิธีการตามลำดับสำหรับการกำหนดค่าสูงสุดเรียกว่า สมมาตร , ถ้าในแต่ละ ฉัน-ขั้นตอนนั้นของการค้นหาค่าสุดขั้วของช่วงความเชื่อมั่น [ ฉัน,ขฉัน] ทราบจุดทดลองหนึ่งจุดแล้ว x 1 และค่าฟังก์ชันวัตถุประสงค์ (x 1) ในนั้น จุดทดลองที่สอง (ใหม่) x 2 กำหนดเป็นแบบสมมาตร x 1 เทียบกับจุดกึ่งกลาง ( ฉัน + ขฉัน)/2 ช่วงความเชื่อมั่น: x 2 = ฉัน + ขฉัน - x 1 .

วิธีแบ่งขั้วไม่สมมาตร

หมายเหตุ 1.จุดทดลองใช้ที่ทราบ x 1 ในวิธีสมมาตรสามารถน้อยกว่าหรือมากกว่าค่า ( ฉัน + ขฉัน)/2 .

หมายเหตุ 2. คุณสมบัติสมมาตรของวิธีนี้ช่วยให้การคำนวณจุดทดสอบใหม่ง่ายขึ้นอย่างมาก สูตร x 2 = ฉัน + ขฉัน - x 1 ให้คุณคำนวณจุดทดลองที่สอง x2ไม่ว่าจุดแรกจะเป็นอย่างไร x 1 ตั้งอยู่เทียบกับจุดกึ่งกลางของส่วนความเชื่อมั่น (ก่อนหรือหลัง)

หมายเหตุ 3. ในการคำนวณเชิงปฏิบัติที่มีการวนซ้ำจำนวนมากเนื่องจากข้อผิดพลาดในการคำนวณสะสมตำแหน่งของจุดทดสอบ x 1 ในกลุ่ม [ ฉัน,ขฉัน] สามารถเบี่ยงเบนไปจากอัตราส่วนทองคำได้อย่างมาก ในกรณีนี้ ตามลำดับ จำนวนการคำนวณที่จำเป็นทั้งหมดของฟังก์ชันวัตถุประสงค์ พี(จ) จะเพิ่มขึ้น เพื่อป้องกันปรากฏการณ์นี้ตำแหน่งของจุด xด้วยค่าที่ทราบของฟังก์ชันสามารถปรับปรุงเป็นระยะตามสูตร x=a+ x( ปริญญาตรี)หรือ x=a+(1x)( ปริญญาตรี) ขึ้นอยู่กับว่าค่าใดที่ใกล้เคียงกับค่าเหล่านี้มากที่สุด

ตัวอย่างที่ 1. ค้นหาค่าต่ำสุดของฟังก์ชัน (เอ็กซ์) =เอ็กซ์ 2 2เอ็กซ์ในช่วงความเชื่อมั่นตามวิธีส่วนสีทองด้วยความแม่นยำที่กำหนด e = 0.5

สารละลาย.

ขั้นตอนที่ 0. 0 = ก, ข 0 = ข.

ขั้นตอนที่ 1. การคำนวณตำแหน่งของจุดทดลองสองจุด: เอ็กซ์ 2 =ก 0 + x( 0 ก 0) "1.3124; เอ็กซ์ 1 = ( 0 +ก 0)-เอ็กซ์ 2) » 0.8876. ค่าฟังก์ชันในนั้น: (x 1) = -0,9874; (x 2) = -0.7768. เพราะ (x 1)<(x x 2 ;ข 0 ]เราได้รับส่วนความเชื่อมั่นใหม่ [ 1 ;ข 1 ] = .

1 -ก 1 = 1.1124 > e = 0.5 ค้นหาต่อไป

ขั้นตอนที่ 2. ขอบเขตของความเชื่อมั่น 1 = 0,2; 1 = 1.3124. มันรู้ค่าของฟังก์ชันที่จุด เอ็กซ์" 0,8876,(x) = -0,9874.

จุดทดลองใหม่: x ¢ =( 1 +ก 1) - 0.8876 » 0.6248. ค่าฟังก์ชันที่จุดใหม่ x ¢: (x ¢) = -0,8592.

เพราะว่า x ¢<х, จากนั้นเรายอมรับ เอ็กซ์ 1 = x ¢;(x 1) =(x ¢); เอ็กซ์ 2 = x; (x 2)= ฉ(x).

เพราะ (x 1) >ฉ(x 2) จากนั้นเราจะละทิ้งช่วงความเชื่อมั่นบางส่วน [ 1 ;x 1 ].เราได้รับส่วนใหม่ [ 2 ; ข 2 ] = .

2 -ก 2 \u003d 0.6878\u003e e \u003d 0.5 เราค้นหาต่อไป

ขั้นตอนที่ 3. 2 = 0,6246; 2 = 1.3124. ทราบค่าของฟังก์ชัน ณ จุดนั้นแล้ว เอ็กซ์" 0,8876, (x) = -0,9874.

จุดทดลองใหม่: x ¢ =( 2 +ก 2) - 0.8876 » 1.0494 .. ค่าของฟังก์ชันที่จุดใหม่ x ¢: (x ¢)= --0,9976.

เพราะว่า x ¢> x,จากนั้นเรายอมรับ เอ็กซ์ 1 = x; (x 1) =(x); เอ็กซ์ 2 = x ¢; (x 2)= ฉ(x ¢).

เพราะ (x 1)>(x 2) จากนั้นเราจะละทิ้งส่วนหนึ่งของส่วนความเชื่อมั่น [ 1 ; x 1 ] และรับส่วน [ 3 ; ข 3 ] = .

3 -ก 3 =0,4248 < e =0,5;следовательно, поиск завершен.

คำตอบ.เสร็จสิ้น 3 ขั้นตอน ใช้ 4 จุดทดสอบ พบช่วงความเชื่อมั่นสุดท้าย: [ 3 ,ข 3] = ความยาว 0.4248

ดังที่เห็นได้จากตัวอย่างที่ 1 หน้า 10.3 จำนวนการคำนวณฟังก์ชันที่ต้องการลดลงเมื่อเทียบกับวิธี dichotomy จาก 6 เป็น 4

คำถามเพื่อทดสอบความรู้

1. สิ่งที่เรียกว่า a) ส่วนสีทองของส่วน b) ส่วนสีทองโดยตรงและย้อนกลับของส่วน

3. คุณสมบัติใดของส่วนสีทองที่ใช้เมื่อลดช่วงความเชื่อมั่น

4. วิธีใดที่เรียกว่าสมมาตรและสมมาตรใช้อย่างไรเพื่อทำให้การคำนวณจุดตัวอย่างง่ายขึ้น

5. ขั้นตอนแรกและขั้นตอนต่อไปในวิธีส่วนสีทองทำอย่างไร

6. ทำไมวิธีส่วนสีทองถึงเร็วกว่าการแบ่งขั้ว?

เกี่ยวกับวิธีอัตราส่วนทองคำ:

เป็นวิธีที่ง่ายและรวดเร็วอย่างแน่นอน และตามปกติ ความเร็วไม่ได้ส่งผลต่อความแม่นยำ ฉันกำลังบอกว่าหากมีค่าต่ำสุด (สูงสุด) หลายค่าในช่วงเวลาการค้นหาที่กำหนด อัลกอริทึมนี้สามารถส่งคืนค่าสูงสุดในเครื่อง (ไม่ใช่ค่าสูงสุด ไม่ใช่ค่าสัมบูรณ์) ได้อย่างง่ายดาย

ออกกำลังกาย:

เขียนโปรแกรมที่ให้คุณทดสอบอัลกอริทึมการค้นหาแบบสุดโต่ง วิธีส่วนสีทองในตัวอย่างห้าฟังก์ชันตามอำเภอใจ ข้อมูลเริ่มต้นสำหรับการค้นหาควรเป็นขอบเขตของช่วงเวลา ความแม่นยำ และประเภทของค่าสูงสุด (MAX หรือ MIN) โปรแกรมควรแสดง กราฟของฟังก์ชันในช่วงเวลาที่กำหนดและพิกัดของจุดสูงสุด

โปรแกรมเหมาะสมที่จะออก คลาสและโมดูลต่อไปนี้:

  1. โมดูลแผ่นงาน Excel (SheetGoldCutting) ซึ่งในแบบฟอร์มจะมีการควบคุมที่จำเป็นสำหรับกระบวนการทดสอบ
  2. แบบฟอร์มการป้อนข้อมูล FormDann;
  3. คลาส ExtremGC ที่คำนวณพิกัดของจุดสุดโต่งด้วยความแม่นยำที่กำหนด เช่นเดียวกับอาร์เรย์ของจุดของกราฟฟังก์ชันในช่วงเวลาที่กำหนด (สำหรับแสดงบนไดอะแกรม)
  4. โมดูลมาตรฐาน GoldCutting สำหรับอธิบายค่าคงที่ ตัวแปร และฟังก์ชันทั่วโลก

ตัวอย่างเช่น ดังนั้น...

รูปที่ 1 แผ่นงาน Excel พร้อมแผนภูมิ ปุ่มคำสั่งสองปุ่มและปุ่มเลือกฟังก์ชัน


รูปที่ 2 แบบกรอกข้อมูลเบื้องต้น

แบบฟอร์มนี้เรียกว่าอย่างชัดเจนเมื่อคลิก ปุ่มคำสั่งแรก(อยู่บนแผ่นงาน Excel) หรือโดยอ้อมหากในขณะที่คลิก ปุ่มคำสั่งที่สอง(อยู่ในแผ่นงาน Excel) ข้อมูลเริ่มต้นไม่มีเงื่อนไขที่จำเป็นสำหรับการเริ่มอัลกอริทึม
เพื่อความสะดวกของผู้ใช้ทุกองค์ประกอบ กล่องข้อความอนุญาตให้ป้อนข้อมูล ค่าตัวเลขเท่านั้น
เมื่อคลิกปุ่ม "ยกเลิก"ตัวแปรทั้งหมดจะได้รับค่าที่มีอยู่ในขณะที่เปิดแบบฟอร์ม

เมื่อเปิดไฟล์ (หากเปิดใช้งานมาโคร) หรือเปิดใช้งานมาโคร (หากปิดใช้งานในขณะที่เปิดไฟล์) ตัวจัดการเหตุการณ์จะถูกดำเนินการเพื่อตั้งค่า (กำหนด) หนึ่งในฟังก์ชันที่เตรียมไว้เป็นฟังก์ชันทดสอบเริ่มต้น ในการทำเช่นนี้ก็เพียงพอที่จะทำเครื่องหมาย (เช่นอันแรก) ปุ่มตัวเลือก(หรือที่มักเรียกว่า - ปุ่มตัวเลือก) และเรียกมาโครที่กำหนดให้กับปุ่มนี้

สมุดงานย่อยส่วนตัว_เปิด()
ปุ่มตัวเลือกมีหมายเลขตั้งแต่ 5 ถึง 9 ในหนังสือเล่มนี้
ดังนั้นโดยค่าเริ่มต้น ฉันจึงเน้นที่ปุ่มแรก
แผ่นงาน(1).รูปร่าง("ปุ่มตัวเลือก 5").ControlFormat.Value = 1
SheetGoldCutting.OptBut1_Click
จบย่อย

วิธี อัลกอริทึมระดับ ExtremeGCซึ่งในความเป็นจริงแล้ว การกำหนดพิกัดของจุดสูงสุดจะมีลักษณะดังนี้:

"การหาค่าสุดขีดของฟังก์ชันในเซ็กเมนต์ วิธีเซ็กเมนต์สีทอง
อัลกอริทึมย่อยสาธารณะ (v1 As Double, v2 As Double, v3 As Double, v4 As Double, findMax As Boolean)
หรี่ x1 เท่าสองเท่า, x2 เท่าสองเท่า, y1 เท่าสองเท่า, y2 เท่าสองเท่า, sme เท่าสองเท่า
FullArrayOnly v1, v2, v3, v4" เพื่อตรวจสอบว่าอาร์กิวเมนต์นั้นถูกต้องหรือไม่

ถ้าไม่ใช่ BadDannThen

Zc = (1 + ตร.(5)) / 2
n = 0 "จำนวนการแยก (ตัวแปรโมดูลคลาส)
ทำในขณะที่ b - a > ep
sme = (ข - ก) / zc
x1 = b - sme: x2 = a + sme
y1 = theFunc(x1): y2 = theFunc(x2)
ถ้า findMax แล้ว
"ค้นหาสูงสุด
ถ้า y1 a = x1
อื่น
ข=x2
จบ ถ้า
อื่น
"ค้นหาขั้นต่ำ
ถ้า y1 >= y2 แล้ว
เอ = x1
อื่น
ข=x2
จบ ถ้า
จบ ถ้า
n = n + 1 "จำนวนการแยก (ตัวแปรคลาสโมดูล)
ห่วง
dxk = Abs(b - a) " ค่าขั้นตอนสุดท้าย
xe = (a + b) / 2: ye = theFunc(xe) " ผลลัพธ์: พิกัดจุดมาก

จบ ถ้า
จบย่อย

ที่ไหน
FullArray เท่านั้น- วิธีคลาสส่วนตัวสำหรับตรวจสอบการยอมรับของอาร์กิวเมนต์และการเติมอาร์เรย์ของจุดแผนภูมิ
บาดแดน– ธงยอมรับอาร์กิวเมนต์;
สังกะสีเป็นค่าคงที่ของส่วนสีทอง
ก ข- ขอบเขตของช่วง;
ตอนคือความแม่นยำในการค้นหาที่ระบุ ε ;
ค้นหาแม็กซ์เป็นพารามิเตอร์ที่แสดงลักษณะของโหมดการค้นหา (เมื่อ จริงมองหาสิ่งสูงสุด เท็จ- ขั้นต่ำ);
theFunc(x เป็นสองเท่า) เป็นสองเท่าเป็นวิธีคลาสที่คืนค่าของฟังก์ชันที่ทดสอบโดยขึ้นอยู่กับค่าของอาร์กิวเมนต์

สำหรับท่านที่สนใจโค๊ดที่เหลือ ติดต่อได้ที่ ...
หากคุณต้องการเปลี่ยนแปลงบางสิ่งในโครงการเพื่อให้เหมาะกับความต้องการของคุณ (เช่น เปลี่ยนฟังก์ชัน) - ได้โปรด จะไม่มีปัญหา!

ซอร์สโค้ดเปิดอยู่แล้ว ใช้ !

หากคุณไม่เห็นแบบฟอร์มการป้อนข้อมูล แสดงว่าคุณลืมเปิดใช้งานมาโคร ...

ฉันต้องการดึงความสนใจของคุณไปที่ข้อเท็จจริงที่ว่าสำหรับฟังก์ชันแรก ค่าอาร์กิวเมนต์ต้องไม่น้อยกว่าหรือเท่ากับศูนย์

หากต้องการดูว่าอัลกอริทึมทำผิดพลาดอย่างไรและค้นหาค่าสูงสุดในเครื่องแทนที่จะเป็นค่าสัมบูรณ์ ให้ตั้งค่าช่วงเวลาที่เพียงพอ (เช่น จาก 0 ถึง 25) สำหรับ 4 หรือ 5 ฟังก์ชันที่มีช่วงเวลาที่ชัดเจน ...

วิธีส่วนสีทอง

พิจารณาการจัดเรียงจุดแบบสมมาตร x 1 และ เอ็กซ์ 2 ในส่วน [ ; ] ซึ่งหนึ่งในนั้นกลายเป็นจุดทดสอบและในกลุ่มใหม่ที่ได้รับหลังจากการยกเว้นส่วนหนึ่งของกลุ่มเดิม การใช้คะแนนดังกล่าวช่วยให้การวนซ้ำของวิธีการกำจัดเซกเมนต์แต่ละครั้ง ยกเว้นวิธีแรก สามารถจำกัดตัวเราให้กำหนดได้เพียงค่าเดียวเท่านั้น (x) เนื่องจากพบค่าอื่นแล้วในการทำซ้ำครั้งก่อนๆ

ให้เราพิจารณากลุ่มก่อน และเพื่อความชัดเจน สมมติว่าเมื่อลดลง ด้านขวาของส่วนนี้จะถูกแยกออก อนุญาต เอ็กซ์ 2 = แล้วจุดที่ตั้งสมมาตร เอ็กซ์ 1 \u003d 1- (รูปที่ 2.2)

ข้าว. 2.2.

จุดทดลอง เอ็กซ์ 1 ส่วนจะไปที่จุดทดลอง เอ็กซ์ 2 = 1- กลุ่มใหม่ ชี้ เอ็กซ์ 2 = , และ เอ็กซ์ 2 = 1- แบ่งส่วนและในอัตราส่วนเดียวกัน, ความเท่าเทียมกันหรือควรจะพอใจ, จากที่เราพบค่าบวก ... ดังนั้น, เอ็กซ์ 1 = 1- = , .

สำหรับส่วนโดยพลการ [ ; ] นิพจน์สำหรับจุดทดสอบจะอยู่ในรูปแบบ

1. จุด x 1 และ เอ็กซ์ 2 มีคุณสมบัติดังต่อไปนี้: แต่ละอันแบ่งส่วน [ ; ] ออกเป็นสองส่วนที่ไม่เท่ากัน เพื่อให้อัตราส่วนของความยาวของส่วนทั้งหมดต่อความยาวของส่วนที่ใหญ่กว่านั้นเท่ากับอัตราส่วนของความยาวของส่วนที่ใหญ่กว่าและเล็กกว่าของส่วนนั้น คะแนนที่มีคุณสมบัตินี้เรียกว่า จุดของส่วนสีทองส่วน [ ; ].

2. ในการทำซ้ำแต่ละครั้งของการกำจัดส่วนที่มีคะแนนการทดลอง หนึ่งในนั้นจะไปที่ส่วนถัดไปและค่า (x) ไม่ควรคำนวณ ณ จุดนี้ หากส่วนใหม่กลายเป็น [ ; เอ็กซ์ 2 ] จากนั้นจุดทดลองของเซกเมนต์ดั้งเดิมจะผ่านไป กลายเป็นจุดทดลองที่สอง ( เอ็กซ์ 2 "= x 1) (รูปที่ 2.2) ในกรณีของการเปลี่ยนไปยังส่วน [ เอ็กซ์ 1 ; ] จุดทดลองของส่วนเดิมกลายเป็นจุดทดลองแรกของส่วน [ เอ็กซ์ 1 ; ].

3. ตรวจสอบได้ง่าย เอ็กซ์ 1 =a+b-เอ็กซ์ 2 , และ x 2 =a+b-เอ็กซ์ 1 . ดังนั้น ในการวนซ้ำของวิธีส่วนสีทองแต่ละครั้ง จุดทดลองที่ขาดหายไปของส่วนใหม่สามารถหาได้จากจุดทดลองที่ผ่านไปแล้วโดยใช้การบวกและการลบ

4. เมื่อสิ้นสุดการคำนวณด้วยวิธีส่วนสีทองเป็นค่าโดยประมาณ X*คุณสามารถใช้ช่วงกลางของส่วนสุดท้ายที่ได้รับ

ในการวนซ้ำแต่ละครั้ง ส่วนของการค้นหาจุดต่ำสุดจะลดลงในอัตราส่วนเดียวกัน ดังนั้น ผลที่ได้คือ พีการทำซ้ำความยาวของมันจะกลายเป็น . ดังนั้นความแม่นยำ คำจำกัดความของจุด X*หลังจาก พีพบการวนซ้ำจากความเท่าเทียมกันและเงื่อนไขสำหรับยุติการค้นหาจุด เอ็กซ์* ด้วยความแม่นยำคือความไม่เท่าเทียมกัน n

ตัวอย่างของการแก้ปัญหาโดยใช้วิธีการแบ่งขั้วและส่วนสีทอง

กำหนดฟังก์ชันโดยที่ d=2, e=1

จำเป็นต้องค้นหาค่าต่ำสุดในช่วงเวลา ที่ไหน เช่น ในส่วนของ

เขียนโปรแกรมที่จะให้จำนวนการวนซ้ำด้วยความแม่นยำ e \u003d 0.001

แก้ได้ 2 วิธี คือ dichotomy และ golden section

วิธีการแบ่งขั้ว:

ตั้งแต่ f1

ตั้งแต่ f1

วิธีแก้ไขโดยวิธีส่วนสีทอง:

ตั้งแต่ f1

ตั้งแต่ f1

ตั้งแต่ f1

รายชื่อโปรแกรมที่ใช้วิธีการแบ่งขั้วและส่วนสีทองแสดงอยู่ในภาคผนวก A

ลองพิจารณาปัญหาจากตัวอย่างที่ 2.6 อีกครั้ง ซึ่งเราต้องการย่อ f(x)=(100-) เอ็กซ์) 2 ในช่วง 60 ปอนด์ เอ็กซ์ 150 ปอนด์ เพื่อที่จะผ่านช่วงเวลาของหน่วยความยาว เราทำการเปลี่ยนแปลงตัวแปรโดยการตั้งค่า w=( เอ็กซ์- 60)/90. ดังนั้นปัญหาจะอยู่ในรูปแบบต่อไปนี้: เพื่อย่อให้เล็กสุด ฉ(w) = (40 – 90) 2 ภายใต้ข้อจำกัด 0£w£1

การทำซ้ำ 1. ฉัน 1 = (0, 1);L1=ล. มาทำการคำนวณสองค่าแรกของค่าฟังก์ชันกัน:

w 1 = เสื้อ = 0,618, ฉ(w1) = 244,0

ว 2 = 1-ที= ที 2 = 0,382, ฉ(w2) = 31,6

เพราะ ฉ(w2)< f(w 1) และ ว 2< w 1 , ช่วงเวลา ว ³ ว 1ไม่รวม

การทำซ้ำ 2 ฉัน 2 =(0. 0,618);L2 = 0,618 = ที. การคำนวณค่าฟังก์ชันครั้งต่อไปจะดำเนินการที่จุด

ว 3 \u003d t-t 2 \u003d t (1-t) \u003d t 3\u003d 0.236, f (w 3) \u003d 352.

เพราะ ฉ(w 3) > ฉ (w 2)และ ว 3< w 2 , ไม่รวมช่วง w £ w 3 ,

การทำซ้ำ 3 ฉัน 3 =(0,236, 0,618); แอล 3 = 0,382 = t2. การคำนวณค่าฟังก์ชันครั้งต่อไปจะดำเนินการ ณ จุดที่อยู่ที่ระยะทาง t ´ (ความยาวของช่วงเวลาที่ได้รับ) จากจุดขอบเขตด้านซ้ายของช่วงเวลาหรือที่ระยะทาง (1- ที) ´ (ช่วงความยาว) จากจุดขอบเขตด้านขวา ดังนั้น,

ว 4 =0,618 – ( 1-เสื้อ)L 3= 0.618 - เสื้อ 2 L 3 0.618 - เสื้อ 2 (เสื้อ 2) = 0.618 - t4 = 0,472, ฉ(w4) = 6,15.

เพราะ ฉ(w4)< f (w 2) และ w4 > w2, ช่วงเวลา w £ w2ไม่รวม

เป็นผลให้ได้รับช่วงความไม่แน่นอนต่อไปนี้: 0.382 ปอนด์ 0.618 ปอนด์สำหรับ w หรือ 94.4 ปอนด์ เอ็กซ์ 115.6 ปอนด์สำหรับตัวแปร เอ็กซ์.

หากมีการคำนวณค่าฟังก์ชันหกค่าในระหว่างการค้นหา ความยาวของช่วงผลลัพธ์สำหรับตัวแปร เท่ากับ

เสื้อ N -1 = เสื้อ 5 = 0,09,

ซึ่งสอดคล้องกับช่วงความยาว 8.1 สำหรับตัวแปร เอ็กซ์. สำหรับการเปรียบเทียบ เราจำได้ว่าในสถานการณ์ที่คล้ายคลึงกัน วิธีการแบ่งครึ่งช่วงเวลาทำให้ได้ช่วงความยาว 11.25

ในกรณีทั่วไป หากจุดขอบเขตด้านขวาและด้านซ้ายของช่วงความไม่แน่นอน (เราระบุจุดเหล่านั้นด้วย เอ็กซ์อาร์และ เอ็กแอล) ทราบแล้ว พิกัดของจุดทดสอบที่ตามมาทั้งหมดที่ได้รับตามวิธีส่วนสีทองสามารถคำนวณได้โดยใช้สูตร

w = XR - tnหรือ w = XL + tnขึ้นอยู่กับช่วงย่อยที่ไม่รวมในการวนซ้ำครั้งก่อน - ซ้ายหรือขวา ในสูตรข้างต้นผ่าน เสื้อ เอ็นทำเครื่องหมาย - ปริญญา ที, ที่ไหน พีคือจำนวนของการประเมินค่าฟังก์ชัน

การค้นหาโดยใช้วิธีการส่วนสีทองสามารถยุติได้โดยขึ้นอยู่กับจำนวนการคำนวณค่าฟังก์ชันที่กำหนด (และดังนั้น ขนาดของช่วงความไม่แน่นอน) หรือเมื่อถึงความแม่นยำสัมพัทธ์ของค่าฟังก์ชันที่ต้องการ ควรใช้ทั้งสองเกณฑ์พร้อมกัน

การเปรียบเทียบวิธีการกำจัดช่วงเวลาด้านล่าง เราเปรียบเทียบประสิทธิภาพสัมพัทธ์ของวิธีการพิจารณาสำหรับการกำจัดช่วงเวลา ให้เราแสดงความยาวของช่วงความไม่แน่นอนที่เคลื่อนไหวช้าเป็น L1และความยาวของช่วงผลลัพธ์ เอ็นการคำนวณค่าฟังก์ชัน - ผ่าน แอล เอ็น. ในฐานะที่เป็นตัวบ่งชี้ประสิทธิภาพของวิธีการหนึ่งหรืออีกวิธีหนึ่งในการกำจัดช่วงเวลาเราแนะนำลักษณะของการลดลงสัมพัทธ์ในช่วงเวลาเริ่มต้น FR(N)=LN /L 1

จำได้ว่าเมื่อใช้วิธีการแบ่งช่วงเวลาครึ่งและวิธีการส่วนสีทองความยาวของช่วงเวลาที่ได้คือ L 1 (0.5) N /2และ L 1 (0.618) N -1ตามลำดับ ดังนั้น การลดลงสัมพัทธ์ในช่วงเวลาหลังจากนั้น เอ็นการคำนวณค่าฟังก์ชันเท่ากับ

FR(N) = (0.5) N /2สำหรับวิธีการแบ่งครึ่งช่วงเวลานั้น

FR(N) = (0.618) N -1สำหรับวิธีการแบ่งส่วนสีทอง

สำหรับการเปรียบเทียบ เรายังพิจารณาวิธีการค้นหาแบบเดียวกัน ซึ่งฟังก์ชันได้รับการประเมินที่ N จุดที่เว้นระยะเท่าๆ กัน (ในกรณีนี้ ช่วงเวลา L 1 จะแบ่งออกเป็น (N+1) ช่วงเวลาที่เท่ากันของความยาว L 1 /(N+ ล.)). ให้ x* เป็นจุดที่สังเกตค่าต่ำสุดของฟังก์ชัน f(x) จากนั้นจุดต่ำสุดที่แท้จริง f(x) จะอยู่ในช่วงเวลา

โดยที่ L N = 2L 1 /(N+l) ดังนั้น สำหรับวิธีการค้นหาแบบเอกภาพ FR(N)=2/(N+1)

ในตาราง 6.2 แสดงค่า FR(N) ที่สอดคล้องกับ N ที่เลือกสำหรับวิธีการค้นหาสามวิธี ตามมาจากตารางที่ค้นหาค่าของการลดลงสัมพัทธ์ในช่วงเวลาโดยใช้วิธีส่วนสีทอง

ตารางที่ 6.2

ให้การลดลงสัมพัทธ์ที่ใหญ่ที่สุดในช่วงเวลาเดิมด้วยจำนวนการคำนวณค่าฟังก์ชันที่เท่ากัน ในทางกลับกัน เรายังสามารถเปรียบเทียบจำนวนของการคำนวณค่าฟังก์ชันที่จำเป็นเพื่อให้ได้จำนวนการลดช่วงเวลาสัมพัทธ์หรือระดับความแม่นยำที่กำหนด หากกำหนดค่า FR(N) = E ค่าของ N จะคำนวณโดยใช้สูตรต่อไปนี้:

สำหรับวิธีการแบ่งครึ่งช่วงเวลา

N=2ln(E)/ln(0.5),

สำหรับวิธีการแบ่งส่วนสีทอง

N=1+,

สำหรับวิธีการค้นหาเครื่องแบบ

ในตาราง 6.3 แสดงข้อมูลเกี่ยวกับจำนวนการคำนวณค่าฟังก์ชันที่จำเป็นในการกำหนดพิกัดของจุดต่ำสุดด้วยความแม่นยำที่กำหนด ควรเน้นย้ำอีกครั้งว่าวิธีส่วนสีทองมีประสิทธิภาพมากกว่าสองวิธีอื่นๆ เนื่องจากต้องใช้การประเมินค่าฟังก์ชันจำนวนน้อยที่สุดเพื่อให้ได้ความแม่นยำเท่ากัน

วิธีการนี้ขึ้นอยู่กับการแบ่งส่วนปัจจุบัน [ เอ], โดยแบ่งส่วนสุดที่ต้องการออกเป็นสองส่วนที่ไม่เท่ากัน โดยเป็นไปตามกฎส่วนสีทอง เพื่อกำหนดส่วนถัดไปที่มีค่าต่ำสุด (สูงสุด)

อัตราส่วนทองคำถูกกำหนดโดยกฎ: อัตราส่วนของส่วนทั้งหมดต่อส่วนที่ใหญ่กว่านั้นเท่ากับอัตราส่วนของส่วนที่ใหญ่กว่าต่อส่วนที่เล็กกว่า พึงพอใจด้วยสองคะแนน และ , ตั้งอยู่อย่างสมมาตรประมาณกึ่งกลางของปล้อง

โดยการเปรียบเทียบ () และ () กำหนดส่วนถัดไปซึ่งมีสูงสุด ถ้า () > (), จากนั้นส่วน [ กับ,], มิฉะนั้น ส่วน [ , ].

ส่วนใหม่จะถูกแบ่งออกเป็นส่วนที่ไม่เท่ากันอีกครั้งตามกฎส่วนสีทอง ควรสังเกตว่าจุด ยังเป็นจุดของส่วนสีทองของส่วน [ กับ,], เหล่านั้น.

ดังนั้น ในการวนซ้ำแต่ละครั้ง (ยกเว้นการ "เรียกใช้งาน" ของเมธอดในส่วนเริ่มต้น) ควรคำนวณเกณฑ์ความเหมาะสมที่สุดเพียงค่าเดียว

มีสูตรการวิเคราะห์สำหรับการคำนวณจุดใหม่ในส่วนที่มีค่าสูงสุด (x), ซึ่งง่ายต่อการได้รับ:

เงื่อนไขสำหรับการสิ้นสุดการค้นหาคือค่าของกลุ่มที่มีค่าสูงสุด ซึ่งน้อยกว่าข้อผิดพลาดที่ระบุ

วิธีการนี้ให้การบรรจบกันของสารละลายได้เร็วกว่าวิธีอื่นๆ มากมาย และเห็นได้ชัดว่าใช้ได้กับฟังก์ชัน single-extremal เท่านั้น

บนมะเดื่อ รูปที่ 3 แสดงสองขั้นตอนของการค้นหาค่าสูงสุดของฟังก์ชันโดยใช้วิธีส่วนสีทอง

ข้าว. 3. ภาพประกอบของวิธีส่วนสีทอง: 1 - ช่วงเวลาที่รวมฟังก์ชันสูงสุดที่ต้องการหลังจากขั้นตอนแรก (ส่วนสีทองแรกที่จุด และ ); 2 - เหมือนกันหลังจากขั้นตอนที่สอง (จุดใหม่ อีและจุดเก่า )

อัลกอริทึมวิธีอัตราส่วนทองคำสำหรับการย่อขนาดฟังก์ชัน

ขั้นตอนแรกเลือกความยาวจำกัดที่ยอมรับได้ของช่วงความไม่แน่นอน > 0. ให้ [ , ] คือช่วงความไม่แน่นอนเริ่มต้น ใส่
และ
. คำนวณ () และ () ใส่ k = 1 แล้วไปที่สเตจหลัก

เวทีหลัก.

ขั้นตอนที่ 1.ถ้า ­ เค เค < แล้วหยุด; จุดต่ำสุดเป็นของช่วงเวลา [ เค , คะ]. มิฉะนั้น ถ้า ( เค) > ( เค) จากนั้นไปที่ขั้นตอนที่ 2 และถ้า ( เค) ≤ ( เค) จากนั้นไปที่ขั้นตอนที่ 3

ขั้นตอนที่ 2ใส่ เค +1 = เคและ เค +1 = เค ,
. คำนวณ ( เค+1) และไปที่ขั้นตอนที่ 4

ขั้นตอนที่ 3ใส่ เค +1 = เคและ เค +1 = เค ,
. คำนวณ ( เค+1) และไปที่ขั้นตอนที่ 4

ขั้นตอนที่ 4แทนที่ เคบน เค + 1 และไปที่ขั้นตอนที่ 1

ตัวอย่าง.

กำหนดฟังก์ชั่น (x) = บาป (โอ้ + ค),โดยที่ค่าสัมประสิทธิ์มีค่าดังต่อไปนี้: เอ = 1,0,ข = 1,0, ค = 1,0, = 1.0. ค้นหาค่าสูงสุดในช่วงเวลา: [-1, 2] ข้อผิดพลาดถูกกำหนดโดย x: ε =0,05.

ผลการคำนวณ ในการ "เริ่ม" วิธีการ ลองหาจุดที่สมมาตรสองจุดของส่วนสีทองสำหรับส่วน [-1, 2]:

x 1 =0,145898, เอ็กซ์ 2 =0,85410197.

ค่าของเกณฑ์ ณ จุดเหล่านี้ตามลำดับ R (x 1) = 0.911080 (x2) = 0.960136. ดังนั้น กลุ่มใหม่คือ ภายในซึ่งเป็นค่าสูงสุดของค่าที่พบ . จุดส่วนสีทองสำหรับส่วนใหม่จะเป็น x 3 \u003d 0.58359214, a (x 3) =0.99991813. นอกจากนี้ จะมีการกำหนดพิกัดของจุดที่ดีที่สุดในขั้นตอนถัดไป หมายเลขขั้นตอน และค่าเกณฑ์ที่จุดเหล่านี้เท่านั้น

เอ็กซ์ 3 = 0.58359214; R 3 = 0.99991813;

เอ็กซ์ 4=0.58359214; R4 = 0.99991813

เอ็กซ์ 5 = 0.58359214; R 5 = 0.99991813;

เอ็กซ์ 6 = 0.58359214; ร 6 \u003d 0.99991813

เอ็กซ์ 7 = 0.58359214; ร 7 = 0.99991813;

เอ็กซ์ 8 = 0.55920028; ร 8 = 0.99993277;

เอ็กซ์ 9 = 0.55920028; ร 9 \u003d 0.99993277.

มีการคำนวณเกณฑ์ความเหมาะสมทั้งหมด 10 รายการ