Trong khi các phần tử của ngôn ngữ truyềnthống Hình học Euclide là các dạng hiển thị cơ bản như đoạn thẳng, mặt phẳng… thìtrong hình học phân hình đó là các thuật toán chỉ có thể biến đổ
Trang 1LỜI CẢM ƠN
Em xin chân thành cảm ơn cô giáo hướng dẫn ThS Nguyễn Hiền Trinh vì sự
giúp đỡ và dìu dắt tận tình của cô trong suốt quá trình em thực hiện đồ án
Em xin cảm ơn quý thầy cô bộ môn Khoa học máy tính – Khoa CNTT – Đại học
Thái Nguyên đã giảng dạy, trang bị cho em những kiến thức quý báu trong suốt nhữngnăm học vừa qua
Em cũng xin gửi lời cảm ơn đến gia đình và bè bạn đã tạo điều kiện và luônđộng viên em hoàn thành đồ án này đúng yêu cầu và thời gian
Mặc dù đã hết sức cố gắng để có kết quả tốt nhưng chắc chắn đề tài vẫn khôngthể tránh khỏi những thiếu sót nhất định Rất mong nhận được sự thông cảm và đónggóp những ý kiến vô cùng quý báu của quý Thầy Cô, bạn bè để đề tài hoàn thiện hơn
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Nguyễn Huyền Trang
Trang 2LỜI CAM ĐOAN
Em xin cam đoan :
Những nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực tiếp
của cô giáo ThS Nguyễn Hiền Trinh.
Mọi tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên côngtrình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịuhoàn toàn trách nhiệm
Sinh viên
Nguyễn Huyền Trang
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
LỜI MỞ ĐẦU 6
Chương 1 7
TỔNG QUAN VỀ HÌNH HỌC FRACTAL 7
1.1 Sự ra đời và phát triển của lý thuyết hình học phân hình 7
1.1.1 Sự ra đời của lý thuyết hình học phân hình 7
1.1.2 Sự phát triển của lý thuyết hình học phân hình 9
1.2 Ứng dụng của hình học Fractal 10
1.2.1 Ứng dụng trong vấn đề tạo ảnh trên máy tính 11
1.2.2 Ứng dụng trong công nghệ nén ảnh 11
1.2.3 Ứng dụng trong nghiên cứu khoa học cơ bản 12
1.3 Các kiến thức cơ sở của lý thuyết hình học Fractal 13
1.3.1 Một số khái niệm 13
1.3.2 Số chiều Fractal 13
Chương 2 17
MỘT SỐ HỌ ĐƯỜNG CƠ BẢN VÀ TẬP FRACTAL PHỔ BIẾN 17
2.1 Họ đường Vonkock 17
2.1.1 Đường hoa tuyết Vonkock ─ Snowflake 17
2.1.2 Đường Vonkock ─ Gosper 19
2.1.3 Đường Vonkock bậc hai 3–Đoạn 20
2.1.4 Đường Vonkock bậc hai 8–Đoạn 21
2.1.5 Generator phức tạp 22
2.2 Họ đường Peano 24
Trang 42.2.1 Đường Peano nguyên thủy 24
2.2.2 Đường Peano cải tiến 25
2.2.3 Tam giác Cesaro 26
2.2.4 Tam giác Cesaro cải tiến 27
2.2.5 Đường hoa tuyết Peano 7 – đoạn 28
2.3 Đường Sierpinski 29
2.4 Tập Mandelbrot 30
2.4.1 Giới thiệu chung 30
2.4.2 Công thức toán học 31
2.4.3 Thuật toán thể hiện tập Mandelbrot 31
Chương 3 37
GIẢI THUẬT LẶP HỖ TRỢ TẠO ẢNH FRACTAL 37
3.1 Các hệ hàm lặp IFS (Iterated Function System) 37
3.2 Các phép biến đổi Affine trong không gian R2 41
3.2.1 Các phép biến đổi cơ bản quanh gốc tọa độ 41
3.2.2 Các phép biến đổi với gốc là điểm bất kỳ 43
3.2.3 Hệ IFS của các phép biến đổi Affine trong không gian R2 46
3.3 Giải thuật lặp tuần tự 47
3.3.1 Ý tưởng của giải thuật 47
3.3.2 Giả mã của giải thuật lặp tuần tự 48
3.4 Giải thuật lặp ngẫu nhiên 49
3.4.1 Ý tưởng của giải thuật 49
3.4.2 Giả mã của giải thuật lặp ngẫu nhiên 50
Chương 4 52
CHƯƠNG TRÌNH TẠO ẢNH FRACTAL TRÊN MÁY TÍNH 52
4.1 Cài đặt một số đường 52
Trang 54.1.1 Ý tưởng chính của ứng dụng 52
4.1.2 Thuật toán 52
4.1.3 Thực hiện cài đặt ứng dụng 55
4.1.4 Kết quả thực hiện 71
4.2 Cài đặt mặt 72
4.2.1 Ý tưởng chính của ứng dụng 72
4.2.2 Thuật toán 73
4.2.3 Thực hiện cài đặt ứng dụng 73
4.2.4 Kết quả thực hiện 74
4.3 Ứng dụng tạo ảnh Fractal 75
4.3.1 Ý tưởng chính của ứng dụng 75
4.3.2 Thuật toán 75
4.3.3 Thực hiện cài đặt ứng dụng 76
4.3.4 Kết quả thực hiện 76
4.4 Đánh giá chung chương trình 77
4.4.1 Ưu điểm 77
4.4.2 Hạn chế 77
KẾT LUẬN 78
NHẬN XÉT CỦA GIÁO VIÊN 79
TÀI LIỆU THAM KHẢO 80
Trang 6LỜI MỞ ĐẦU
Trong những năm gần đây, toán học và khoa học tự nhiên đã bước lên một bậcthềm mới, sự mở rộng và sáng tạo trong khoa học trở thành một cuộc thử nghiệm liên
ngành Đề tài về Hình học phân hình đã được đông đảo mọi người chú ý và thích thú
nghiên cứu Vấn đề này đã cung cấp cho các nhà khoa học một môi trường phong phúcho sự thám hiểm và mô hình hoá tính phức tạp của tự nhiên Trong ngữ cảnh nào đó
Hình học phân hình là ngôn ngữ đầu tiên để mô tả, mô hình hoá và phân tích các
dạng phức tạp đã tìm thấy trong tự nhiên Trong khi các phần tử của ngôn ngữ truyềnthống (Hình học Euclide) là các dạng hiển thị cơ bản như đoạn thẳng, mặt phẳng… thìtrong hình học phân hình đó là các thuật toán chỉ có thể biến đổi thành các dạng vàcấu trúc nhờ máy tính
Việc nghiên cứu ngôn ngữ hình học tự nhiên này mở ra nhiều hướng mới chokhoa học cơ bản và ứng dụng Và em xin được đề cập đến vấn đề này trong đồ án tốt
nghiệp với nội dung: “Nghiên cứu về đường và mặt trong hình học Fractal Ứng
dụng cài đặt chương trình tạo ảnh trên máy tính” Nội dung đồ án gồm:
Chương 1: Trình bày tổng quan hình học phân hình
Chương 2: Một số họ đường cơ bản và các tập Fractal phổ biến
Chương 3: Các giải thuật lặp hỗ trợ tạo ảnh Fractal
Chương 4: Cài đặt chương trình tạo ảnh Fractal trên máy tính
Sinh viên thực hiện
Nguyễn Huyền Trang
Trang 7Chương 1 TỔNG QUAN VỀ HÌNH HỌC FRACTAL
1.1 Sự ra đời và phát triển của lý thuyết hình học phân hình
1.1.1 Sự ra đời của lý thuyết hình học phân hình
Hình học phân hình hay Fractal là một thuật ngữ do nhà Toán học Mandelbrotđưa ra khi ông khảo sát những hình hoặc những hiện tượng trong thiên nhiên không cóđặc trưng về độ dài Nhà toán học vĩ đại của thế kỷ 20 này nói rằng: “Các đám mâykhông phải là hình cầu, các ngọn núi không phải là hình nón” Theo ông Fractal là chỉnhững đối tượng hình học có hình dáng ghồ ghề, không trơn nhẵn trong thiên nhiên
Cụ thể hơn đó là những vật thể có tính đối xứng sắp xếp trong một phạm vi nhất định,
có nghĩa là khi ta chia một vật thể fractal, với hình dáng ghồ ghề, gãy góc ra thànhnhững phần nhỏ thì nó vẫn có được đặc tính đối xứng trong một cấu trúc tưởng nhưhỗn đoạn Hình dáng các đám mây, đường đi của các tia chớp là những ví dụ mà ta dễnhìn thấy được
Khái niệm về một Fractal: Cho đến giờ các nhà toán học không thể đưa ra khái
niệm chính xác Nhưng ta có thể hiểu như sau: Một phân dạng (còn được gọi là hình học phân hình hay fractal) là một vật thể hình học thường có hình dạng gấp khúc trênmọi tỷ lệ phóng đại, và có thể được tách ra thành từng phần: mỗi phần trông giốngnhư hình tổng thể, nhưng ở tỷ lệ phóng đại nhỏ hơn
Sự ra đời của lý thuyết hình học phân hình là kết quả của nhiều thập kỷ nổ lựcgiải quyết các vấn đề nan giải trong nhiều ngành khoa học chính xác, đặc biệt là vật lý
và toán học Một cách cụ thể, lý thuyết hình học phân hình được xây dựng dựa trên 2vấn đề lớn được quan tâm ở những thập niên đầu thế kỷ 20 Các vấn đề đó bao gồm:+ Tính hỗn độn của các quá trình phát triển có quy luật trong tự nhiên
+ Mở rộng khái niệm số chiều và độ đo trong lý thuyết hình học Euclide cổ điển
* Tính hỗn độn của các quá trình phát triển có quy luật trong tự nhiên
Các công thức lặp có dạng: Xn+1=f(Xn)
Trang 8thường được sử dụng trong các ngành khoa học chính xác để mô tả các quá trìnhlặp đi lặp lại có tính xác định Các quá trình được xác định bởi công thức trên, trong
đó f thể hiện mối liên hệ phi tuyến giữa hai trạng thái nối tiếp nhau Xn và Xn+1, đượcquan tâm đặc biệt Các khảo sát trong những thập niên gần đây đã phát hiện ra một số
sự khác lạ của các tiến trình lặp như vậy
Khảo sát chi tiết đầu tiên được nhà khí tượng học Edward N Lorenz tiến hànhvào năm 1961 khi nghiên cứu hệ toán học mô phỏng dự báo thời tiết Về mặt lýthuyết, hệ này cho ra các kết quả dự đoán chính xác trong một khoảng thời gian dài.Tuy nhiên, theo Lorenz quan sát, khi bắt đầu tính toán lại dựa vào dữ liệu cho bởi hệtại một thời điểm tiếp sau đó không giống với các kết quả dự đoán ban đầu Hơn nữasai số tính toán sẽ tăng lên nhanh chóng theo thời gian Điều này dẫn đến kết luận lànếu tiến trình dự đoán lại từ một thời điểm nào đó trong tiến trình dự báo, khoảng thờigian để các kết quả dự báo tiếp theo vẫn còn chính xác sẽ bị thu hẹp lại tức là khôngthể dự báo chính xác về thời tiết trong một khoảng thời gian khá lớn Vấn đề đượcLorenz tìm thấy ở đây ngày nay được gọi là sự hiện diện của tính chất hỗn độn trongcác tiến trình lặp xác định
* Sự mở rộng khái niệm số chiều và độ đo trong lý thuyết hình học Euclide cổ điển
Vào các năm 1890 & 1891, trong khi tìm kiếm các đặc trưng bất biến của cácđối tượng hình học qua các phép biến đổi đồng phôi trong lý thuyết topo, các nhà toánhọc Peano & Hilbert đã phát minh ra các đường cong có tính chất rất đặc biệt Đó làcác đường cong không tự cắt theo một quy luật, chúng lấp đầy mọi miền hữu hạn củamặt phẳng Hình học Euclide cổ điển quan niệm các đường cong như vậy chỉ là cácđối tượng một chiều như các đường thẳng Tuy nhiên trực quan cho thấy cách nhìnnhư vậy về số chiều là rất gò bó Do đó người ta bắt đầu nghĩ đến một sự phân lớpmới, trong đó các đường có số chiều bằng 1 được đại diện bởi đường thẳng, các đốitượng hai chiều được đại diện bởi mặt phẳng, còn các đường cong lấp đầy mặt phẳngđại diện cho các đối tượng có số chiều giữa 1 và 2 Ý tưởng cách mạng này đã dẫn đếnviệc hình thành và giải quyết bài toán số chiều hữu tỷ gây ra nhiều tranh luận toán họctrong các thập kỷ gần đây
Năm 1904 nhà toán học Thụy Điển Helge Koch đã đưa ra một loại đường congkhác với những đường cong của Peano và Hilbert Đó là các đường Von Kock Các
Trang 9đường cong Von Koch không lấp đầy mặt phẳng nhưng có độ dài thay đổi vô hạn mặc
dù chúng được chứa trong một miền hữu hạn Những đường cong như vậy có rấtnhiều trong tự nhiên, ví dụ như các đường bờ biển, đường biên của một bông hoa
tuyết, các đám mây, vv… Tính chất đặc trưng của cá đường cong này là tính đồng dạng (biểu hiện bởi sự giống nhau giữa một phần rất nhỏ của đường cong được phóng
lớn với một phần khác lớn hơn của cùng đường cong đó) Đây là một tính chất quantrọng trong việc hình thành nên các dạng cấu trúc phức tạp của tự nhiên, nhưng vàothời Von Koch lại được hiểu biết rất sơ lược
Chỉ với sự giúp đỡ của máy tính điện tử, bản chất của tính đồng dạng mới đượcnghiên cứu đầy đủ và chi tiết trong tác phẩm “Hình học phân hình trong tự nhiên” củaBenoit B Mandelbrot xuất bản năm 1982 Trong các nghiên cứu của mình,Mandelbrot đã phân rã các dạng cấu trúc phức tạp của tự nhiên thành các thành phần
cơ bản gọi là fractal Các fractal này chứa đựng các hình dáng tự đồng dạng với nhiều
kích thước khác nhau Mandelbrot đã tạo nên những bức tranh fractal trừu tượng đầutiên và nhận thấy rằng đằng sau các đối tượng tự nhiên như các đám mây, các dãy núi,các khu rừng, vv… là các cấu trúc toán học tương tự nhau Các đối tượng này cókhuynh hướng hài hoà về màu sắc và cân đối về hình thể Ngoài ra Mandelbrot cũngthiết lập cách xác định số chiều và độ dài của các dạng fractal cơ sở Với định nghĩa
về số chiều này, bài toán số chiều không nguyên đã được giải quyết một cách hoànchỉnh Có thể nói công trình của Benoit B.Mandelbrot đã chính thức khai sinh lýthuyết hình học phân hình sau hơn nửa thế kỷ nghiên cứu liên tục
1.1.2 Sự phát triển của lý thuyết hình học phân hình
Năm 1982, lý thuyết về hính học phân hình chính thức ra đời và đã phát triểnmột cách nhanh chóng Sau khi đặt nền móng cho lý thuyết phân hình, Mandelbrotcùng với các nhà toán học khác như A Douady và J.Hubbard đã phát triển lý thuyết
về các mặt fractal Các kết quả đạt được chủ yếu tập trung ở các tính chất của các cấutrúc fractal cơ sở như tập Mandelbrot và tập Julia Ngoài ra các nghiên cứu cũng cốgắng tìm kiếm mối liên hệ giữa các cấu trúc này, ví dụ như mối liên hệ giữa tậpMandelbrot và tập Julia
Trang 10Vào các năm 1986, 1988, dựa trên các công trình của Mandelbrot (trong nhữngnăm 1976, 1979, 1982) và Hutchinson (1981), Michael F.Barnsley và M.Begger đãphát triển lý thuyết biểu diễn các đối tượng tự nhiên dựa trên cơ sở lý thuyết về các hệhàm lặp IFS Các hệ hàm lặp này bao gồm một bộ hữu hạn các phép biến đổi affinecho phép tạo nên hình ảnh các đối tượng trong tự nhiên với sự giúp đỡ của máy tính.Theo lý thuyết này hình học Euclide cổ điển rất có hiệu lực trong việc biểu diễn cácđối tượng nhân tạo như một toà nhà, một cỗ máy nhưng lại không thích hợp cho việcbiểu diễn các đối tượng của thế giới thực vì đòi hỏi một lượng quá lớn các đặc tả cần
có Trong hình học Euclide, các yếu tố cơ sở là đường thẳng, đường tròn, hình vuông,
… còn trong lý thuyết IFS mở rộng hình học cổ điển với các yếu tố cơ sở mới là vô sốthuật toán để vẽ nên các fractal của tự nhiên
Ngoài các công trình có tính chất lý thuyết, hình học phân hình còn được bổsung bởi nhiều nghiên cứu ứng dụng lý thuyết vào khoa học máy tính và các khoa họcchính xác khác, ví dụ dựa trên lý thuyết IFS, Barnsley đã phát triển lý thuyết biến đổiphân hình áp dụng vào công nghệ nén ảnh tự động trên máy tính, là một lĩnh vực đòihỏi những kỹ thuật tiên tiến nhất của tin học hiện đại Ưu điểm của phương pháp nénảnh Fractal là: trong quá trình Fractal hóa, bạn sẽ nhận được bộ các chữ số rất nhỏ thểhiện hình ảnh Do đó hệ số nén của phương pháp là rất lớn, tuy thế chất lượng ảnh saukhi nén được bảo đảm khá chính xác Phương pháp rất hiệu quả với những ảnh có độphân giải cao Phương pháp này đã được áp dụng không những trong nén dữ liệu màcòn để thể hiện các mối quan hệ giữa các phần tử của các ánh xạ
Hiện nay nhiều vấn đề, về lý thuyết phân hình vẫn đang được tiếp tục nghiêncứu Một trong những vấn đề lớn đang được quan tâm là bài toán về các độ đo đaphân hình (multifractal measurement) có liên quan đến sự mở rộng các khái niệm sốchiều fractal với đối tượng fractal trong tự nhiên, đồng thời cũng liên quan đến việc ápdụng các độ đo fractal trong các ngành khoa học tự nhiên
Trang 111.2.1 Ứng dụng trong vấn đề tạo ảnh trên máy tính
Cùng với sự phát triển vượt bậc của máy tính cá nhân trong những năm gần đây,công nghệ giải trí trên máy tính bao gồm các lĩnh vực như trò chơi, anmation video…nhanh chóng đạt tới đỉnh cao Công nghệ này đòi hỏi sự mô tả các hình ảnh của máy
PC với sự phong phú về chi tiết và màu sắc với sự tốn kém rất lớn về thời gian vàcông sức Những vấn đề khó khăn đó hiện nay đã được giảm nhẹ nhờ các mô tả đơngiản nhưng đầy đủ của lý thuyết fractal về các đối tượng tự nhiên Với hình học phânhình khoa học máy tính có trong tay một công cụ mô tả tự nhiên vô cùng mạnh mẽ.Ngoài các ứng dụng trong lĩnh vực giải trí, hình học phân hình còn có mặt trongcác ứng dụng tạo ra các hệ đồ hoạ trên máy tính Các hệ này cho phép người sử dụngtạo lập và chỉnh sửa hình ảnh, đồng thời cho phép tạo các hiệu ứng vẽ rất tự nhiên hếtsức hoàn hảo và phong phú, ví dụ hệ phần mềm thương mại Fractal Design Paintercủa công ty Fractal Design Hệ này cho phép xem các hình ảnh dưới dạng hình hoạvéctơ cũng như sử dụng các ảnh bitmap như các đối tượng Các ảnh bitmap hiển thịhết sức nhanh chóng, thích hợp cho các ứng mang tính tốc độ, trong khi các ảnh véctơmất nhiều thời gian hơn để trình bày trên màn hình (vì phải được tạo ra bằng cách vẽlại) nhưng tốn rất ít vùng nhớ làm việc Do đó ý tưởng kết hợp ưu điểm của hai loạiđối tượng này sẽ giúp tiết kiệm nhiều thời gian cho người sử dụng các hệ phần mềmnày trong việc tạo và hiển thị các ảnh có độ phức tạp cao
1.2.2 Ứng dụng trong công nghệ nén ảnh
Một trong những mục tiêu quan trọng hàng đầu của công nghệ xử lý hình ảnhhiện nay là sự thể hiện hình ảnh thế giới thực với đầy đủ tính phong phú và sống độngtrên máy tính Vấn đề khó khăn trong lĩnh vực này chủ yếu do yêu cầu về không gianlưu trữ thông tin vượt quá khả năng lưu trữ của các thiết bị thông thường Một ví dụđơn giản: 1 ảnh có chất lượng gần như chụp cần vùng nhớ 24 bit cho 1 điểm ảnh, nên
để hiện ảnh đó trên màn hình mày tính có độ phân giải tương đối cao như 1024x768cần khoảng 2.25Mb Với các ảnh “thực” 24 bit này, để thể hiện được một hoạt cảnhtrong thời gian 10 giây đòi hỏi xấp xỉ 700Mb dữ liệu, tức là bằng sức chứa của mộtđĩa CD-ROM Như vậy khó có thể đưa công nghệ multimedia lên PC vì đòi hỏi một
cơ sở dữ liệu ảnh và âm thanh khổng lồ
Trang 12Để giải quyết vấn đề này, khoa học máy tính đã phải cải tiến vượt bậc cả về phầncứng lẫn phần mềm dựa trên ý tưởng nén thông tin hình ảnh trùng lặp Tuy nhiên chođến gần đây, các phương pháp nén thông tin hình ảnh đều có 1 trong 2 yếu điểm sau:+ Cho tỉ lệ nén không cao (Các phương pháp nén không mất thông tin).
+ Cho tỉ lệ nén tương đối cao nhưng chất lượng ảnh nén quá kém so với ảnh banđầu (Các phương pháp nén mất thông tin, ví dụ: chuẩn nén JPEG)
Các nghiên cứu lý thuyết cho thấy để đạt một tỷ lệ nén hiệu quả (kích thước dữliệu nén giảm so với ban đầu ít nhất hàng trăm lần), phương pháp nén mất thông tin làbắt buộc Phương pháp nén ảnh phân hình được áp dụng gần đây bởi Iterated Systemđáp ứng được yêu cầu về được một phương pháp nén kết hợp cả tính hiệu quả về tỷ lệnén lẫn chất lượng ảnh
1.2.3 Ứng dụng trong nghiên cứu khoa học cơ bản
Có thể nói cùng với lý thuyết topo, hình học phân hình đã cung cấp cho khoahọc một công cụ khảo sát tự nhiên vô cùng mạnh mẽ, vật lý học và toán học thế kỷ
XX đã gặp phải những vấn đề với sự xuất hiện của tính hỗn độn trong nhiều quá trình
có tính quy luật của tự nhiên Từ những vấn đề đó, trong những thập niên tiếp theo đãhình thành một lý thuyết mới chuyên nghiên cứu về các hệ phi tuyến, gọi là lý thuyếthỗn độn Việc khảo sát các bài toán phi tuyến đòi hỏi rất nhiều công sức trong việctính toán và thể hiện các quan sát một cách trực quan, do đó sự phát triển của lý thuyếtnày bị hạn chế rất nhiều
Tuy nhiên gần đây với sự ra đời của lý thuyết fractal và sự hỗ trợ đắt lực củamáy tính, các nghiên cứu chi tiết về sự hỗn độn mới được đẩy mạnh Vai trò của hìnhhọc phân hình trong lĩnh vực này thể hiện một cách trực quan những sự thay đổi bấtthường của các tiến trình được khảo sát, qua đó tìm ra được các đặc trưng hoặc cáccấu trúc tương tự nhau trong các ngành khoa học khác nhau Hình học phân hình được
áp dụng vào nghiên cứu lý thuyết từ tính, lý thuyết các phức chất trong hoá học, lýthuyết tái định chuẩn và phương trình Yang & Lee của vật lý, các nghiệm của các hệphương trình phi tuyến được giải dựa trên phương pháp xấp xỉ liên tiếp của Newtontrong giải tích số,… Các kết quả thu được giữ vai trò rất quan trọng trong các lĩnh vựctương ứng
Trang 131.3 Các kiến thức cơ sở của lý thuyết hình học Fractal
1.3.1 Một số khái niệm
- Initiator:
Hình khởi tạo hay đối tượng ban đầu để tạo hình Fractal được gọi là Initiator.
Một initiator có thể là một đoạn thẳng, một đa giác hay một đường cong (hìnhtròn, ellip hay bezier) Trong tự nhiên, một initiator có thể là một đối tượng bất kỳ
- Generator:
Một tập liên thông các đoạn thẳng (hoặc các hình đa giác hay các đối tượng…)
được sử dụng để thay thế Initiator nhằm tạo nên hình Fractal mong muốn được gọi là một Generator.
- Mức (level):
Khi Initiator được thay thế bởi Generator, ta có “hình Fractal mức 1” “HìnhFractal mức 1” này trở thành tập hợp Initiator với tỷ lệ nhỏ hơn và lại được thay thếbởi các Generator, ta được “hình Fractal mức 2”… Quá trình sinh hình Fractal lại
được tiếp tục Như vậy, có thể hiểu Mức (hay Level) của hình Fractal là số lần lặp lại
việc thay thế Intiator bởi các Generator
1.3.2 Số chiều Fractal
a Số chiều Hausdorff của một tập hợp A⊂ R
Chiều Hausdorff là khái niệm sinh ra để đo kích thước của phân dạng, thườngkhông phải là một số tự nhiên
Cho trước các số thực dương s và ε Gọi hs (A) là độ đo Hausdorff s-chiều của tập
A thì hs (A) được xác định bởi:
hs (A) = lim hs
ε (A) ε→0
với:
Trang 14trong đó:
diam (Ui) = sup [ d(x,y) : x,y ∈ Ui ], với d là metric Euclide trong không gian Rn,[U1, U2,… ] là một phủ mở của A và diam(Ui) < ε, ∀i
Hausdorff đã chứng minh được sự tồn tại của một số DH(A) sao cho:
Giá trị DH(A) được gọi là số chiều Hausdorff của tập A
Nói cách khác: DH(A) = inf {S : hs(A) = 0} = sub {s : hs(a) = ∞}
Trong trường hợp s = DH(A) thì hS(A) có thể là một số thực dương 0 hay ∞
Định nghĩa này giữ vai trò quan trọng trong lý thuyết hình học phân hình hiệnđại nhưng không có tính thực tiễn vì việc xác định số chiều theo định nghĩa này rấtphức tạp ngay cả với trường hợp tập A rất đơn giản Do đó, xuất phát từ định nghĩanày, Mandelbrot đã đưa ra khái niệm số chiều fractal tổng quát dễ xác định hơn với badạng đặc biệt áp dụng cho từng loại đối tượng (tập A) cụ thể
b Số chiều tự đồng dạng: (số chiều Hausdorff-Bescovitch)
Cho trước một cấu trúc tự đồng dạng được chia thành N phần, hệ số thu nhỏ củamỗi phần so với cấu trúc ban đầu là r Ký hiệu DS là đại lượng xác định bởi:
Khi đó DS được gọi là số chiều tự đồng dạng của cấu trúc đó
Ví dụ: Xét một hình vuông được chia thành 9 hình vuông nhỏ với tỷ lệ đồngdạng là 1/3 Khi đó số chiều tự đồng dạng của hình vuông ban đầu được xác định bởi:
Xét một khối lập phương được chia thành 27 khối lập phương nhỏ hơn với tỷ lệđồng dạng 1/3 Có số chiều của tự đồng dạng của khối lập phương được xác định bởi:
Trang 15Hai ví dụ trên cho thấy định nghĩa số chiều tự đồng dạng phù hợp với định nghĩathông thường của hình học Euclide.
c Số chiều Compa:
Số chiều Compa được áp dụng cho các đường cong không phải là các đườngcong tự đồng dạng hoàn toàn (như các đường bờ biển, các con sông,…), nhưng có thể
sử dụng nhiều đơn vị khác nhau để xác định độ dài của chúng
Xét một đường cong không tự đồng dạng Biểu diễn số đo của đường cong trên
hệ toạ độ log / log với:
+ Trục hoành: thể hiện logarit của độ chính xác trong phép đo chiều dài đườngcong Độ chính xác được đặc tả bởi 1/s, với s là đơn vị đo độ dài Ở đây giá trị scàng nhỏ thì độ chính xác của phép đo càng lớn
+ Trục tung: thể hiện logarit của độ dài u đo được ứng với một đơn vị đo s
+ d: là hệ số góc của đường thẳng hồi qui dùng để xấp xỉ các giá trị đo u đo đượcdựa trên phương pháp bình phương cực tiểu Ta có quan hệ:
log u = d log (1/s + b), b là hệ số tự do
Khi đó số chiều compa DC được xác định bởi:
DC = 1 + d
Ví dụ: Xét đường cong 3/2 được xây dựng theo kỹ thuật initiator / generator chỉ
ra bởi hình vẽ sau:
Trang 16Biểu diễn các đại lượng có liên quan trên hệ toạ độ log/log đã được trình bày ởtrên với chú ý sau bước tạo sinh thứ k, đường cong gồm 8k đoạn, mỗi đoạn có độ dài s
= 1 / 4k nên độ dài của đường cong sẽ là 8k.1/4k = 2k
Khi đó giá trị trên trục hoành là log41 / 1 / 4k = k ứng với giá trị trên trục tung là:log42k = k / 2 Do đó ta xác định được d = 0.5
Vậy: DC = 1 + 0.5 = 1.5
d Số chiều Box-Counting:
Số chiều Box-Counting được áp dụng cho các đường cong fractal không thể xácđịnh số chiều theo 2 cách vừa trình bày Cách tính số chiều này có thể áp dụng chomọi cấu trúc trong mặt phẳng và mở rộng cho cấu trúc trong không gian
Xét một cấu trúc fractal bất kỳ Lần lượt đặt cấu trúc này lên một dãy các lưới có
kích thước ô lưới s giảm liên tiếp theo tỉ lệ ½ Gọi N(s) là các ô lưới có kích thước s
có chứa một phần cấu trúc Ta xây dựng hệ toạ độ log/log như sau:
+ Trục hoành biểu thị giá trị của đại lượng log2 (1/s)
+ Trục tung biểu thị giá trị của đại lượng log2 N((s))
+ DB là hệ số góc của đường thẳng hồi qui đối với tập hữu hạn các điểm (s, N(s))của hệ toạ độ
Khi đó ta có:
DB được gọi là số chiều box-counting của cấu trúc fractal đã cho
Trang 17Chương 2 MỘT SỐ HỌ ĐƯỜNG CƠ BẢN VÀ TẬP FRACTAL PHỔ BIẾN
Trong chương này ta sẽ tìm hiểu về các fractal được phát sinh từ các đoạn thẳngvới kỹ thuật đệ qui initiator / generator với kết quả là các hình tự đồng dạng hoàntoàn Đây chính là bước khởi đầu để tìm hiểu các lý thuyết fractal khác phức tạp hơn
2.1 Họ đường Vonkock
Năm 1904, họ đường Vonkock được phát hiện bởi nhà toán học Thụy ĐiểnHelge von Koch Các hình này có số chiều tự đồng dạng, số chiều fractal và số chiềuHausdorff-Besicovitch bằng nhau Số chiều được tính theo công thức sau:
Trong đó: N: Là số đoạn thẳng
R: Là số chiều dài của mỗi đoạn
Bắt đầu bằng một initiator (một đoạn thẳng hay một đa giác) Mỗi cạnh củainitiator được thay thế bởi một generator, là tập liên thông của các đoạn thẳng tạo nênbằng cách đi từ điểm đầu đến điểm cuối của đường thay thế (thông thường các điểmcủa generator là một lưới vuông hay một lưới tạo bởi các tam giác đều) Sau đó mỗiđoạn thẳng của hình mới được thay thế bởi phiên bản nhỏ hơn của generator, tạo lênmức thấp hơn của đường Quá trình tiếp tục cho đến khi đạt đến một mức xác định
2.1.1 Đường hoa tuyết Vonkock ─ Snowflake
Đường hoa tuyết được xây dựng bởi nhà toán học Helge Von Kock vào năm
1904 Bắt đầu với initiator là một đoạn thẳng Còn generator được phát sinh như sau:
Generator của đường Vonkock ─ Snowflake
Trang 18VonKock là một đường cong toán học và là một trong những đường congFractal được mô tả đầu tiên Nó được dựa trên đường cong Koch, xuất hiện trong mộtbài báo năm 1904 có tiêu đề "Trên một đường cong liên tục mà không có tiếp tuyến”.Các đường cong Koch có chiều dài vô hạn vì sau mỗi mức, các đoạn thẳng lạiđược thay thế bởi bốn đoạn đường thẳng nhỏ hơn có độ dài bằng 1/3 đoạn thẳng đượcthay thế.
Ta chia đoạn thẳng thành ba phần bằng nhau Sau đó thay thế một phần ba đoạngiữa bằng tam giác đều và bỏ đi cạnh đáy của nó Sau đó lặp lại quá trình này cho mỗiđoạn thẳng mới Nghĩa là chia đoạn thẳng mới thành ba phần bằng nhau và lặp lai cácbước như trên
Ta thấy quá trình xây dựng là tự đồng dạng, nghĩa là mỗi phần trong 4 phần ởmức thứ k là phiên bản nhỏ hơn 3 lần của toàn bộ đường cong ở mức thứ (k–1)
Như vậy mỗi đoạn thẳng của generator có chiều dài R = 1/3 (giả sử chiều dàiđoạn thẳng ban đầu là 1) và số đoạn thẳng của generator N = 4 Do vậy số chiềufractal của đường hoa tuyết là:
Một số hình ảnh của đường:
Mức 2 Mức 3
Trang 192.1.2 Đường Vonkock ─ Gosper
Đường Vonkock ─ Gosper là một dạng khác của đường Von Kock được pháthiện bởi W.Gosper Trong đường mới này, initiator là một lục giác đều và generatorchứa ba đoạn nằm trên một lưới của các tam giác đều Hình sau cho chúng ta thấygenerator bố trí trên lưới:
Generator của đường Vonkock ─ Gosper và mức đầu tiên của đường
Ta thấy đường này khác biệt so với đường hoa tuyết Vonkock ─ Snowflake ởchỗ đoạn thẳng được thay thế không nằm trên bất kỳ các đường nào của lưới
Để tính số chiều fractal của đường Gosper trước hết ta tính chiều dài mỗi đoạncủa generator
Giả sử chiều dài từ đầu mút của generator đến đầu mút khác là 1
Đặt: AC = R => AE = 3AC = 3R
AB2 = AE2 + EB2 – 2AE.EB.Cos(600)
Ta có: AB = 1, AE = 3R, EB = AC = R
Trang 20Vì N = 3 nên số chiều fractal của đường Gosper là:
Ngoài ra, đường Gosper có các mức khác nhau thì tương ứng với các hình dạngkhác nhau
Một số hình ảnh của đường Gosper
2.1.3 Đường Vonkock bậc hai 3–Đoạn
Một vài đường cong kế tiếp được gọi là bậc hai (quadric) vì initiator là một hìnhvuông Ta sẽ tạo ra các generator trên lưới các hình vuông Đối với đường Von Kockbậc hai 3 - đoạn, một generator của 3-đoạn sẽ được sử dụng
Generator của đường Vonkock bậc hai 3–Đoạn
Để tính số chiều fractal của đường này trước hết ta tính số chiều của mỗi đoạncủa generator
Giả sử chiều dài từ đầu mút của Generator đến đầu mút khác là 1 (AB = 1)
Ta có:
Trang 212.1.4 Đường Vonkock bậc hai 8–Đoạn
Tương tự như đường Vonkock bậc hai 3-đoạn, đường Vonkock bậc hai 8–Đoạn
sử dụng một lưới hình vuông và quay các góc đi 900 Đường cong này đều hơn mộtchút so với đường cong trước bởi vì đoạn thẳng được thay thế sẽ rơi vào đường nằmngang ở giữa lưới
Generator của đường Vonkock bậc hai 8–Đoạn
Trang 22Giả sử chiều dài từ đầu nút của generator đến đầu mút khác là 1, thì chiều dàimỗi đoạn thẳng của generator R = 1/4.
Ta có thể vẽ các generator khác nhau, điều cần quan tâm là làm sao để đườngcong không tự đè lên nhau và không tự giao nhau Nếu muốn đường cong có số chiềulớn nhất có thể có, thì ta cần tìm generator với N lớn nhất Mandelbrot đã định giá trị
N lớn nhất có thể có là:
Với 1/R là số chẵn
Với 1/R là số lẻ
Do vậy R = 1/4 nên Nmax = 8 Số chiều fractal là:
Ngoài ra, đường Von Kock 8-đoạn có các mức khác nhau thì tương ứng với cáchình dạng khác nhau
2.1.5 Generator phức tạp
Đường Generator phức tạp được khám phá bởi Mandelbrot, cơ sở của đường này
là một lưới các tam giác đều
2 max
2
1
R R
Trang 23Generator của đường Generator phức tạp
Nếu generator chứa các đoạn nối các điểm 0, 1, 2, 3, 4 và 11 thì nó sẽ đơn giảnhơn Tuy nhiên mô hình nhỏ hơn của generator đơn giản này được chèn vào giữa điểm
4 và 9, sau đó hai đoạn thẳng bằng nhau được thêm vào để hoàn tất generator
Do có hai độ dài khác nhau được sử dụng, ta sử dụng biểu thức sau để xác định
số chiều fractal:
Ta có: ∑ R.M D = 1
Trong đó:
M: Là số đoạn thẳng
R: Là chiều dài của mỗi đoạn thẳng
D: Là số chiều của mỗi fractal
Giả sử chiều dài từ đầu mút của generator đến đầu mút khác là 1, thì chiều dàicủa các đoạn đều bằng nhau: R =1/3 Đối với các đoạn nhỏ hơn thì chiều dài là:
2
13
23
129
49
12
=
CD CD
Trang 24Do đó, chiều dài mỗi đoạn của generator nhỏ là:
2.2.1 Đường Peano nguyên thủy
Ở đây initiator rất đơn giản Nó chỉ là một đoạn thẳng
Trang 25Generator của đường Peano nguyên thủy
Có thể thấy tất cả đều tự cắt, nên hầu như không thể xác định cách thức đườngPeano được vẽ, ngay cả các mũi tên được thêm vào trong hình vẽ Nhìn vào hình vẽ tathấy generator được hình thành theo đường đi của các mũi tên
Như vậy generator chứa 9 đoạn thẳng (N = 9), chiều dài mỗi đoạn của generator
là R = 1/3 (Giả sử chiều dài đoạn thẳng ban đầu là 1) Do đó số chiều fractal là:
Một số hình ảnh của đường:
2.2.2 Đường Peano cải tiến
Nếu không có sự tự giao của generator đối với đường Peano thì việc đi theo vếtcủa nó và quan sát cách thức vẽ sẽ dễ dàng hơn Vì thế, đường Peano cải tiến đượcphát triển theo kiểu làm tròn các góc để tránh sự tự giao Kết quả chúng ta đượcgenerator như hình sau:
Generator của đường Peano cải tiến
Tuy nhiên, generator cập nhật này chỉ có thể sử dụng ở mức thấp nhất trước khithực vẽ đường cong Nếu sử dụng nó ở mức cao hơn, bằng kỹ thuật đệ quy chúng ta
cố gắng thay thế generator đối với mỗi đường chéo được làm tròn ở một góc, cũng
Trang 26như đối với các đoạn thẳng đều Do đó generator cho đường Peano nguyên thuỷ được
sử dụng ở mức cao Vì generator sử dụng lần đệ quy cuối cùng có độ dài ngắn hơn sovới đường Peano nguyên thuỷ, ta có số chiều fractal D nhỏ hơn 2 Khi số lần đệ quytăng lên, số chiều fractal sẽ thay đổi và tiến về 2
Một số hình ảnh của đường cong Peano cải tiến:
Mức 1 Mức 2
2.2.3 Tam giác Cesaro
Được khám phá bởi Ernest Cesaro vào năm 1905, bắt đầu với initiator là đoạnthẳng nằm ngang, tam giác Cesaro với generator như sau:
Generator của tam giác Cesaro
Generator chứa hai cạnh của một tam giác cân Do đó, số đoạn thẳng là N=2 vàchiều dài của mỗi đoạn là:
Giả sử đoạn thẳng ban đầu có chiều dài là 1 Khi đó số chiều fractal là:
Trang 27Phụ thuộc vào các điều kiện cụ thể, generator này sẽ được đặt bên trái hoặc bênphải của mỗi đoạn thẳng mà nó thay thế Nhiều đường cong khác nhau hoàn toàn cóthể được sinh ra từ generator này
Một số hình ảnh của tam giác Cesaro:
Ở bất kỳ mức nào trong việc xây dựng đường này, generator luôn được đặt ở bênphải của mỗi đoạn thẳng ở mức đầu tiên, bên trái của mỗi đoạn thẳng ở mức thấp hơn
kế tiếp, bên phải của mỗi đoạn thẳng ở mức thấp hơn kế tiếp nữa v.v…
2.2.4 Tam giác Cesaro cải tiến
Việc lần theo vết của tam giác Cesaro mô tả ở trên khá khó vì đường rẽ theo góc
900 từ tâm của đoạn thẳng gốc thật sự quay lại theo vết của nó nhưng không thể quansát được khi vẽ Để cập nhật đường cesaro dễ dàng hơn ta có thể thực hiện bằng cáchthay đổi góc generator từ 900 sang 850 đối với mức thấp nhất trước khi vẽ
Bắt đầu với initiator là đoạn thẳng nằm ngang, với generator như sau:
Generator của đường Tam giác Cesaro cải tiến
Giống như đường Peano cải tiến, kết quả thu được là một đường cong mà sốchiều fractal không hoàn toàn là 2, nhưng khi số lần đệ quy tiến ra vô cực thì số chiềufractal tiến về 2
Một số hình ảnh của tam giác Cesaro cải tiến:
Trang 282.2.5 Đường hoa tuyết Peano 7 – đoạn
Đường này được khám phá bởi Mandelbrot Bắt đầu bằng initiator là một đoạnnằm ngang, với generator như sau:
Generator của đường hoa tuyết Peano 7 – đoạn
Trang 29Tương tự như generator sử dụng trong “Generator phức tạp” của họ đường VonKock Điểm khác nhau duy nhất là generator này không chứa các mô hình nhỏ hơn.Giả sử chiều dài từ đầu mút của generator đến đầu mút khác là 1.
Ta thấy, generator có 7 đoạn, trong đó có 6 đoạn có chiều dài bằng nhau làR=1/3, còn chiều dài của đoạn còn lại là:
ra một loại đường cong duy nhất
Với đường này, initiator là một đoạn thẳng và generator được thể hiện như sau:
Generator của tam giác Sierpinski
Trang 302.4 Tập Mandelbrot
2.4.1 Giới thiệu chung
Cho dãy số phức {zn} xác định bởi:
… biểu diễn vô hạn các điểm trên mặt phẳng phức Tập các điểm phức c sao cho tậpbiểu diễn dãy số phức {zn} bị chặn (i.e trên mặt phẳng phức biểu diễn gồm các điểmbên trong hình tròn tâm gốc tọa độ, bán kính r hữu hạn) làm thành một fractal, gọi làtập Mandelbrot Năm 1979, Mandelbrot mới thành công trong việc quan sát dãy này
Trang 31với sự hỗ trợ của máy tính điện tử Kết quả là một trong những cấu trúc fractal phứctạp và đẹp, được đặt tên Mandelbrot để ghi nhớ công lao của tác giả, người đã khaisinh ra lý thuyết hình học phân hình
Ngoài ra khi khảo sát dãy (zn) ta tìm được tính chất về sự hội tụ của dãy như sau:
− Nếu tồn tại k ∈ N sao cho | zk | > 2 thì dãy (zn) hội tụ đến vô cực
− Nếu tồn tại k ∈ N sao cho | zt | < 2, ∀t : k ≤ t ≤ 1, với 1 là hằng số hữu hạn thìcũng có | zn | < 2, ∀n ≥ k (Ký hiệu | z | chỉ modul của số phức z)
2.4.3 Thuật toán thể hiện tập Mandelbrot
a Tư tưởng thuật toán:
Tập Mandelbrot là hình ảnh của dãy (zn), với giá trị khởi đầu z0 = 0 Khi đó mànhình máy tính sẽ chuyển đổi thành một mặt phẳng phức thu hẹp với:
− Trục x biểu diễn phần thực của số phức c (giá trị p được nêu ở phần 2.4.2)
− Trục y biểu diễn phần ảo của số phức c (giá trị q được nêu ở phần 2.4.2)
Từ tính chất về sự hội tụ của dãy (zn) ở phần 2.4.2 ta có thể chia tập các giá trịcủa c trên mặt phẳng phức thành 2 lớp:
Lớp 1:
Gồm các giá trị c làm cho dãy (zn) không tiến ra vô cực mà được giới hạn trongmột vòng tròn bán kính 2 Một cách cụ thể, đó là các giá trị c sao cho khi xuất phát từchúng, ta luôn có | zi | < 2, ∀i = 1, 2, …, l, trong đó l do ta chọn trước Để ý là giá trị lcàng lớn thì tính hội tụ của dãy (zn) tương ứng với một giá trị cụ thể càng được kiểmtra chặt chẽ và chính xác Tuy nhiên khi đó thời gian tính toán để xác định tính hội tụ
sẽ tăng lên gấp nhiều lần
Trang 32Lớp 2:
Gồm các giá trị phức c làm cho dãy (zn) hội tụ về vô cực Cụ thể đó là các giá trị
c khởi đầu dẫn đến | zn | > 2 ở một ngưỡng k hữu hạn nào đó
Vấn đề đặt ra ở đây là cần quan sát tính hỗn độn của dãy (zn) Do đó chúng ta tậptrung các quan sát vào các giá trị c thuộc lớp 2 Muốn như vậy các giá trị này phảiđược thực hiện một cách nổi bật trên màn hình máy tính bởi các màu khác nhau.Chúng ta sẽ tô màu mặt phẳng phức màn hình theo qui tắc sau:
− Các giá trị c thuộc lớp 1 được tô màu đen vì không có tính chất gì đáng chú ý
− Các giá trị c thuộc lớp 2 được tô bằng các màu khác nhau ứng với các ngưỡngtiến ra vô hạn k khác nhau Do số lượng màu có thể hiển thị trên một màn hình
đồ hoạ là hữu hạn, việc tô màu các giá trị này sẽ được thực hiện theo kỹ thuật
tô màu xoay vòng được chỉ ra ở các phần tiếp sau đây
b.Thuật toán tổng quát để thể hiện tập Mandelbrot:
Thuật toán gồm các bước sau:
- Bước 1: Xuất phát với một giá trị khởi đầu c = (p,q)
- Bước 2: Kiểm tra c thuộc lớp 1 hay lớp 2
- Bước 3: Nếu c thuộc lớp 1 thì tô điểm ảnh tương ứng bằng màu đen, ngược lại
tô điểm ảnh này bởi màu tương ứng xác định từ kỹ thuật tô xoay vòng
- Bước 4: Chọn một giá trị c mới và trở lại bước 1 cho đến khi quét hết toàn bộgiá trị c cần khảo sát (đôi khi ta không cần khảo sát toàn bộ mà chỉ khảo sátmột miền con được yêu cầu của mặt phẳng phức) Khi đó thuật toán kết thúc
Ký hiệu:
− Max_Iterations là số lần lặp tối đa cần có để kiểm tra giá trị c thuộc lớp 1 haylớp 2 (chính là giá trị 1 được đề cập trong định nghĩa của lớp 1)
− Count là số lần lặp đã thực hiện (giá trị này tương ứng với một ngưỡng tiến ra
vô hạn k được nêu ra trong định nghĩa lớp 2)
− Miền con của mặt phẳng phức cần khảo sát là một cửa sổ hình chữ nhật được
mô tả bởi toạ độ góc trái bên dưới (Xmin , Ymin) và toạ độ góc trên bên phải (Xmax
, Ymax) (theo hệ trục toạ độ thông thường)
Trang 33Khi đó mối liên hệ giữa hệ trục toạ độ phức thực tế với hệ toạ độ nguyên trênmàn hình máy tính được x thể hiện bởi hình dưới đây:
Điểm (0,0) trên màn hình máy tính sẽ ứng với giá trị c = (Xmin , Ymax), điểm kếtthúc (Max_Col, Max_Row), với Max_Col x Max_Row thể hiện độ phân giải mode đồhoạ hiện thời của màn hình (ví dụ với mode VGA 16 màu ta có Max_Col = 604,Max_Row = 480), sẽ tương ứng với điểm c = (Xmax , Ymax) Do đó nếu ký hiệu:
∆p: Lượng gia tăng theo trục thực của giá trị p ứng với mỗi cột trên màn hình
∆q: lượng gia tăng theo trục ảo của giá trị q ứng với mỗi hàng trên màn hình thì:
Khi đó một số phức c = (p, q) ứng với một điểm ảnh có toạ độ màn hình là (Col,Row) sẽ được xác định bởi:
p = Xmin + Col.∆p
q = Ymax – Row.∆q
Có thể kiểm tra là khi Col, Row biến thiên theo chiều tăng đến các giá trị tươngứng Max_Col, Max_Row, chúng ta cũng có p biến thiên từ Xmin đến Xmax và q biếnthiên từ Ymax xuống Ymin , đúng như yêu cầu về quan hệ giữa hệ toạ độ phức sử dụngtrong toán học với hệ toạ độ hiển thị của màn hình đã được nêu trong hình trên
Việc kiểm tra c thuộc lớp 1 hay 2 được viết dưới dạng:
Trang 34if (Count > Max_Iterations) & (Modul (Zcount) < 2 ))
c thuộc lớp 1
if (Count < Max_Iterations) & (Modul (Zcount) > 2 ))
c thuộc lớp 2Đồng thời màu tô cho điểm c = (p, q) thuộc lớp 2 được tính toán theo công thức:Màu tô (p, q) = Count(p, q) mod Max_Colors
for(Col = 0; Col < Max_Col; ++Col)
{
for(Row = 0; Row <= Max_Row; ++Row)
{
X = Y = xn = yn = 0;
(vì ứng với mỗi giá trị c = (p, q) tương ứng với điểm ảnh
(Col, Row), dãy (zn) được khảo sát với z0 = 0) Count = 1;
While (Count < Max_Iterations) & (√ X + Y < 2) {
p = p + ∆p ;
}
Trang 35Nhận xét: trong thuật toán trên, giá trị q được tính tất cả Max_Col x Max_Rowlần, như vậy với màn hình có độ phân giải 640 x 480, q được tính 307200 lần, nhưngthực chất chỉ có 480 giá trị q ứng với 480 hàng được sử dụng Do đó để tăng tốc độlàm việc của thuật toán, các giá trị q có thể được tính trước khi vào vòng lặp và đượclưu lại trong 1 mảng 1 chiều Q có Max_Row phần tử như sau:
Q[0] = Ymax ;for(i = 0; i < Max_Row; ++i)
Q[i] = Q[i - 1] - ∆q;
Ở đây ∆q được tính trước theo công thức đã nêu
Một nhận xét thứ hai là việc tính | zn | = √ X + Y = √ xn + yn để so sánhvới 2 chiếm rất nhiều thời gian
Do đó ta thay việc so sánh √ xn2 +yn2 < 2 bởi xn2 + yn2 < 4 vì hai bất đẳng thứcnày tương đương Việc làm này sẽ làm giảm đáng kể thời gian thực hiện thuật toán.Thuật toán được viết lại dưới dạng:
for(Col= 0; Col<Max_Col; ++Col)
Trang 36Hình dưới đây thể hiện tập Mandelbrot cổ điển với các giá trị khảo sát nằm trongvùng giới hạn bởi Xmin = -2.0, Ymin = -1.2, Xmax = 1.2, Ymax = 1.2 và Max_Iterations =
512, Max_Colors = 16
Tập Mandelbrot cổ điển
Trang 37Chương 3 GIẢI THUẬT LẶP HỖ TRỢ TẠO ẢNH FRACTAL
3.1 Các hệ hàm lặp IFS (Iterated Function System)
a Không gian ảnh Hausdorff:
Giả sử (X,d) là một không gian metric đầy đủ Ở đây X được giới hạn bằng R2
và d là metric Euclide Ký hiệu H(X) là không gian các tập con compact khác rỗngcủa X Ta xét các định nghĩa:
Khoảng cách Hausdorff giữa hai điểm A và B ∈ H(H) được xác định bởi:
h(A,B) = max {d(A,B), d(B,A)}
Với các định nghĩa trên ta có định lý:
Định lý về sự tồn tại của các IFS Fractal:
Ta có (H(X), h) là một không gian metric đầy đủ Hơn nữa nếu An ∈ H(X) với n
= 1,2,… lập thành một dãy Cauchy thì tập hợp A xác định bởi:
cũng thuộc H(X) A có thể được đặc tả như sau:
A = [ x ∈ X : ∃ một dãy Cauchy [ xn∈ An] hội tụ về x]
Trang 38b Ánh xạ co trên không gian Hausdorff:
Giả sử w: X → X là một ánh xạ liên tục trên không gian metric(X,d) Khi đó w
ánh xạ không gian H(X) lên chính nó
Chứng minh: Giả sử S là một tập con compact khác rỗng của X Khi đó ta có: w(S) = [w(x) : x ∈ S] là một tập khác rỗng
Ta chứng minh w(S) compact Xét [ yn = w(xn) ] là một dãy vô hạn điểm củaw(S) Khi đó [xn] cũng là một dãy vô hạn điểm trong S Vì S compact nên tồntại một dãy con [xn ] hội tụ về một điểm x’∈ S, nhưng do tính liên tục của wsuy ra được [ yNn = f (xNn ) ] là một dãy con của [ yn ] hội tụ về y’ ∈ w(S) Vậyw(S) compact
Trang 39W(B) = [w(x): x ∈ B]
với B thuộc H(X) cũng là một ánh xạ co trên (H(X), h(d)) với hệ số co s
Chứng minh:
Từ bổ đề 1 suy ra w: X → X liên tục Do đó theo bổ đề 2, ánh xạ H(X) lên chính
nó Bây giờ xét B, C thuộc H(X)
Ta có:
d(w(B), w(C)) = max [ min [ d(w(x), w(y)): y ∈ C ] : x ∈ B ]
≤ max [ min [ s.d(x,y) : y ∈ C ]: x ∈ B ]
= s.d(B, C)Tương tự:
Từ đó suy ra điều phải chứng minh
Bổ đề 4: (Cung cấp cách thức cơ bản để nối kết các ánh xạ co trên (H(X), h)thành các ánh xạ co mới trên (H(X), h))
Ký hiệu [wn ] là các ánh xạ co trên (H(X), h) với các hệ số co tương ứng sn, n =
1, 2,…,N Xác định W : H(X) → H(X) bởi:
với B ∈ H(X) Khi đó W là ánh xạ co với hệ số co”
Chứng minh: Kết quả trên được chứng minh bằng qui nạp
Trang 40Giả sử khẳng định đúng với N=k Ta chứng minh khẳng định đúng với N = k+1.Thật vậy, ta có:
Do đó theo nguyên lý qui nạp bổ đề 4 được chứng minh xong
c Các hệ hàm lặp IFS (Iterated Function System):
Định nghĩa:
Một hệ hàm lặp gồm một không gian metric đầy đủ (X, d) và một bộ hữu hạncác ánh xạ co wn với hệ số co tương ứng sn, n = 1,2,…, N Ta ký hiệu IFS thay chocụm từ hàm lặp Một IFS được ký hiệu bởi [X; wn, n = 1,2,…, N] và hệ số co:
Định lý IFS: (Tóm tắt các kết quả chính của một IFS)