فهرست مطالب:

Mandelbrot و Julia Sets در ESP32: 4 مرحله (همراه با تصاویر)
Mandelbrot و Julia Sets در ESP32: 4 مرحله (همراه با تصاویر)

تصویری: Mandelbrot و Julia Sets در ESP32: 4 مرحله (همراه با تصاویر)

تصویری: Mandelbrot و Julia Sets در ESP32: 4 مرحله (همراه با تصاویر)
تصویری: Beyond the Mandelbrot set, an intro to holomorphic dynamics 2024, جولای
Anonim
Image
Image
مندلبروت و جولیا در ESP32 تنظیم می کنند
مندلبروت و جولیا در ESP32 تنظیم می کنند
مندلبروت و جولیا در ESP32 تنظیم می کنند
مندلبروت و جولیا در ESP32 تنظیم می کنند

شما قطعا فراکتال ها را می شناسید که معروف ترین آنها مجموعه مندل بروت است.

در اینجا برنامه ای برای بازی با ESP32 وجود دارد. من ESP32 را انتخاب کردم زیرا فکر می کنم محاسبات را سریعتر از یک آردوینو استاندارد (فرکانس کلاک بالاتر: 240 مگاهرتز) انجام می دهد: حدود یک ثانیه تا یک ثانیه و نیم برای محاسبه و نمایش.

کد روی صفحه لمسی 480 3 320 TFT نمایش داده می شود. این مجموعه Mandelbrot و Julia را برای چندین مقدار پارامتر محاسبه می کند و به شما امکان می دهد تا برای مشاهده جنبه فراکتال روی مناطق مورد نظر بزرگنمایی کنید (یعنی وجود ساختارهای یکسان در هر تغییر مقیاس). سطح زوم به دلیل دقت محدود محاسبات محدود است ، اما قبل از تخریب تصویر می توان نیم دوجین بزرگنمایی کرد.

آماده کاوش در دنیای جادویی فراکتال ها شوید…

مرحله 1: مندلبروت و جولیا ست چیست؟

مندلبروت و جولیا ست چیست؟
مندلبروت و جولیا ست چیست؟
مندلبروت و جولیا ست چیست؟
مندلبروت و جولیا ست چیست؟
مندلبروت و جولیا ست چیست؟
مندلبروت و جولیا ست چیست؟

مجموعه مندل بروت به نام بنوا مندلبروت (1924-2010) ، ریاضیدان فرانسوی و آمریکایی که در زمینه هندسه فرکتال کار پیشگامانه انجام می داد ، نامگذاری شد ، که در پایان قرن نوزدهم توسط پانو ، سیرپینسکی و جولیا آغاز شد.

اجسام فراکتال چیست؟

بی نظمی های طبیعت ، که ممکن است بی نظم به نظر برسند ، مانند خط ساحل دریا ، شکل ابرها ، یک درخت ، در واقع بیان یک هندسه بسیار پیچیده در مقیاس در حال تغییر است. در این زمینه ، مفهوم بعد کسری جایگزین مفهوم معمول اقلیدسی (که همیشه یک عدد صحیح است) می شود!

یک شی فرکتال به گونه ای است که هر قسمتی از آن با کل یکسان است (به این می گویند شباهت به خود): ساختار آن با تغییر مقیاس تغییر ناپذیر است.

اصطلاح "فراکتال" یک نئولوژیک است که توسط بنویت مندلبروت در سال 1974 از ریشه لاتین فراکتوس ایجاد شده است ، که به معنی "شکسته" ، "نامنظم" است. هم اسم است و هم صفت. بسیاری از پدیده های طبیعی - مانند طرح خطوط ساحلی یا ظاهر کلم رومانسکو (تصویر را ببینید) - دارای شکل فرکتال تقریبی هستند.

