ชุดมัลติบร็อต



ในทางคณิตศาสตร์เซตมัลติบร็อต (Multibrot set ) คือเซตของค่าในระนาบเชิงซ้อนซึ่งค่าสัมบูรณ์ยังคงต่ำกว่าค่าจำกัดบางค่าตลอดการวนซ้ำโดยสมาชิกของ ตระกูล พหุนามเอกภาค ทั่วไป ของความสัมพันธ์ แบบเวียน เกิด[ 1 ] [ 2 ] [ 3 ]ชื่อนี้เป็นการผสมคำระหว่าง multiple และMandelbrot set ซึ่งสามารถนำไปใช้กับ เซตจูเลีย (Julia set ) ได้เช่นกันโดยเรียกว่าเซตมัลติจูเลีย (Multijulia set )
โดยที่d ≥ 2 เลขชี้กำลังdอาจถูกขยายเพิ่มเติมเป็นค่าลบและค่าเศษส่วนได้[ 4 ]
ตัวอย่าง
กรณีของ
คือเซตแมนเดลบร็อต แบบคลาสสิก ซึ่งเป็นที่มาของชื่อนี้
เซตสำหรับค่าd อื่นๆ ยังแสดงภาพแฟรกทัล[ 7 ]เมื่อพล็อตบนระนาบเชิงซ้อน
ตัวอย่างค่ากำลังd ต่างๆ ที่แสดงด้านล่างนี้ ถูกพล็อตด้วยมาตราส่วนเดียวกัน ค่าcที่อยู่ในเซตจะแสดงด้วยสีดำ ส่วนค่าcที่มีค่าไม่จำกัดภายใต้การเรียกซ้ำ และดังนั้นจึงไม่อยู่ในเซต จะถูกพล็อตด้วยสีที่แตกต่างกัน ซึ่งแสดงเป็นเส้นโค้ง ขึ้นอยู่กับจำนวนการเรียกซ้ำที่ทำให้ค่าเกินขนาดคงที่ในอัลกอริทึม Escape Time
พลังบวก
ตัวอย่างd = 2คือเซตแมนเดลบร็อตดั้งเดิม ตัวอย่างสำหรับd > 2มักเรียกว่าเซตมัลติบร็อตเซตเหล่านี้รวมจุดกำเนิดและมีขอบเขตแบบแฟรกทัล โดยมีสมมาตรการหมุน( d − 1) เท่า
![]() | ![]() | ![]() |
![]() | ![]() |
พลังด้านลบ
เมื่อdเป็นค่าลบ เซตจะดูเหมือนล้อมรอบแต่ไม่รวมจุดกำเนิด อย่างไรก็ตาม นี่เป็นเพียงผลลัพธ์ที่เกิดจากรัศมีสูงสุดที่กำหนดไว้โดยอัลกอริทึม Escape Time และไม่ใช่ข้อจำกัดของเซตที่มีรูปร่างตรงกลางโดยไม่มีรู (คุณสามารถเห็นได้โดยใช้เลขชี้กำลัง Lyapunov [ไม่มีรูเพราะจุดกำเนิดลู่เข้าสู่ค่าที่ไม่กำหนดไม่ใช่อนันต์เพราะจุดกำเนิด {0 หรือ 0+0i} ที่ยกกำลังลบกลายเป็นค่าที่ไม่กำหนด]) มีพฤติกรรมที่ซับซ้อนน่าสนใจในเส้นขอบระหว่างเซตและจุดกำเนิด ในบริเวณรูปดาวที่มี สมมาตรการหมุน (1 − d ) เท่าเซตดูเหมือนจะมีเส้นรอบวงเป็นวงกลม อย่างไรก็ตาม นี่เป็นผลลัพธ์ที่เกิดจากรัศมีสูงสุดที่กำหนดไว้โดยอัลกอริทึม Escape Time และไม่ใช่ข้อจำกัดของเซตที่ขยายออกไปในทุกทิศทางจนถึงอนันต์
![]() | ![]() | ![]() | ![]() | ![]() |
กำลังเศษส่วน
การแสดงผลตามเลขชี้กำลัง
วิธีการทางเลือกอีกวิธีหนึ่งคือการแสดงเลขชี้กำลังตามแกนแนวตั้ง วิธีนี้ต้องกำหนดค่าจริงหรือค่าจินตนาการอย่างใดอย่างหนึ่ง แล้วแสดงค่าที่เหลือตามแกนแนวนอน ชุดที่ได้จะสูงขึ้นในแนวตั้งจากจุดกำเนิดในคอลัมน์แคบๆ ไปจนถึงอนันต์ การขยายภาพเผยให้เห็นความซับซ้อนที่เพิ่มขึ้น เนินหรือยอดแหลมที่โดดเด่นแรกจะเห็นได้ที่เลขชี้กำลัง 2 ซึ่งเป็นตำแหน่งของชุด Mandelbrot แบบดั้งเดิมที่หน้าตัด ภาพที่สามในที่นี้แสดงบนระนาบที่ตรึงไว้ที่มุม 45 องศาระหว่างแกนจริงและแกนจินตนาการ [ 8 ]
การเรนเดอร์ภาพ
ภาพทั้งหมดข้างต้นถูกสร้างขึ้นโดยใช้อัลกอริธึม Escape Time ซึ่งระบุจุด ที่อยู่นอกเซตด้วยวิธีที่ง่าย รายละเอียดแฟรกทัลที่มากขึ้นจะถูกเปิดเผยโดยการพล็อตค่าเลขชี้กำลัง Lyapunov [ 9 ]ดังแสดงในตัวอย่างด้านล่าง ค่าเลขชี้กำลัง Lyapunov คืออัตราการเติบโตของข้อผิดพลาดของลำดับที่กำหนด ขั้นแรกคำนวณลำดับการวนซ้ำด้วย การวนซ้ำ Nครั้ง จากนั้นคำนวณเลขชี้กำลังเป็น
และถ้าเลขชี้กำลังเป็นลบ ลำดับนั้นจะเสถียร พิกเซลสีขาวในภาพคือพารามิเตอร์cซึ่งเลขชี้กำลังเป็นบวก หรือก็คือไม่เสถียร สีต่างๆ แสดงถึงคาบของวัฏจักรที่วงโคจรถูกดึงดูด จุดทั้งหมดที่มีสีน้ำเงินเข้ม (ด้านนอก) ถูกดึงดูดโดยจุดคงที่ จุดทั้งหมดตรงกลาง (สีน้ำเงินอ่อนกว่า) ถูกดึงดูดโดยวัฏจักรคาบ 2 และอื่นๆ


รหัสเทียม
อัลกอริทึมหลบหนีเวลาสำหรับแต่ละพิกเซลบนหน้าจอให้ทำดังนี้ x = x0 = พิกัด x ของพิกเซล y = y0 = พิกัด y ของพิกเซล การวนซ้ำ := 0 จำนวนรอบสูงสุด := 1000 ในขณะที่ (x*x + y*y ≤ (2*2) และ iteration < max_iteration ทำ /* แทรกโค้ดสำหรับ Z^d จากตารางด้านล่าง */ การวนซ้ำ := การวนซ้ำ + 1 ถ้า iteration = max_iteration แล้ว สี := ดำ อื่น สี := การวนซ้ำ plot(x0, y0, colour)
ค่าเชิงซ้อนzมีพิกัด ( x , y ) บนระนาบเชิงซ้อน และถูกยกกำลังด้วยค่าต่างๆ ภายในลูปการวนซ้ำโดยใช้รหัสที่แสดงในตารางนี้ ค่ากำลังที่ไม่แสดงในตารางสามารถหาได้โดยการต่อรหัสที่แสดงไว้เข้าด้วยกัน
| z − 2 | z − 1 | z 2 (สำหรับเซตแมนเดลบร็อต) | z 3 | z 5 | z n |
|---|---|---|---|---|---|
d = x⁴ + 2*x²*y² + y⁴ กำหนดให้ d != 0 xtmp = (x² - y²) / d + a y = -2*x*y / d + b x = xtmp | d = x² + y² กำหนดให้ d != 0 x = x/d + a y = -y/d + b | xtmp=x^2-y^2 + a y=2*x*y + b x=xtmp | xtmp=x^3-3*x*y^2 + a y=3*x^2*yy^3 + b x=xtmp | xtmp=x^5-10*x^3*y^2+5*x*y^4 + a y=5*x^4*y-10*x^2*y^3+y^5 + b x=xtmp | xtmp=(x*x+y*y)^(n/2)*cos(n*atan2(y,x)) + a y=(x*x+y*y)^(n/2)*sin(n*atan2(y,x)) + b x=xtmp |















