رسم تابع در متمتیکا — آموزش گام به گام و به زبان ساده

۹۹۶ بازدید
آخرین به‌روزرسانی: ۲۰ تیر ۱۴۰۲
زمان مطالعه: ۹ دقیقه
رسم تابع در متمتیکا — آموزش گام به گام و به زبان ساده

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

به منظور آشنایی با نرم‌افزار متمتیکا و همچنین بعضی از دستورات مربوط به ترسیم نمودار، نوشتارهای متمتیکا (Mathematica) چیست؟ — راهنمای شروع به کار و رسم نمودار در متمتیکا — راهنمای سریع و کاربردی را مطالعه کنید. همچنین خواندن مطالب رسم تابع — با مثال های حل شده و رسم نمودار برای داده‌ها — معرفی و کاربردها نیز خالی از لطف نیست.

رسم تابع در متمتیکا

«نرم‌افزار متمتیکا» (Mathematica) با بهره‌گیری از «زبان برنامه‌نویسی ولفرام» (Wolfram Language)، امکان اجرای تعداد بسیار زیادی از عملیات ریاضی و آماری را دارد.

انعطاف این زبان و همچنین امکان نوشتن فرمول‌های ریاضی به صورت نمادین، یکی از مهم‌ترین وجه‌های این نرم‌افزار محسوب می‌شود.

wolframalpha
تصویر ۱: دستور مشتق به صورت نمادین

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

Relation but not function
تصویر ۲: رابطه با دو عضو مولفه اول یکسان

از آنجایی که توابع براساس ضرب دکارتی ساخته می‌شوند، می‌توان آن‌ها را در «مختصات دکارتی» (Cartesian Coordinate system) نیز نشان داد. البته مختصات دیگری نیز برای نشان دادن توابع ریاضیات به کار می‌روند. برای مثال می‌توان به «مختصات کروی» (Polar coordinate system) یا «مختصات استوانه‌ای» (Cylindrical coordinate System) اشاره کرد.

خوشبختانه همه این مختصات در نرم‌افزار متمتیکا قابل استفاده هستند. در ادامه به نحوه رسم نمودار توابع در فضای دو بُعدی در مختصات دکارتی خواهیم پرداخت. در نوشتاری دیگر به نحوه ترسیم نمودارهای سه بُعدی و مختصات کروی یا استوانه‌ای اشاره خواهیم کرد.

رسم توابع در متمتیکا

در ابتدا با دستور ساده Plot، ترسیم تابع را آغاز می‌کنیم. شکل دستوری این تابع به صورت زیر است.

$$ \large Plot[f, \{x , x_{min}, x_{max}\} ]$$

در رابطه بالا، نماد $$f$$ ضابطه تابع را مشخص کرده و $$x$$، نام متغیر درون تابع است. همچنین کران پایین و بالا برای محدوه مقادیر متغیر نیز در بخش $$x_{min}$$ و $$x_{max}$$ قابل تعیین است.

برای مثال، رسم تابع مثلثاتی $$Sin$$ (سینوس) به شکل زیر صورت می‌گیرد.

$$ \large \text{Plot[Sin[x],\{x,0,2 Pi\}] }$$

مشخص است که رسم تابع سینوس در بازه صفر تا $$2\pi$$ انجام خواهد شد. حاصل اجرای این دستور به صورت زیر خواهد بود.

تابع سینوس
تصویر ۳: نمایش تابع سینوس در متمتیکا

توجه داشته باشید که اگر تابع مورد نظرتان دارای نقاط منفرد (مقدار بی‌نهایت برای تابع) باشد، متمتیکا در رسم سعی می‌کند، مقیاس محور عمودی را به شکلی تعیین کند که این وضعیت مشخص شود. به تصویر زیر که نمایش تابع تانژانت در بازه ۳- تا ۳ است، توجه کنید.

$$ \large \text{Plot[Tan[x],\{x, -3,3 \}] }$$

نمودار حاصل از اجرای دستور بالا به مانند شکل ۴ خواهد بود.

tan function plot
تصویر ۴: نمایش تابع تانژانت در متمتیکا

نکته: نقاط منفرد یا نقاط تکین (نقاطی که تابع در آن‌ها بی‌نهایت بوده یا تعریف نشده است) با پارامتر Exclusion در نمودارهای ترسیم شده با دستور Plot قابل حذف شدن هستند. به دستور زیر و تصویر ۵ توجه کنید.

$$ \large \text{Plot[Tan[x], {x, -3,3 }, Exclusion ->  {-Pi/2 , Pi/2} ] }$$

