โมเดลง่ายๆ ที่มีพฤติกรรมซับซ้อน เช่น ความโกลาหล
เทคโนโลยี

โมเดลง่ายๆ ที่มีพฤติกรรมซับซ้อน เช่น ความโกลาหล

คอมพิวเตอร์เป็นเครื่องมือที่นักวิทยาศาสตร์ใช้ในการเปิดเผยความลับที่ซ่อนอยู่อย่างระมัดระวังโดยธรรมชาติมากขึ้นเรื่อย ๆ การสร้างแบบจำลองร่วมกับการทดลองและทฤษฎีกำลังกลายเป็นวิธีที่สามในการศึกษาโลก

เมื่อสามปีที่แล้ว ที่มหาวิทยาลัย Silesia เราเริ่มโปรแกรมเพื่อบูรณาการวิธีทางคอมพิวเตอร์เข้ากับการศึกษา เป็นผลให้มีการสร้างสื่อการสอนที่น่าตื่นเต้นอย่างมากจำนวนมากทำให้ง่ายต่อการศึกษาหัวข้อต่างๆ Python ได้รับเลือกให้เป็นเครื่องมือหลัก ร่วมกับพลังของห้องสมุดวิทยาศาสตร์ที่มีอยู่ น่าจะเป็นทางออกที่ดีที่สุดสำหรับ "การทดลองทางคอมพิวเตอร์" ด้วยสมการ รูปภาพ หรือข้อมูล หนึ่งในการใช้งานที่น่าสนใจที่สุดของโต๊ะทำงานแบบสมบูรณ์คือ Sage [2] เป็นการบูรณาการแบบเปิดของระบบพีชคณิตของคอมพิวเตอร์กับภาษา Python และยังช่วยให้คุณสามารถเริ่มเล่นได้ทันทีโดยใช้เว็บเบราว์เซอร์และหนึ่งในตัวเลือกการเข้าถึงที่เป็นไปได้ผ่านบริการคลาวด์ [3] หรือเซิร์ฟเวอร์คอมพิวเตอร์เครื่องเดียวที่มีการโต้ตอบ บทความนี้มีพื้นฐานมาจาก [4]

ความโกลาหลในระบบนิเวศ

ในปีแรกที่มหาวิทยาลัยอ็อกซ์ฟอร์ด โรเบิร์ต เมย์ นักวิทยาศาสตร์ชาวออสเตรเลียได้ศึกษาแง่มุมทางทฤษฎีของพลวัตทางประชากรศาสตร์ เขาสรุปงานของเขาในบทความที่ปรากฏในวารสาร Nature ภายใต้ชื่อเร้าใจ "Simple Mathematical Models with Very Complex Dynamics" [1] ตลอดหลายปีที่ผ่านมา บทความนี้ได้กลายเป็นผลงานที่ได้รับการอ้างถึงมากที่สุดในเชิงทฤษฎีทางนิเวศวิทยา อะไรทำให้เกิดความสนใจในงานนี้?

ปัญหาดั้งเดิมของพลวัตของประชากรคือการคำนวณจำนวนประชากรในอนาคตของสปีชีส์หนึ่งๆ โดยพิจารณาจากสถานะปัจจุบัน ในทางคณิตศาสตร์ ระบบนิเวศถือว่าง่ายที่สุด โดยที่ชีวิตของประชากรรุ่นหนึ่งใช้เวลาหนึ่งฤดูกาล ตัวอย่างที่ดีคือประชากรของแมลงที่ได้รับการแปรสภาพอย่างสมบูรณ์ในหนึ่งฤดูกาล เช่น ผีเสื้อ เวลาถูกแบ่งโดยธรรมชาติเป็นช่วงที่ไม่ต่อเนื่อง2 ซึ่งสอดคล้องกับวัฏจักรชีวิตของประชากร ดังนั้น สมการที่พรรณนาถึงระบบนิเวศดังกล่าวย่อมมีสิ่งที่เรียกว่า เวลาไม่ต่อเนื่อง กล่าวคือ เสื้อ = 1,2,3…. Robert May จัดการกับพลวัตดังกล่าวเหนือสิ่งอื่นใด ในการให้เหตุผล เขาได้ลดความซับซ้อนของระบบนิเวศให้เป็นสปีชีส์เดียวที่มีจำนวนประชากรเป็นฟังก์ชันกำลังสองของประชากรในปีที่แล้ว โมเดลนี้มาจากไหน?

