งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 2 สัมมนา เรื่อง Filled Julia Set เสนอ อาจารย์ พัชรี เลิศวิจิตรศิลป์ จัดทำโดย นาย พจศิษฏ์ ปัดภัย 42041004 อาจารย์ที่ปรึกษา ผศ. ประวัติ พัฒนิบูลย์

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 2 สัมมนา เรื่อง Filled Julia Set เสนอ อาจารย์ พัชรี เลิศวิจิตรศิลป์ จัดทำโดย นาย พจศิษฏ์ ปัดภัย 42041004 อาจารย์ที่ปรึกษา ผศ. ประวัติ พัฒนิบูลย์"— ใบสำเนางานนำเสนอ:

1

2 1

3 2 สัมมนา เรื่อง Filled Julia Set เสนอ อาจารย์ พัชรี เลิศวิจิตรศิลป์ จัดทำโดย นาย พจศิษฏ์ ปัดภัย อาจารย์ที่ปรึกษา ผศ. ประวัติ พัฒนิบูลย์

4 3

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

6 5 Fractal คือ วัตถุหรือสิ่งที่ถูกมองทาง เรขาคณิตซึ่งมีการเปลี่ยนแปลงทั้ง ขนาดและทิศทางอยู่ตลอดเวลาโดยมี การเปลี่ยนแปลงในลักษณะเดิมซ้ำ ๆ กันไปเรื่อย ๆ ตัวอย่าง Fractal ในธรรมชาติ เช่น เส้นใยประสาทในสมอง เนื้อเยื้อ ประสาท บรอคโคลี ต้นไม้ ทางเดินเลือดในร่างกายของมนุษย์ ฯลฯ ซึ่งมีการเปลี่ยนแปลงใน ลักษณะเดิมซ้ำ ๆ กันไปเรื่อย ๆ

7 6 Iteration กำหนดให้ F เป็นฟังก์ชัน เลือก x 0 เป็นค่าเริ่มต้นแทนลงใน F แล้วได้ผลลัพธ์คือ x 1 แล้วนำ x 1 แทน ลงใน F ทำซ้ำไป เรื่อย ๆ แสดงได้ ดังนี้ F(x 0 ) = x 1 F(x 1 ) = F(F(x 0 )) = x 2 F(x 2 ) = F(F(F(x 0 ))) = x 3 ….. F(x n-1 ) = F(…( F( x 0 )…) = x n …..

8 7 เราแทนการทำซ้ำ n ครั้ง ด้วย F n (x 0 ) และเรียกว่า iterat อันดับที่ n ของ F เช่น F(F( x 0 )) = F 2 (x 0 ) เรียกว่า iterat อันดับที่ 2 ของ F ตัวอย่าง กำหนดให้ F(x) = x จะได้ F 2 (x) = (x 2 + 1) F 3 (x) = ((x 2 + 1) 2 + 1) ….

9 8 Orbit นิยาม กำหนดให้ x 0 เป็นจำนวนจริง Orbit ของ x 0 ภายใต้ F คือ ลำดับของจุด x 0, x 1, x 2, x 3, …, x n, … โดยที่ x 1 = F(x 0 ) x 2 = F 2 (x 0 ) … x n = F n (x 0 ) … และเรียกจุด x 0 ว่า Seed of the Orbit

10 9 ตัวอย่าง กำหนดให้ F(x) = เมื่อเลือก x 0 = 256 เป็น จุดเริ่มต้น จะได้ Orbit ของ x 0 คือ x 0 = 256 x 1 = = 16 x 2 = = 4 x 3 = = 2 x 4 = = 1.41 …..

11 10 Fixed Point ในกรณีที่ทำซ้ำไปเรื่อย ๆ ปรากฏว่าได้ค่า เท่าเดิมเราจะเรียกค่านั้นว่า Fixed Point กล่าวคือ ที่ F(x 0 ) = x 0 ซึ่งจะได้ว่า F 2 (x 0 ) = F 3 (x 0 ) = …. = F n (x 0 ) = x 0

12 11 ตัวอย่าง กำหนดให้ F(x) = sin x เมื่อเริ่มต้นที่ x 0 = 0 จะได้ F(x 0 ) = F 2 (x 0 ) = …. = F n (x 0 ) = sin 0 = 0 เพราะฉะนั้น 0 คือ fixed point ของ F(x) = sin x ฟังก์ชันหนึ่งอาจมี fixed point ได้ หลายจุด ขึ้นอยู่กับการ เลือก x 0 เช่น 0,1,-1 เป็น fixed point ของ F(x) = x 3 และ 0,1 เป็น fixed point ของ F(x) = x 2

13 12 จากการศึกษาพบว่าพฤติกรรมที่ เป็นไปได้ของ Orbit ของ x 0 คือ 1) Orbit จะลู่เข้าสู่ fixed point หรือ เป็นคาบ 2) Orbit จะลู่ออกสู่ อนันต์ (infinity) 3) Orbit อาจอยู่ในช่วงใดช่วงหนึ่ง หรืออาจกล่าวได้ว่า Orbit มีขอบเขต