Tan plot exclusion
تصویر ۵: رسم نمودار تانژانت بدون نقاط منفرد

رسم همزمان چند تابع در دستور Plot

همانطور که دیدید، از دستور Plot برای رسم یک تابع کمک گرفتمی. از طرفی می‌توان از تابع Plot برای ترسیم چندین تابع هم‌زمان استفاده کرد. در این حالت همه توابع در یک مختصات، نمایش داده می‌شوند. در این حالت شیوه نوشتن دستور به صورت زیر خواهد بود.

$$ \large \text{Plot}[\{f_1, f_2 , \ldots\}\text{ ,}\{x , x_{min}, x_{max}\} ]$$

برای مثال کد دستوری زیر را در نظر بگیرید.

$$ \large \text{Plot[{Sin[x], Sin[2x], Sin[3x] }, {x, 0, 2 Pi }] }$$

در تصویر 6، نتیجه اجرای دستور بالا را مشاهده می‌کنید. واضح است که هر سه تابع Sin(x), Sin(2x) و Sin(3x) با هم در صفحه مختصات نمایش داده شده‌اند. البته انتخاب رنگ‌ها برای هر یک از توابع، به صورت خودکار و توسط متمتیکا صورت گرفته است.

رسم چند تابع
تصویر ۶: رسم توابع سینوس برای $$x, 2x , 3x$$

گزینه‌های گرافیک یا تصویری برای رسم تابع در متمتیکا

وقتی «زبان ولفرام» (Wolfram Language) یک نمودار برای شما ترسیم می‌کند، باید انتخاب‌های زیادی انجام دهد. باید تصمیم بگیرد که مقیاس‌ها روی محورها چگونه باشد، در کجا باید از تابع نمونه‌برداری شود، چگونه باید محورها ترسیم شود و غیره.

بیشتر اوقات، زبان ولفرام گزینه‌های بسیار خوبی را انتخاب خواهد کرد. با این حال، اگر می‌خواهید بهترین نتایج ممکن را برای اهداف خاص خود در رسم نمودارها بدست آورید، بهتر است زبان Wolfram را در انتخاب برخی از انتخاب ها کمک کنید.

مکانیسم کلی برای تعیین «گزینه‌ها» (Options) در توابع زبان Wolfram وجود دارد. هر گزینه نام مشخصی دارد. به عنوان آخرین آرگومان‌های تابعی مانند Plot، می‌توانید دنباله‌ای از قوانین را به فرم name-> value برای تعیین مقادیر برای گزینه‌های مختلف در نظر بگیرید. البته برای گزینه‌ای که مقدار پارامتر تعیین نشده‌ای داشته باشد، مقدار «پیش فرض» (Default) در نظر گرفته می‌شود.

به شکل تعیین پارامتر یا گزینه در دستور Plot که در ادامه دیده می‌شود، توجه کنید.

$$ \large \text{Plot}[f , \{x, x_{min} , x_{max} \} ,  options \; -> \; value ] $$

مشخص است که دستوری مانند Plot گزینه‌های زیادی دارد که لازم است توسط کاربر تنظیم شود. معمولاً باید حداکثر از دو یا سه مورد از گزینه‌ها استفاده کنید. اگر می‌خواهید یک نمودار خاص را به شکل بهینه نمایش دهید، احتمالاً باید دنباله‌ای از تنظیمات مختلف را برای گزینه‌های متفاوت امتحان کنید.

هر بار که یک نمودار تولید می‌کنید، می‌توانید گزینه‌هایی را نیز برای آن مشخص نمایید. در جدول زیر بعضی از گزینه‌های معمول برای دستور Plot را معرفی کرده‌ایم.

جدول ۱: گزینه‌های دستورات Plot برای رسم تابع در متمتیکا

نام گزینهعملکردمقدار پیش‌فرضتوضیحات
AspectRatioنسبت طول به ارتفاع محورها1/GoldenRatioنسبت برابر در حالت Automatic
Axesنمایش محورهاTrueنمایش محور افقی و عمودی در نمودار
AxesLabelنمایش عنوان محورهاNone{xlabel, ylabel} برای نمایش هر دو برچسب محورها
AxesOriginمحل برخورد محورهاAutomaticمختصات نقطه برخورد محورها
Frameنمایش کادر دور نمودارFalse نمایش کادری در حاشیه‌های نمودار
FrameLabelبرچسب برای کادرNoneنمایش برچسب برای کادر نمودار
GridLinesخطوط شبکهNoneنمایش خطوط درون محورها
PlotLabelبرچسب نمودارNoneتعیین عنوان نمودار
PlotRangeدامنه نمودارAutomaticتعیین قسمتی از محورها برای نمایش
PlotPointsتعداد نقاطAutomaticتعداد نقاط برای رسم نمودار
PlotStyleسبک نمودارAutomaticتعیین رنگ، نوع خطوط و ...