شغل Benoît Mandelbrot تا حدودی غیرمعمول بود: پس از تدریس در دانشگاه لیل (فرانسه) ، وی در IBM موقعیتی را به دست آورد و در آنجا به سرعت به عضو IBM تبدیل شد ، که آزادی زیادی برای مطالعات علمی خود به او داد. در اوایل دهه 1980 ، پس از ترک IBM ، استاد هاروارد شد ، اما به طور دائم در ییل اقامت داشت.

کارهای او در دهه 1960 و اوایل 1970 باعث شد تا مقاله ای معروف با عنوان "اجسام فراکتال" منتشر کند که در آن نشان داد این اشیا ، که توسط بخش بزرگی از جامعه ریاضی به عنوان کنجکاوی صرف تلقی می شوند ، در همه جای طبیعت یافت می شوند. او نمونه های زیادی در زمینه های مختلف مانند فیزیک ، هیدرولوژی ، مالی ، هواشناسی ، جغرافیا ، زمین شناسی ، متالورژی و… ارائه کرد.

مجموعه Mandelbrot چیست؟

برای شروع ، فرض کنید این یک نقاشی خوب است که توسط یک برنامه ایجاد شده است. و این برنامه بسیار ساده است. بسیاری از نقاشی های تولید شده توسط کامپیوتر و بسیاری از نرم افزارهای رایانه ای برای تولید آنها وجود دارد. بنابراین ویژگی خاص این یکی چیست؟ اول ، مجموعه Mandelbrot زیر مجموعه ای از طرح است ، مجموعه ای از نقاط. این شامل مناطق ، اما همچنین منحنی های صاف ، رشته ها ، نقاطی است که شاخه های متعدد از آنها بیرون می آیند و چیزهای دیگر. دوم: این واقعاً جذاب است و تاریخ بسیار جالبی دارد.

در آغاز قرن بیستم ، ریاضیدانان فرانسوی پیر فاتو و گاستون جولیا حوزه ای فرعی از ریاضیات ایجاد کردند که دینامیک هولومورفیک نامیده می شد. آنها به توابع خاصی علاقه مند بودند ، بر اساس اعداد و با استفاده از ساده ترین فرمول های موجود. اعداد مورد بحث اعداد مختلط هستند ، مقادیری که با دو مختصات (درست مانند نقاط یک صفحه) به نامهای واقعی و خیالی نشان داده می شوند. آنها در قرن 16 توسط ریاضیدانان برای کمک به یافتن ریشه های چند جمله ای و حل معادلات اختراع شدند ، اما کاربردهای گسترده و عمیقی در ریاضیات و علوم فیزیکی پیدا کرده اند. ما می توانیم 2 عدد مختلط اضافه کنیم ، آنها را ضرب یا تقسیم کنیم و بسیاری کارهای دیگر را انجام دهیم. فاتو و جولیا خواص برخی از سیستم های پویا را مطالعه کردند که در آن یک عدد مختلط بر اساس یک قاعده ساده که بارها و بارها تکرار می شود ، متفاوت است: در اینجا نیازی به ریاضیات پیچیده نیست (بنابراین ، می توانید اولین تصویر را فراموش کنید …). آنها غنای این سیستم ها را آشکار کردند ، مجموعه هایی را که اکنون مجموعه های جولیا نامیده می شوند ، تعریف کردند و شباهت خود آنها ، بنابراین جنبه فراکتال را مورد مطالعه قرار دادند … اما این کلمه در آن زمان وجود نداشت زیرا فقط بعداً توسط … Benoît Mandelbrot اختراع شد.

پس از کار بنیانگذاران ، این حوزه به فراموشی سپرده شد. هنگامی که رایانه ها وارد شدند ، آنها به کشف بسیاری از پدیده های ریاضی نیاز به محاسبات شدید ، از جمله دامنه باز شده توسط جولیا و فاتو ، کمک کردند. بنابراین ، هنگامی که Benoît Mandelbrot تصمیم گرفت از رایانه های IBM در دهه 1980 برای نشان دادن مجموعه ریاضی خاصی در ارتباط با دینامیک هولومورفیک استفاده کند. ، او یک نقاشی بسیار جذاب و بسیار جذاب (اولین تصویر از قسمت قبل) به دست آورد.