14 13 Complex Dynamics ในทำนองเดียวกันหากพิจารณาใน ฟังก์ชันจำนวน เชิงซ้อน Orbit ของ z 0 คือ ลำดับ z 0, F( z 0 ), F 2 ( z 0 ), …., F n ( z 0 ),…. เมื่อ z 0 คือ จำนวนเชิงซ้อน

15 14 Julia Set (Gaston Julia) เป็น การศึกษาถึงการส่งของ ฟังก์ชันที่มีการทำซ้ำ ๆ (Iteration) บนระนาบเชิงซ้อน ในเบื้องต้นเราพิจารณาฟังก์ชัน Quadratic โดยเขียนแทนด้วย Q c (z) = z 2 + c เมื่อ z คือ จำนวนเชิงซ้อน c คือ จำนวนเชิงซ้อนคงที่

16 15 ถ้าเขียน z ในรูป z = re i θ จะได้ Orbit ของ z 0 ภายใต้ Q 0 (z) = z 2 คือ z 0 = re i θ Q 0 (z 0 ) = z 1 = r 2 e i(2 θ) Q 0 2 (z 0 ) = z 2 = r 4 e i(4 θ) Q 0 3 (z 0 ) = z 3 = r 8 e i(8 θ) …. Q 0 n (z 0 ) = z n = ….

17 16 จาก r = |z| เมื่อ |z| > 1 จะได้ว่า Q 0 n (z) → ∞ เมื่อ n → ∞ |z| < 1 จะได้ว่า Q 0 n (z) → 0 เมื่อ n → ∞ |z| = 1 จะได้ วงกลม รัศมี 1 หน่วย

18 17 นิยาม Orbit ของ z ภายใต้ Q c (z) จะมีขอบเขต (bounded) ถ้ามี K ที่ทำให้ |Q c n (z)| < K ทุก n นิยาม Filled Julia Set ของ Q c (z) คือ เซตของจุดซึ่ง Orbits มีขอบเขต แทนด้วย K c และ Julia Set ของ Q c (z) คือ ขอบเขตของ Filled Julia Set แทนด้วย J c

19 18 ในการจะหา Filled Julia Set ตาม นิยามเราต้อง ตรวจสอบดูว่า Orbit ของ z ใดมีขอบเขตคือต้องตรวจสอบ ดูว่า |Q c n (z)| → ∞ เมื่อ n → ∞ ทฤษฎีบท ถ้า |z| ≥ |c| > 2 แล้ว | Q c n (z)| → ∞ เมื่อ n → ∞

20 19 พิสูจน์ โดยอสมการอิง สามเหลี่ยม |Q c (z)| ≥ |z| 2 - |c| ≥ |z| 2 - |z| ( จาก |z| ≥ |c| ) = |z|(|z| - 1) จาก |z| > 2 จะมี λ > 0 ที่ ซึ่ง |z| - 1 > 1 + λ ดังนั้น |Q c (z)| > (1 + λ)|z| |Q c n (z)| > (1 + λ) n |z| ดังนั้น Orbits ของ z ลู่ออกสู่ อนันต์

21 20 การคำนวณ Filled Julia Set แนวคิด เราจะอาศัยหลักการตามทฤษฎี ข้างต้นคือจะแบ่งพื้นที่บนระนาบออกเป็น ตารางจุดเล็ก ๆ แล้วตรวจดูว่าจุดในตาราง นั้นมี Orbits ที่ลู่ออกสู่อนันต์หรือไม่ ถ้าไม่ มีก็จะให้ตารางจุดนั้นเป็นสีดำ โดยการ ทำซ้ำ ( Iteration) ตามที่กำหนด และ ภายใต้เงื่องไข |Q c n (z)| 2 แล้ว จะลู่ออกสู่ อนันต์ตามทฤษฎี

22 21 โปรแกรมการคำนวณ Filled Julia Set โปรแกรมที่แสดงต่อไปนี้เขียนขึ้นโดย ใช้ mathematica โดยเริ่มจากฟังก์ชัน quadratic แล้ว ประยุกต์ไปเป็น ฟังก์ชัน sin z,cos z และ ฟังก์ชัน exponential

23 22 ฟังก์ชัน quadratic Q c (z) = z 2 + c Orbitcheckqu [z_,c_,iters_] :=(s=z; i=1; While [i≤iters&&Abs[s]<2,i++;s=s^2+c]; If FilledJuliaqu[c_,{meshx_,meshy_},{x0_,x1_}, {y0_,y1_}, iters_]:= Show[ Graphics[{PointSize[0.002], Map[Point, Flatten[Outer[orbitcheckqu[#1+I#2,N[c],iters]&, Range[x0,x1,(x1-x0)/meshx], Range[y0,y1,(y1-y0)/meshy]],2]]}], AspectRatio → Automatic,PlotRange → All ]

24 23 C = I FilledJuliaqu[c,{500,500},{-1.31,0.52},{0,1.11},30]

25 24 C = I FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},30]

26 25 C = FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50]

27 26 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

28 27 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

29 28 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

30 29 C = – I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

31 30 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

32 31 C = ; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

33 32 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},30];

34 33 C = I; FilledJuliaqu[c,{400,400},{-1.5,1.5},{-1.5,1.5},40];

35 34 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

36 35 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},90];

37 36

38 37 C = - 1; FilledJuliaqu[c,{500,500},{-.5,1.5},{1.5,1.5},30];

39 38 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

40 39 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

41 40 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

42 41 C = I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

43 42 C = – 0.248I; FilledJuliaqu[c,{500,500},{-1.5,1.5},{-1.5,1.5},50];

44 43 ฟังก์ชัน cos z F c (z) = (c) cos z Orbitcheckcos [z_,c_,iters_] :=(s=z; i=1; While [i≤iters&&Abs[s]<50,i++;s=c*cos[s]]; If FilledJuliacos[c_,{meshx_,meshy_},{x0_,x1_}, {y0_,y1_},iters_]:= Show[ Graphics[{PointSize[0.002], Map[Point, Flatten[Outer[orbitcheckqu[#1+I#2,N[c],iters]&, Range[x0,x1,(x1-x0)/meshx], Range[y0,y1,(y1-y0)/meshy]],2]]}], AspectRatio → Automatic,PlotRange → All ]

45 44 C = 2.96; FilledJuliacos[c,{1050,1050},{-3,3},{-3,3},60];

46 45 ฟังก์ชัน sin z F c (z) = (c) sin z Orbitchecksin [z_,c_,iters_] :=(s=z; i=1; While [i≤iters&&Abs[s]<50,i++;s=c*sin[s]]; If FilledJuliasin[c_,{meshx_,meshy_},{x0_,x1_}, {y0_,y1_},iters_]:= Show[ Graphics[{PointSize[0.002], Map[Point, Flatten[Outer[orbitcheckqu[#1+I#2,N[c],iters]&, Range[x0,x1,(x1-x0)/meshx], Range[y0,y1,(y1-y0)/meshy]],2]]}], AspectRatio → Automatic,PlotRange → All ]

47 46 C = I; FilledJuliasin[c,{600,600},{-1.5,1.5},{-1.5,1.5},50];

48 47 C = I; FilledJuliasin[c,{500,500},{-3,3},{-5,5},50];

49 48 C = I; FilledJuliasin[c,{400,400},{-3,3},{-3,3},30];

50 49 C = I; FilledJuliasin[c,{400,400},{-3,3},{-3,3},50];

51 50 C = I; FilledJuliasin[c,{400,400},{-3,3},{-3,3},100];

52 51 C = I; FilledJuliasin[c,{1000,1000},{-3,3},{-5,5},100];

53 52

54 53 ฟังก์ชัน exponential F c (z) = (c) e z orbitcheckep[z_,c_,iters_] :=(s=z; i=1; While[i≤iters&&Abs[s]<50,i++;s=c*Exp[s]]; If FilledJuliaep[c_,{meshx_,meshy_},{x0_,x1_}, {y0_,y1_},iters_]:= Show[ Graphics[{PointSize[0.002], Map[Point, Flatten[Outer[orbitcheckqu[#1+I#2,N[c],iters]&, Range[x0,x1,(x1-x0)/meshx], Range[y0,y1,(y1-y0)/meshy]],2]]}], AspectRatio → Automatic,PlotRange → All ]

55 54 C= I FilledJuliaep[c,{1000,1000},{-3,3},{-2,2},50];

56 55


ดาวน์โหลด ppt 1 2 สัมมนา เรื่อง Filled Julia Set เสนอ อาจารย์ พัชรี เลิศวิจิตรศิลป์ จัดทำโดย นาย พจศิษฏ์ ปัดภัย 42041004 อาจารย์ที่ปรึกษา ผศ. ประวัติ พัฒนิบูลย์

งานนำเสนอที่คล้ายกัน


Ads by Google