یافتن مختصات نقاط مشترک بین دو منحنی و نمایش آن نقاط در شکل شامل دو منحنی، در متلب (MATLAB)
در این کلید آموزشی، قصد داریم که یک m-file با نام intersections.m از بخش File Exchange وب سایت mathworks.com (وب سایت شرکت سازنده MATLAB) را معرفی کنیم که به ما کمک می کند مختصات نقاط مشترک بین دو منحنی را پیدا کنیم و آن نقاط را در یک شکل شامل دو منحنی، نمایش بدهیم.
فایل intersections.m ، در واقع یک تابع ( کلید شماره 15 ) با نام intersections را تعریف کرده است که بر اساس آن، می توانیم مختصات نقاط مشترک دو منحنی را پیدا کرده و سپس کدهایی را برای رسم آنها اجرا نماییم.
برای این منظور، ابتدا فایل زیر را دانلود نمایید که یک فایل فشرده (zip) شامل فایل intersections.m می باشد :
فایل را از حالت فشرده در آورده و سپس فایل intersections.m درون آن را در یکی از مسیرهای تعریف شده برای متلب ( کلید شماره 177 ) قرار دهید (یا مسیر حاوی آن را به مسیرهای تعریف شده برای متلب اضافه نمایید). بنابراین نرم افزار متلب (MATLAB)، تابع intersections را شناسایی خواهد کرد.
اکنون در یک m-file جدید، کد زیر را می نویسیم :
سه خط اول کدها برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
در کد بالا، مقادیر محور افقی بر اساس مقادیر متغیر t می باشد که به صورت یک بازه از مقادیر، تعریف شده است :
سپس دو منحنی بر اساس بازه تعریف t ، ساخته ایم (y و y2) :
دقت شود که منحنی y2 بر اساس اعداد تصادفی ساخته می شود و بنابراین اجراهای متعدد این کدها، منحنی های متفاوتی برای y2 می سازد و بنابراین نقاط مشترکی که در هر بار اجرای کدها پیدا می شود، متفاوت می باشند (هم تعداد و هم مختصات نقاط).
خط زیر از کدها، مختصات x و y نقاط مشترک بین دو منحنی را در دو متغیر xout و yout به ما می دهد :
بقیه کدها برای رسم دو منحنی و همچنین رسم نقاط مشترک بین آنها می باشد :
با اجرای کد متلب (MATLAB) بالا، عکس زیر نمایش داده می شود :
برای دیدن بهتر نقاط مشترک دو منحنی، اندازه عکس را با استفاده از موس و کشیدن لبه های پنجره نمایش دهنده عکس، کمی بزرگتر می کنیم :
بخشی از شکل را بزرگ می کنیم :
با توجه به اینکه در مثال بالا، یکی از منحنی ها بر اساس اعداد تصادفی ایجاد می شود، بنابراین اجراهای مختلف کد بالا، نتایج متفاوتی خواهد داشت (تعداد نقاط مشترک مختلف).
مختصات x و y نقاط اشتراک، در دو متغیر xout و yout نمایش داده می شوند. برای مشاهده مقدار این دو متغیر، نام آنها را در انتهای کدها ذکر نمایید :
نتیجه :
سلام ممنون از کمک و راهنمایی لطف اگر برنامه جدیدتری سراغ دارید معرفی کنید ممنون میشم
سرعت انجام سریعتر باشد
ممنون
سلام این کد هارو برای پایتون نمی گذارید؟؟؟
سلام
متلب اصلا دستور intersections رو نمیشناسه که.
مشکل چیه میگه intersections تعریف نشده است.
سلام.
باید فایل فشرده (zip) را از لینک ذکر شده، دانلود نموده و از حالت فشرده خارج نمایید و سپس فایل intersections.m را در آن پیدا کرده و آن را در یکی از مسیرهای (Path) تعریف شده برای متلب (MATLAB) قرار دهید (یا مسیر حاوی آن را به مسیرهای تعریف شده برای متلب اضافه نمایید).
در مورد مسیرها (Path) در متلب (MATLAB)، کلید آموزشی زیر را بخوانید :
سلام وقتتون بخیر. فایل زیپ ک میگین لینکش کجاس. احیانا دستور خاصه دیگه ای وجود نداره در متلب که دقیقا همین دستور intersections رو اجرا کنه؟
سلام.
در خود متن آموزشی همین صفحه از سایت کلیدستان، لینک فایل فشرده (zip) ذکر شده است.
سلام.ممنون بابت سايت خيلي خوبتون.
مي خواستم بدونم ناحيه مشترک بين دونمودار رو چطوري مي تونيم پيدا کنيم.
در واقع ناحيه محصور بين دوخط
x+y>=0
2x-y<=10
ممنون ميشم راهنمايي کنيد
سپاسگزام
سلام.
اگر منظورتان هاشور زدن (رنگی کردن) ناحیه بین دو نمودار رسم شده می باشد، بخشی از کلید آموزشی زیر در این زمینه می باشد :
یعنی مشابه شکل زیر :
بله اين آموزش رو ديدم ولي نتونستم متوجهش بشم.چيزي که من ميخام فکرکنم خيلي ساده تر بشه انجامش داد