สมการไม่ต่อเนื่องที่ง่ายที่สุดที่อธิบายวิวัฒนาการของประชากรคือแบบจำลองเชิงเส้น:

โดยที่ Ni คือความอุดมสมบูรณ์ในฤดูกาลที่ i และ Ni + 1 อธิบายถึงจำนวนประชากรในฤดูกาลหน้า เป็นเรื่องง่ายที่จะเห็นว่าสมการดังกล่าวสามารถนำไปสู่สามสถานการณ์ เมื่อ a = 1 วิวัฒนาการจะไม่เปลี่ยนขนาดของประชากร และ <1 นำไปสู่การสูญพันธุ์ และกรณี a > 1 หมายถึงการเติบโตของประชากรอย่างไม่จำกัด สิ่งนี้จะนำไปสู่ความไม่สมดุลในธรรมชาติ เนื่องจากทุกสิ่งในธรรมชาติมีจำกัด การปรับสมการนี้ให้คำนึงถึงทรัพยากรที่มีอยู่อย่างจำกัดจึงเป็นเรื่องที่สมเหตุสมผล ลองนึกภาพว่าศัตรูพืชกินเมล็ดพืชซึ่งทุกปีก็เหมือนกันทุกประการ หากแมลงมีน้อยเมื่อเทียบกับปริมาณอาหารที่สามารถสืบพันธุ์ได้ พวกมันสามารถสืบพันธุ์ได้อย่างเต็มที่ โดยกำหนดทางคณิตศาสตร์โดยค่าคงที่ a > 1 อย่างไรก็ตาม เมื่อจำนวนศัตรูพืชเพิ่มขึ้น อาหารจะหายากและความสามารถในการสืบพันธุ์จะลดลง ในกรณีวิกฤติ เรานึกภาพออกว่ามีแมลงจำนวนมากที่เกิดมาจนกินเมล็ดพืชจนหมดก่อนที่จะมีเวลาสืบพันธุ์ และประชากรก็ตาย แบบจำลองที่คำนึงถึงผลกระทบของการเข้าถึงอาหารอย่างจำกัดนี้ได้รับการเสนอครั้งแรกโดย Verhulst ในปี 1838 ในรูปแบบนี้ อัตราการเติบโตไม่คงที่ แต่ขึ้นอยู่กับสถานะของประชากร:

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

โดยที่ a>0 และค่าคงที่ K>0 แสดงถึงลักษณะของแหล่งอาหารและเรียกว่าความจุของสิ่งแวดล้อม การเปลี่ยนแปลงของ K ส่งผลต่ออัตราการเติบโตของประชากรอย่างไร ถ้า K เพิ่มขึ้น Ni/K จะลดลง ในทางกลับกัน สิ่งนี้นำไปสู่ความจริงที่ว่า 1-Ni/K เติบโตขึ้น ซึ่งหมายความว่าเติบโตขึ้น ซึ่งหมายความว่าอัตราการเติบโตเพิ่มขึ้นและจำนวนประชากรเพิ่มขึ้นเร็วขึ้น เรามาแก้ไขโมเดลก่อนหน้า (1) โดยสมมติว่าอัตราการเติบโตเปลี่ยนแปลงตามสมการ (3) แล้วเราจะได้สมการ

สมการนี้สามารถเขียนเป็นสมการแบบเรียกซ้ำได้

โดยที่ xi = Ni / K และ xi + 1 = Ni + 1 / K หมายถึงประชากรที่ปรับสเกลในเวลา i และเวลา i + 1 สมการ (5) เรียกว่าสมการลอจิสติกส์

แบบจำลองของเราอาจดูเหมือนง่ายในการวิเคราะห์ด้วยการดัดแปลงเพียงเล็กน้อย ลองตรวจสอบดู พิจารณาสมการ (5) สำหรับพารามิเตอร์ a = 0.5 โดยเริ่มจากประชากรเริ่มต้น x0 = 0.45 ค่าประชากรตามลำดับสามารถรับได้โดยใช้สมการแบบเรียกซ้ำ (5):

x1= ขวาน0(ที่ 10)

x2= ขวาน1(ที่ 11)

x3= ขวาน2(ที่ 12)

เพื่ออำนวยความสะดวกในการคำนวณใน (6) เราสามารถใช้โปรแกรมต่อไปนี้ (เขียนด้วย Python และสามารถเรียกใช้บนแพลตฟอร์ม Sage ได้ เราขอแนะนำให้คุณอ่านหนังสือ http://icse.us.edu .pl/e-book . ) เลียนแบบโมเดลของเรา:

เอ = 0.5 x = 0.45 สำหรับฉันอยู่ในช่วง (10):      x \u1d a * x * (XNUMX-x)      พิมพ์ x

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

ในขั้นตอนที่สองของการวิเคราะห์ เราเพิ่มค่าของพารามิเตอร์ a เป็นค่าใดๆ ในช่วง ae (1,3) ปรากฎว่าจากนั้นลำดับ xi ไปที่จำนวนหนึ่ง x * > 0 การตีความสิ่งนี้จากมุมมองของนิเวศวิทยา เราสามารถพูดได้ว่าขนาดประชากรคงที่ในระดับหนึ่งซึ่งจะไม่เปลี่ยนจากฤดูกาลหนึ่งไปอีกฤดูกาล . เป็นที่น่าสังเกตว่าค่าของ x * ไม่ได้ขึ้นอยู่กับสถานะเริ่มต้น x0 นี่คือผลกระทบจากการพยายามรักษาเสถียรภาพของระบบนิเวศ ประชากรจะปรับขนาดตามความสามารถในการเลี้ยงตัวเอง ในทางคณิตศาสตร์ ว่ากันว่าระบบมีแนวโน้มไปยังจุดคงที่ที่เสถียร กล่าวคือ ความพึงพอใจความเท่าเทียมกัน x = f(x) (ซึ่งหมายความว่าในช่วงเวลาถัดไปสถานะจะเหมือนกับช่วงเวลาก่อนหน้า) ด้วย Sage เราสามารถมองเห็นวิวัฒนาการนี้เป็นภาพกราฟิกโดยการวางแผนประชากรในช่วงเวลาหนึ่ง

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

มาสำรวจคุณสมบัตินี้กัน!

ขั้นแรก มาตั้งค่าของพารามิเตอร์ a = 3.2 และดูวิวัฒนาการ อาจดูน่าประหลาดใจที่เวลานี้ประชากรไม่ได้ถึงค่าใดค่าหนึ่ง แต่ถึงสองค่า ซึ่งเกิดขึ้นติดต่อกันทุก ๆ ฤดูกาลที่สอง อย่างไรก็ตาม ปรากฏว่าปัญหาไม่ได้จบเพียงแค่นั้น ด้วย a = 4 ระบบจะไม่สามารถคาดเดาได้อีกต่อไป ลองดูที่รูปที่ (2) หรือเราจะสร้างลำดับของตัวเลขโดยใช้คอมพิวเตอร์ ผลลัพธ์ดูเหมือนจะเป็นการสุ่มอย่างหมดจดและค่อนข้างแตกต่างกันสำหรับประชากรเริ่มต้นที่แตกต่างกันเล็กน้อย อย่างไรก็ตามผู้อ่านที่ใส่ใจต้องคัดค้าน ระบบที่อธิบายโดยสมการที่กำหนดขึ้นเอง1 ได้อย่างไร แม้แต่ระบบที่ธรรมดามาก ทำงานอย่างคาดเดาไม่ได้ บางที

คุณลักษณะของระบบนี้คือความไวที่น่าทึ่งต่อสภาวะเริ่มต้น เพียงพอที่จะเริ่มต้นด้วยสองเงื่อนไขเริ่มต้นที่ต่างกันในหนึ่งล้าน และในไม่กี่ขั้นตอนเราจะได้ค่าประชากรที่แตกต่างกันโดยสิ้นเชิง ตรวจสอบบนคอมพิวเตอร์:

a = 4.0

x = 0.123 y = 0.123 + 0.000001 พีซีซี = [] สำหรับฉันอยู่ในช่วง (25): x = ก*x*(1-x) u = a * u * (1-u) พิมพ์ x, y

นี่คือแบบจำลองง่ายๆ ของวิวัฒนาการที่กำหนดขึ้นได้ แต่ค่านิยมนี้หลอกลวง มันเป็นเพียงการกำหนดเชิงคณิตศาสตร์ จากมุมมองเชิงปฏิบัติ ระบบมีพฤติกรรมที่คาดเดาไม่ได้เพราะเราไม่สามารถกำหนดเงื่อนไขตั้งต้นทางคณิตศาสตร์ได้อย่างแม่นยำ อันที่จริงแล้ว ทุกอย่างถูกกำหนดด้วยความแม่นยำที่แน่นอน: เครื่องมือวัดแต่ละตัวมีความแม่นยำที่แน่นอน และสิ่งนี้อาจทำให้เกิดความคาดเดาไม่ได้ในทางปฏิบัติในระบบที่กำหนดซึ่งมีคุณสมบัติของความโกลาหล ตัวอย่างคือแบบจำลองพยากรณ์อากาศซึ่งมักจะแสดงคุณสมบัติของความโกลาหล นี่คือเหตุผลที่การพยากรณ์อากาศในระยะยาวแย่มาก

การวิเคราะห์ระบบที่ยุ่งเหยิงเป็นเรื่องยากมาก อย่างไรก็ตาม เราสามารถไขปริศนาแห่งความโกลาหลได้ค่อนข้างง่ายด้วยความช่วยเหลือของการจำลองด้วยคอมพิวเตอร์ ให้เราวาดแผนภาพการแยกสองทางซึ่งเราวางค่าของพารามิเตอร์ a ตามแกน abscissa และจุดคงที่ที่มั่นคงของการแมปโลจิสติกตามแกนกำหนด เราได้คะแนนที่เสถียรจากการจำลองระบบจำนวนมากพร้อมกันและวางแผนค่าหลังจากเวลาตัวอย่างหลายครั้ง อย่างที่คุณอาจเดาได้ สิ่งนี้ต้องใช้การคำนวณจำนวนมาก ลอง "ระมัดระวัง" ประมวลผลค่าต่อไปนี้:

นำเข้า numpy เป็น np นx = 300 นา = 500 х = เช่น สเปซเชิงเส้น (0,1, Nx) х = х + เช่น eros ((Na, Nx)) ชั่วโมง = np.transpose (h) a = เช่น linspace (1,4, Na) a = a + np.zeros ((Nx, Na)) สำหรับฉันอยู่ในช่วง (100): x=a*x*(1-x) pt = [a_, x_] สำหรับ a_, x_ c zip(a.แบน(),x.แบน())] จุด (pt, ขนาด = 1, figsize = (7,5))

เราควรได้สิ่งที่คล้ายกับรูปที่ (3) วิธีการตีความภาพวาดนี้? ตัวอย่างเช่น ด้วยค่าของพารามิเตอร์ a = 3.3 เรามีจุดคงที่ 2 จุด (ขนาดประชากรจะเท่ากันทุก ๆ ฤดูกาลที่สอง) อย่างไรก็ตาม สำหรับพารามิเตอร์ a = 3.5 เรามีจุดคงที่ 4 จุด (ทุกฤดูกาลที่สี่ ประชากรมีจำนวนเท่ากัน) และสำหรับพารามิเตอร์ a = 3.56 เรามีจุดคงที่ 8 จุด (ทุกฤดูกาลที่แปด ประชากรมีจำนวนเท่ากัน) แต่สำหรับพารามิเตอร์ a≈3.57 เรามีจุดตายตัวจำนวนมากอย่างไม่สิ้นสุด (ขนาดประชากรไม่ซ้ำกันและเปลี่ยนแปลงในลักษณะที่คาดเดาไม่ได้) อย่างไรก็ตาม ด้วยโปรแกรมคอมพิวเตอร์ เราสามารถเปลี่ยนขอบเขตของพารามิเตอร์ a และสำรวจโครงสร้างเรขาคณิตอนันต์ของแผนภาพนี้ด้วยมือของเราเอง

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

1 กฎหมายกำหนดเป็นกฎหมายที่อนาคตถูกกำหนดโดยสถานะเริ่มต้นอย่างไม่ซ้ำกัน คำตรงข้ามคือกฎความน่าจะเป็น 2 ในวิชาคณิตศาสตร์ "ไม่ต่อเนื่อง" หมายถึงการรับค่าจากชุดที่นับได้บางชุด ตรงกันข้ามคือ "ต่อเนื่อง"

เพิ่มความคิดเห็น