مجموعه Mandelbrot نشان دهنده چه چیزی است؟ اساساً ، یک سیستم پویای زیرین به هر نقطه از تصویر مربوط است. مختصات نقطه به عنوان یک پارامتر قابل تنظیم عمل می کند. نقاط مختلف با مجموعه های مختلف جولیا مطابقت دارد و بسته به رفتار آنها ، می توانیم تصمیم بگیریم که نقطه را به روش خاصی رنگ آمیزی کنیم. مجموعه Mandelbrot مجموعه پارامترهایی است که سیستم دارای ویژگی خاصی برای آنها می باشد.

چگونه مجموعه مندل بروت و جولیا را محاسبه کنیم؟

ما باید کمی بیشتر در مورد نحوه محاسبه این مجموعه ها صحبت کنیم. مجموعه مندل بروت و جولیا با تکرار مکرر یک فرمول ساده ، در مورد ما z^n+c محاسبه می شود. z یک عدد مختلط است که مختصات یک نقطه روی صفحه نمایش را نشان می دهد. یک عدد صحیح است ، بنابراین z^n برابر z ضرب در خود n بار است ، و c یک ثابت است.

برای مجموعه Mandelbrot ، برای همه نقاط منطقه نمایش ، z را به مقدار 0 مقداردهی می کنیم. ثابت c برابر مقدار مختصات نقطه در نظر گرفته شده و فرمول تکرار می شود.

در اینجا این قانون وجود دارد: در صورتی که کاربرد مکرر این فرمول با هم تفاوت نداشته باشد ، نقطه ای از مجموعه است (یعنی منجر به محاسبات نسبت به تعداد زیاد نشود). از نظر ریاضی می توان نشان داد که اگر نتیجه فرمول از 2 بیشتر شود (در مدول از آنجا که ما در مورد اعداد مختلط صحبت می کنیم) تکرار متفاوت می شود. بنابراین برای به دست آوردن سریع رنگهای زیبا ، زمانی تکرار را متوقف می کنیم که مدول نتیجه از 2 بیشتر شود و رنگ با تعداد آن تکرار خاص مطابقت داشته باشد. اگر تعداد تکرارها خیلی زیاد شد (بنابراین اگر نقطه بخشی از مجموعه مندل بروت باشد) پس از یک آستانه مشخص متوقف شده و رنگ سیاه را به این نقطه مرتبط می کنیم.

مجموعه جولیا به روش مشابه محاسبه می شود اما محاسبات در 0 آغاز نمی شود بلکه در مقدار مختصات نقطه در نظر گرفته شده است و ثابت c توسط کاربر انتخاب می شود و برای کل تصویر یکسان می ماند.

تمام است ، امیدوارم واضح باشد … این توضیحات به درک بهتر بقیه دستورالعمل های استفاده کمک می کند.

مرحله 2: به چه چیزی نیاز دارید؟

چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟
چه چیزی نیاز دارید؟

صورت حساب مواد:

  • 1 برد ESP32
  • 1 صفحه نمایش TFT با صفحه لمسی و قلم
  • 1 تخته نان و سیم

خودشه. هزینه کل زیر 10 دلار آمریکا

ESP32 Espressif یک میکروکنترلر دو هسته ای با فرکانس 240 مگاهرتز است که آن را به کاندیدای خوبی برای محاسبات تکراری سریع و پیچیده تبدیل می کند. دارای ظرفیت WiFi و بلوتوث است که من در این پروژه از آنها استفاده نمی کنم.

مجموعه دستورالعمل ها 32 بیت حجم دارند. محاسبه با متغیرهای 16 و 32 بیتی بسیار سریع است که محاسبات دقیق را امکان پذیر می کند ، که برای بزرگنمایی ضروری است. در این برنامه ، برای یک صفحه نمایش 320 در 240 ، یک تصویر تقریباً از 75 ، 000 پیکسل ساخته شده است که هر یک با استفاده از یک فرایند تکراری که ممکن است تا 100 بار اجرا شود ، محاسبه می شود. این ممکن است منجر به 7 ، 500 ، 000 محاسبه واحد شود که هر یک از آنها یک تشدید است ، یعنی چندین ضرب…

بنابراین سرعت محاسبه در اینجا ضروری است ، اما دقت اساسی است. هرچه بیشتر بزرگنمایی کنید ، اندازه قسمت مجموعه برای نمایش کوچکتر می شود. این بدان معناست که هر یک از 320 240 240 پیکسل تصویر نشان دهنده عددی است که بسیار نزدیک به همسایگان خود است. با بزرگنمایی زوم ، این مجاورت افزایش می یابد.

اما تصاویر فراکتال این ویژگی را دارند که با مقیاس بندی بدون تغییر باقی می مانند. بنابراین جزئیات کوچک در همه جا و برای هر عامل مقیاس بندی ظاهر می شود. شکل اصلی مجموعه Mandelbrot ، همانطور که روی صفحه نمایش در تصویر بالا دیده می شود ، در جایی دیگر در نسخه بسیار کوچکتر یافت می شود و اگر به اندازه کافی زوم کنید (در فیلم مشاهده کنید) نمایش داده می شود. اما اگر تفاوت مختصات بین دو پیکسل همسایه بسیار کوچک باشد تا ESP32 بتواند تفاوت رفتار خود را تشخیص دهد ، به دلیل عدم دقت ، اثر فراکتال را نمی توان نشان داد …

برای به دست آوردن دقت خوب ، کد از floats استفاده می کند که توسط ESP32 در 32 بیت کدگذاری شده است. این امکان تا 6 یا 7 سطح بزرگنمایی را فراهم می کند. استفاده از دقت دوگانه (64 بیت) می تواند این عمق بزرگنمایی را با هزینه کندتر محاسبات افزایش دهد ، بنابراین زمان بیشتری بین 2 تصویر وجود دارد.

برای اینکه دقت آن دو برابر شود ، کافی است همه موارد "float" را در کد به "double" تغییر دهید و کد را اجرا کنید. اخیراً نسخه ای برای صفحه نمایش بزرگتر (HVGA 480 3 320 پیکسل) تهیه کردم: نمایش 16 بیت شناور 3 ثانیه طول می کشد تا تصویر نمایش داده شود ، و دوبار بین 10 تا 20 ثانیه (3 تا 6 برابر بیشتر) طول می کشد اما بیش از 15 سطح زوم را پشتیبانی می کند. به تصویر سوم در این فصل سطح بزرگنمایی 14 را در قسمت سمت راست مجموعه Mandelbrot نشان می دهد.

نحوه اتصال صفحه نمایش:

من از نمایشگر SPI استفاده کردم و پارامترها در فایل User_Setup.h (در پوشه کتابخانه TFT_eSPI) تنظیم شده اند:

  • درایور: راننده صحیح صفحه نمایش خود را کامنت نکنید. مال من #تعریف RPI_ILI9486_DRIVER بود
  • شماره های پین: به قسمت ESP32 فایل بروید و انتخاب کنید

    • #تعریف TFT_MISO 19
    • #تعریف TFT_MOSI 23
    • #تعریف TFT_SCLK 18
    • #تعریف TFT_CS 15 // پین کنترل انتخاب چیپ
    • #تعریف TFT_DC 2 // پین کنترل Data Data
    • #تعریف TFT_RST 4 // بازنشانی پین (می تواند به پین RST متصل شود)
    • #تعریف TOUCH_CS 22 // تراشه پین انتخاب شده (T_CS) صفحه لمسی
  • فونت ها: نیازی به تغییر آنها نیست
  • سایر گزینه ها: من موارد زیر را انتخاب کردم

    • #تعریف SPI_FREQUENCY 20000000
    • #تعریف SPI_READ_FREQUENCY 20000000
    • #تعریف SPI_TOUCH_FREQUENCY 2500000

تمام خطوط دیگر پرونده کامنت گذاری می شوند.

قابلیت لمس صفحه نمایش را کالیبره کنید

اگر انتخاب یک قسمت صفحه یا یک دکمه دقیق نیست یا حتی کاملاً اشتباه است ، طرح کالیبراسیون لمسی را از کتابخانه TFT_eSPI اجرا کرده و در کدی که آرایه ارائه می دهد کپی / جایگذاری کنید (مطمئن شوید که از مقدار صحیح جهت جهت نمایش استفاده کنید. ، 1 یا 3 برای منظره).

مرحله 3: برنامه ESP32

برنامه ESP32
برنامه ESP32
برنامه ESP32
برنامه ESP32
برنامه ESP32
برنامه ESP32

کد روی صفحه لمسی 320 240 240 TFT نمایش داده می شود و از کتابخانه TFT_eSPI استفاده می کند. این مجموعه Mandelbrot و Julia را برای چندین مقدار نمره محاسبه می کند و به شما امکان می دهد تا برای مشاهده جنبه فراکتال روی مناطق مورد نظر بزرگنمایی کنید (یعنی وجود ساختارهای یکسان در هر تغییر مقیاس).

کد پیوست نسخه ای برای صفحه نمایش 480 3 320 است. در این نسخه ، می توانید اندازه (عرض و ارتفاع در پیکسل) صفحه نمایش را تغییر دهید. کتابخانه TFT_eSPI اتصالات را در یک فایل راه اندازی (پیوست) تعریف می کند که باید در فهرست کتابخانه قرار گیرد.

کد با نمایش دستورالعمل های عملکرد (تصویر و فیلم را ببینید) شروع می شود

بیشتر صفحه برای نمایش تصاویر اختصاص داده شده است ، دکمه های لمسی در سمت راست صفحه موجود است:

  • R: "بازنشانی" را انجام می دهد ، یعنی. ه تصویر را در حداکثر مقیاس خود نمایش می دهد ،
  • U: "واگرد" به شما امکان می دهد به مرحله قبلی برگردید (اگر ناحیه بزرگنمایی جالب نیست ، می توانید قسمت دیگری از تصویر را برای بزرگنمایی انتخاب کنید) ،
  • M یا J: به شما امکان می دهد از مجموعه مندلبروت به مجموعه جولیا و بالعکس تغییر وضعیت دهید.

برچسب برخی از کلیدها با توجه به زمینه تغییر می کند: آنها عملکردی را نشان می دهند که در صورت فشار دادن اجرا می شود. بنابراین اگر در حال حاضر مجموعه Mandelbrot را نمایش می دهید ، کلید M/J J را نمایش می دهد زیرا اگر آن را فشار دهید ، مجموعه جولیا (و بالعکس) را نشان می دهد.

همین امر در مورد انتخاب پالت رنگ نیز صدق می کند. ما با پالت سبز شروع می کنیم. کلید پالت بعدی (آبی) را پیشنهاد می کند. پالت ها عبارتند از: قرمز ، سبز ، آبی ، خاکستری ، پالت 1 ، پالت 2 و بازگشت به قرمز. دو مورد آخر آزمایش پالت چند رنگی هستند که کنتراست بیشتری را ارائه می دهند و به شما اجازه می دهد برخی جزئیات را بهتر ببینید.

کلید دارای یک عدد به شما اجازه می دهد تا نماد n را در یک حلقه از 2 تا 7 (و برگشت به 2) انتخاب کنید. با همین روحیه ، اگر در حال حاضر در 2 هستید ، 3 را نشان می دهد…

در نهایت ، هنگام نمایش مجموعه جولیا ، لازم است مقدار ثابت c را انتخاب کنید: کلید C به شما این امکان را می دهد ، به لطف یک انتخاب کننده (تصویر دوم را ببینید). مقدار این ثابت با مجموعه نمایش داده می شود.

با کلیک بر روی تصویر ، روی نقطه انتخاب شده زوم می شود. یک دایره کوچک در نقطه لمس شده نمایش داده می شود و یک مستطیل منطقه بزرگنمایی شده مجموعه را برجسته می کند.

تصویر سوم نشان می دهد که زمان محاسبه بین 0.8 تا 1.2 ثانیه برای 320 240 240 پیکسل باقی می ماند ، که باعث بزرگنمایی و نمایش راحت می شود. برای 480 3 320 پیکسل به 3 ثانیه می رسد ، اما جزئیات بیشتری را ارائه می دهد.

مرحله 4: توضیح برخی از تصاویر…

توضیح برخی تصاویر…
توضیح برخی تصاویر…
توضیح برخی تصاویر…
توضیح برخی تصاویر…
توضیح برخی تصاویر…
توضیح برخی تصاویر…

بزرگترین تصویر مجموعه معروف مندلبروت است. اعداد مختلط به کار رفته در این تصویر از -2.1 تا +0.7 در آبسیسه و -1.2 تا 1.2 در مرتب متغیر است. اگر روی قسمت چپ این تصویر اول بزرگنمایی کنید ، احتمالاً دومی را دریافت می کنید که نسخه کوچکتری از مجموعه اصلی موجود در نوک سمت چپ بیشتر مجموعه را نمایش می دهد. برای هر دوی این تصاویر ، توان ('n') برابر 2 است: این مقدار معمولاً برای نمایش مجموعه های مندلبروت استفاده می شود.

اگر این مقدار را به 3 تغییر دهید (فقط روی کلیدی که می گوید 3 کلیک کنید) ، تصویر سوم را دریافت می کنید. یک تفاوت آشکار عامل تقارن است: n = 2 تقارن محوری می دهد (یعنی مجموعه در برابر محور افقی میانی متقارن است) ، اما با n = 3 تصویر با چرخش 120 درجه (یک سوم 360 درجه ، چرخش) ثابت می ماند. ضریب تقارن 3) و خواص فراکتال خود را حفظ می کند ، که می توانید با زوم بر روی لبه های شکل سیاه آن را تأیید کنید.

تصویر چهارم مجموعه ای از جولیا است که پس از انتخاب مقدار ضریب برابر 0.414 در آبسیسه و 0.09 در مرتب به دست آمده است. پالت قرمز انتخاب شده است ، همانطور که توسط کلید سبز در سمت راست دیده می شود (سبز ، رنگ بعدی که باید انتخاب شود). تصویر پنجم همان نوع مجموعه جولیا را نشان می دهد که بخش خیالی بالاتری از ثابت است (0.358).

امیدوارم از بازی با این برنامه لذت ببرید و بتوانید تصاویر فراکتال زیبایی را نمایش دهید. از کاوش در مجموعه های مندل بروت و جولیا دریغ نکنید و با پالت ها بازی کنید: آنها به شناسایی برخی از جزئیات کمک می کنند که ممکن است با نمونه های ساده تک رنگ قابل مشاهده نباشند. حتی ممکن است مناظر فراکتالی را کشف کنید که هیچکس پیش از شما ندیده است…

_

آیا می خواهید تصاویر فراکتال بیشتری کشف کنید؟ فقط اینجا را کلیک کنید یا هنر فراکتال یا حتی ascii فراکتال را کشف کنید. شاید این دستورالعمل شما را وادار به ایجاد چنین تصاویر فوق العاده ای کند…

ساخته شده با مسابقه ریاضی
ساخته شده با مسابقه ریاضی
ساخته شده با مسابقه ریاضی
ساخته شده با مسابقه ریاضی

جایزه دوم در مسابقه ساخته شده با ریاضی

توصیه شده: