به محفل ریاضی ایرانیان خوش آمدید! لطفا برای استفاده از تمامی امکانات عضو شوید
سایت پرسش و پاسخ ریاضی
+1 امتیاز
338 بازدید
در دانشگاه توسط محسن (9 امتیاز)
برچسب گذاری دوباره توسط AmirHosein

چگونه می توان دستورplotبه صورت مقیاس توانی در متلب نوشت

توسط fardina (17,362 امتیاز)
+2
سوالتون واضح نیست.
میشه لطفا دقیق بگید دنبال چی هستید و مثال بزنید؟

2 پاسخ

+2 امتیاز
توسط

می تونید از دستور semilogy استفاده کنید.

0 امتیاز
توسط AmirHosein (19,310 امتیاز)

فرض را بر این می‌گذاریم که استفاده از دستور plot در نرم‌افزار Matlab را آشنا هستید. اگر می‌خواهید محور $y$های نمودارِ دوبعدی‌تان با مقیاس لگاریتمی باشد به جای plot واژهٔ semilogy را تایپ کنید. اگر می‌خواهید محور $x$-ها با مقیاس لگاریتمی باشد ااز semilogx استفاده کنید، و در حالتی که قرار است هر دو محور لگاریتمی باشند از loglog استفاده کنید. سایر تنظیمات نمودار و همینطور نحوهٔ دادن داده‌ها به دستور هیچ تفاوتی با حالتِ plot ندارد. برای نمونه در زیر شکل چهارتاییِ نمودارهای مربوط به تعداد فوت‌شدگانِ بر اثرِ بیماریِ کرونا (COVID19) از تاریخ ۳۰ بهمن ۱۳۹۸ تا ۲۵ فروردین ۱۳۹۹ در سه کشور ایران، تایلند و مجارستان آورده‌شده‌است که به ترتیب از راست به چپ و از بالا به پائین از plot و semilogx و semilogy و loglog برای رسم‌شان در Matlab استفاده شده‌است و هیچ تفاوت دیگری در برنامه‌ای که برای رسم‌شان نوشته‌ایم نیست.

توجه کنید که دستورهای ترسیم لگاریتمیِ Matlab در رفتار با دادهٔ $0$ خوب طراحی نشده‌اند. برای همین با اینکه در روز شمارهٔ ۱ ایران ۲ فوت‌شده داشته‌است، چون در روز شمارهٔ ۲ صفر فوت‌شده داشته‌است و Matlab خیلی راحت در این ترسیم لگاریتم صفر را تعریف‌نشده گرفته‌است، نتیجه این شده‌است که چون چیزی پیش و پس از نقطهٔ مربوط به روز یکُم برای وصل کردن نداشته‌است، خودِ این نقطه هم از ترسیم اُفتاده‌است! برای رفع کردن این گونه مشکل‌ها باید خودتان تغییراتی ایجاد کنید تا برنامه کار بهتری انجام دهد. یک ایدهٔ ساده برای رفع مشکل نمودارهای این مثال این است که بردارِ داده‌های محور $y$های نقطه‌های ترسیم‌مان برای زمانی که محور $y$ها قرار است با مقیاس لگاریتمی باشد را با بردار جدیدی عوض کنیم. این بردار دقیقا کپی بردار داده‌های اصلی است که عددهای صفر با عدد مثبت کوچکی خارج از بازهٔ نمایش محورِ $y$های نمودارمان جایگزین شده‌اند. برای نمونه بازهٔ نمایش محور $y$ها را بازهٔ $[0.1,200]$ می‌گیریم. عملا عددهایمان صحیح هستند پس این بازه یعنی از عدد ۱ تا ۲۰۰. اکنون به جای عد صفر از عدد $0.01$ استفاده کنید. نتیجه به شکل زیر خواهد شد. زمانی که نمودار قرار است به صفر برود، از نقطهٔ پیشین با خطی به محور $x$-های شکل وصل می‌شود (و به بیرون شکل ادامه می‌یابد که دیگر در نمایش نیست) و سپس زمانی‌که قرار است دوباره دادهٔ ناصفر داشته باشیم با خطی برخواهد گشت. در این مورد هیچ نقطه‌ای با دلیل حالت شکل قبلی در نمایش از قلم نمی‌افتد و بعلاوه بیرون رفتن از نمایش و نبود نقطه یا چیزی بالای قسمتی از محور $x$-ها با مقهوم نبود هیچ مورد (هیچ فوت‌شده) هماهنگی هم دارد. پس فقط نقطه و خط زمانی در نمایش دیده خواهد شد که موردی هم وجود داشته‌باشد و از نظر بصری با وجود داشتن مورد ولی از تعداد خیلی کوچک اشتباه گرفته نمی‌شود. به هر حال این فقط یکی از راه‌حل‌های ممکن است. شما می‌توانید راه حل دیگری را پیش بگیرید.


حمایت مالی

کانال تلگرام محفل ریاضی
امروز : تاریخ شمسی اینجا نمایش داده می‌شود
...