در ادامه به بعضی از این گزینه‌ها هنگام رسم تابع در متمتیکا اشاره خواهیم کرد.

برای مثال در نمودار زیر، با استفاده از گزینه Frame دور نمودار، یک کادر ظاهر می‌شود. به تصویر ۷ توجه کنید.

$$ \large \text{Plot[Sin[x^2], {x, 0, 3}, Frame -> True ] } $$

Framed plot
تصویر 7: نمودار به همراه کادر

در نموداری که در تصویر ۸ مشاهده می‌کنید، با تغییر مقیاس محور افقی نسبت به محور عمودی، نمودار نسبت به تصویر ۷، مقداری کشیده‌تر خواهد شد. واضح است که برای این کار باید از پارامتر AspectRatio استفاده کنیم. در ضمن توجه داشته باشید که به علت نسبت متفاوت بین عرض و طول صفحه نمایش، تقسیم‌بندی روی محور افقی کوچکتر از محور عمودی است در حالیکه نسبت انتخابی برای نمودار برابر با ۱ است.

$$ \large \text{Plot[Sin[x^2], {x, 0, 3}, AspectRatio -> 1] } $$

AspectRatio
تصویر ۸: تغییر مقیاس با AspectRatio

تنظیم گزینه AspectRatio کل شکل نمودار را ممکن است تغییر دهد. AspectRatio نسبت ارتفاع به عرض را مشخص می‌کند. همانطور که گفته شد، مقدار پیش فرض آن معکوس «نسبت طلایی» (Golden Ratio) است که ظاهراً بهترین حالت برای نمایش یک مستطیل محسوب می‌شود.

هنگامی که در زبان ولفرام، یک نمودار ترسیم می‌کنید، دستور مورد نظر سعی می‌کند مقیاس‌ها و مقادیر را به شکلی تنظیم کند که فقط قسمت‌های مهم از نمودار نمایش داده شوند. ولی اگر تابعی تغییرات سریع و زیادی داشته یا دارای ویژگی‌های خاصی باشد، قسمتهایی که خیلی بزرگ هستند. باعث می‌شوند که تغییرات کوچک از دیدمان پنهان بمانند. تعیین گزینه PlotRange، می‌تواند دقیقاً محدوده‌ها و مختصاتی که برایتان اهمیت بیشتری دارد را در نمودار نمایان کند. مقادیر مربوط به گزینه PlotRange طبق فهرست زیر تعیین می‌شوند.

  • Automatic: درصد زیادی از نقاط مربوط به تابع نمایان می‌شوند. نقاط با اهمیت باید در نمودار ظاهر شوند. این گزینه به عنوان مقدار پیش‌فرض برای این گزینه تعیین شده است.
  • All: همه نقاط تابع در نمودار دیده می‌شوند. ممکن است رسم نمودار به این شکل، نمودار زیبایی را تولید نکند.
  • $$\{y_{min}, u_{max}\}$$: تعیین محدوده پایین و بالا برای مقادیر محور عمودی.
  • $$\{xrange, yrange\}$$:تعیین حدود برای متغیر یا محور افقی و عمودی این کران‌ها بوسیله پرانتز مشخص می‌شوند.

در دستور زیر با تعیین ناحیه رسم، فقط بخش‌های مثبت نمودار تابع سینوس مربع ایکس رسم شده است. واضح است که مقادیر مربوط به محور افقی در بازه ۰ تا ۳ قرار دارند.

$$ \large \text{Plot[Sin[x^2], {x, 0, 3}, PlotRange -> {0, 1.2}] }$$

در زبان ولفرام همیشه سعی می‌شود، توابع به صورت منحنی‌های صاف ترسیم شوند. در نتیجه، در مکان‌هایی که تابع تغییرات شدید و زیادی دارد، زبان ولفرام از نقاط بیشتری استفاده خواهد کرد. به طور کلی، در این زبان تلاش می‌شود که نمونه برداری از تابع با شکل تابع بیشترین مطابقت را داشته باشد.

ولی به هر حال محدودیت‌هایی نیز باید وجود داشته باشد. باید تعداد نقاط نمونه‌برداری شده متناهی باشند در غیر اینصورت، ممکن است هرگز شکل نمودار مشخص نشود. به نموداری تابع $$1/x$$ توجه کنید. در نقطه‌هایی که به صفر نزدیک هستند، مقدار تابع بسیار بزرگ شده و در عمل نمی‌توان آن‌ها را نمایش داد. به این ترتیب ولفرام، بخشی که مهم‌تر از بقیه نقاط هستند را در نمودار نمایش خواهد داد. به تصویر ۹ توجه کنید.

plot function in infinity
تصویر ۹: رسم نمودار تابع $$\dfrac{1}{x}$$

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

$$ \large \text{ Plot[Sin[1/x], {x, -1, 1}] }$$

گاهی لازم است که هنگام رسم تابع در متمتیکا فقط تعداد محدودی از نقاط نمونه‌برداری شوند، بنابراین می‌توان تعداد نمونه‌ها یا نقاط را در نزدیکی محل‌های خاصی از تابع افزایش یا کاهش داد. با افزایش مقدار برای گزینه PlotPoints، می‌توانید تابع خود را در محل مشخص شده، دقیق‌تر رسم کنید. مطمئناً، هرچه مقدار PlotPoints را بیشتر تنظیم کنید، برای ترسیم هر تابع، مدت زمان طولانی‌تری صرف خواهید کرد.

دستور زیر به رسم تابع سینک (Sinc) در بازه ۰ تا ۱۰ با استفاده از ۵۰ نقطه اختصاص دارد. نمودار رسم شده را در تصویر ۱۰ مشاهده می‌کنید.

$$ \large \text{ Plot[Sinc[x], {x, 0, 10},  PlotPoints -> 50]}$$

PlotPoints
تصویر ۱۰: گزینه PlotPoints برای رسم تابع در متمتیکا

نکته: تابع سینک (غیراستاندارد شده) به صورت زیر تعریف می‌شود. در حقیقت این تابع، نسبت سینوس یک زاویه به خود زاویه است.

$$ \large {\displaystyle \mathrm {sinc} (x)={\frac {\sin(x)}{x}}\,\!}$$

امکان دیگر برای تنظیم نحوه رسم تابع در متمتیکا استفاده از گزینه PlotStyle است. مقادیر این گزینه می‌تواند شامل نوع خط (Line Style)، رنگ خطوط (Color) و یا ترکیبی از آن‌ها باشد. به تصویر ۱۱ توجه کنید. نمودار سینوس و کسینوس $$x^2$$ بوسیله رنگ‌های متفاوت در دستور Plot دیده می‌شوند. کد دستوری برای انجام این کار به صورت زیر است.

$$ \large \text{ Plot[{Sin[x^2], Cos[x^2]}, {x, 0, 3}, PlotStyle -> {Red, Blue}] } $$

PlotStyle option
تصویر ۱۱: استفاده از PlotStyle برای رسم تابع در متمتیکا

حتی می‌توان از دو مشخصه به صورت ترکیبی در گزینه PlotStyle استفاده کرد. دستور زیر برای تمایز بین توابع رسم شده در نمودار، هم از رنگ و هم از نوع خط (کلفت-Thick) استفاده کرده است. کد مربوطه به صورت زیر نوشته می‌شود.

$$ \large \text {Plot[{Sin[x^2], Cos[x^2]}, {x, 0, 3}, PlotStyle -> {Red, {Blue, Thick}}] } $$

PlotStyle color and line style
تصویر 12: تعیین رنگ و اندازه خط رسم تابع در متمتیکا

همچنین نوع خط ترسیم شده برای تابع در نمودار نیز در این گزینه نهفته است. دستور زیر را در نظر بگیرید. مقدار PlotStyle با Dashed (خط چین) تعیین شده است. بنابراین برای ترسیم خطوط نمودار از خط چین استفاده خواهد شد. نتیجه اجرای دستور زیر در تصویر ۱۳ قابل مشاهده است.

$$ \large \text{Plot[Sin[x^2], {x, 0, 3}, PlotStyle -> Dashed] } $$

PlotStyle with Dashed
تصویر 13: نمودار سینوس مربع $$x$$ با استفاده از خط چین

خلاصه و جمع‌بندی

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

از طرفی دستوراتی نیز برای توابع چند ضابطه‌ای و همچنین ترسیم چندین تابع در یک مختصات وجود دارد که به امر تحلیل چند متغیره کمک شایانی می‌کند. این خصوصیات متمتیکا را به نرم‌افزاری کاملا متمایز برای محاسبات ریاضی برای رشته‌های مختلف علوم تبدیل کرده است.

بر اساس رای ۴ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Wolframمجله فرادرس
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *