رسم پلات سه بعدی در متلبسهشنبه 25, آگوست 2020
رسم پلات سه بعدی در متلب
در ادامه آموزش های سایت همیارپروژه برنامه نویسی متلب ارائه خواهد شد .آموزشها از مقدماتی تا پیشرفته ادامه دارد و ما به شما کدنویسی در نرم افزار متلب را یاد خواهیم داد. با ما همراه باشید.
تابع surf در متلب
نحوهی استفاده از تابع surf را در پلات سه بعدی با رسم سطح در متلب نمایش می دهیم.
معادله ی زیر را در متلب در نظر بگیرید:
در بازه ی
برنامه ی مورد نیاز جهت رسم این سطح به صورت زیر می باشد:
تابع meshgrid دو ماتریس (۱۷*۱۵) ایجاد خواهد نمود.بنابراین z می تواند در تمامی تر کیب های x1 و x2 در متلب محاسبه شود. این محاسبات با استفاده از تمامی ترکیب های x1 و x2 توسط عملگرهای نقطه ای نشان داده شده , در عبارت زیر صورت می پذیرد.
با اجرا نمودن این برنامه شکل زیر را مشاهده می نمایید.
جهت دیدن تصویر چند کانتور از این سطح که روی صفحه z=0 تصویر شده است. به جای استفاده از تابع surf , از تابع surfc استفاده خواهیم کرد. نتیجه در شکل زیر نشان داده می شود. آرگومانهای تابع Surfc همانند آرگومانهای تابع Surf خواهند بود.
جهت ترسیم خطوطی از چهار گوشه ی سطح به صفحه ی Z=0 , ابتدا یاد آوری می کنیم که مختصات این نقاط به صورت:
می باشد. برنامه به صورت زیر خواهد بود.
نتیجه ی اجرای این برنامه شکل زیر می باشد.
همانگونه که قبلا ذکر شد, رنگ قطعات مختلف ایجاد شدهاست. رنگ توسط دستور surf به صورت خودکار با مقادیر z آنها ایجاد خواهد شد.
به طور مشابه , رنگ خطوط ایجاد شده. توسط دستور mesh نیز وابسته به مقادیر z خواهد بود. رنگ قطعات و یا خطوط را می توان توسط استفاده از تابع
به یک رنگ مشخص تغییر داد. که در آن C , برداری سه عنصره که مقادیرش بین ۰ و ۱ تغییر می کند, می باشد. عنصر اول متناظر با شدت رنگ قرمزاست.
عنصر دوم متناظر با شدت رنگ سبز است. عنصر سوم متناظر با شدت رنگ آبی خواهد بود. به فایل کمکی تابع Colormap مراجعه نمایید و برخی از اشکال متداول ترکیب این رنگها مطابق زیر می باشد.
جهت نشان دادن تمایز بین توابع surf و mesh و روشن کردن چگونگی استفاده از تابع colormap , به جای استفاده از تابع surf در برنامه ی قبل از دستورات :
استفاده خواهیم کرد. در این صورت شکل زیر را خواهیم داشت که در آن تمامی خطوط و سطوح رنگ ابی می باشد
تابعGrid off:
خطوط شبکه را در این شکلها حذف خواهد کرد. جهت نمایش مجدد این خطوط می توان از تابع
Grid on
استفاده نمود. به علاوه می توانیم با استفاده از تابع
Box on
یک مستطیل دور شکل ایجاد کنیم. بنابراین شکل بالا را توسط حذف خطوط شبکه .قرار دادن مستطیلی دور آن, اصلاح خواهیم نمود. برنامه مطابق زیر خواهد بود:
اجرای این برنامه در متلب شکل زیر را نتیجه می دهد.
از سوی دیگر اگر خطوط شبکه را با استفاده از تابع grid off و مستطیل دور شکل و محورها را به ترتیب توسط دستورات:
Box off
و
Axis off
در متلب حذف خواهیم کرد شکل زیر به دست می آید.
با استفاده از کد نویسی دیگری در متلب به صورت زیر خواهیم داشت:
با استفاده از کد فوق تصویر زیر را خواهیم داشت:
در برنامه ی فوق اگر کد meshz را با دستور waterfall در متلب اجا به جا نماییم شکل زیر به دست می آید.
آرگومان های تابع waterfall مشابه آرگومانهای تابع meshz خواهند بود. همچنین سطوح را می توان با استفاده از تابع Contour استفاده نمود.
برای ترسیم کانتورهای دو بعدی و تابع
Contour3
برای ترسیم کانتورهای سه بعدی و تابع
Contourf
برای ترسیم های کانتور های هاشور خورده, ایجاد نمود. توابع contour و contour3 را می توان توسط دستورClabel نشانه گذاری نمود.
تابع contourf توسط دستور colorbar نشانه گذاری می شود. ستونی متشکل از رنگها و مقادیر عددی متناظرشان. را در نزدیکی شکل قرار می دهد. اکنون کاربرد این توابع را نشان خواهیم داد.
جهت بدست آوردن کانتورهای دو بعدی سطوح نشان داده شده برنامه ی زیر را خواهیم داشت:
اجرای این برنامه منجر به شکل زیر می شود.
استفاده از عبارت
در هنگام استفاده از تابع clabel ضروری می باشد. اگر از تابع clabel در متلب استفاده نشود- یعنی خطوط کانتور بدون مقادیر عددیشان نمایش داده شوند- در این صورت تنها عبارت
استفاده می شود. اگر تابع contour را با تابع contour3 جایگزین کنیم, شکل زیر را خواهیم داشت. آرگومانهای تابع contour و contour3 یکسان می باشند.
در اینجا آشنایی با محیط متلب بخش هشتاد و دوم به پایان رسیده است و در آموزش های بعدی به مباحث دیگر آموزش متلب می پردازیم. همچنین از شما مخاطبین عزیز سایت همیارپروژه دعوت می کنم که برای انجام پروژه متلب خود آموزش های ما را دنبال نمایید.
نویسنده: زهرا رستمی
دیدگاهتان را بنویسید