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

اگر تمایل به برنامه نویسی ندارید و به نرم افزاری نیاز دارید که در کمتر از یک ثانیه مساحت درون حلقه رو براتون محاسبه کنه، می تونید نرم افزار آریان رو تهیه کنید. کافیه فایل نمودارتون رو وارد نرم افزار کنید تا بلافاصله مساحت درون حلقه رو بهتون نمایش بده.
مکانیزم محاسبه سطح زیر منحنی هیسترزیس
دوستان برنامه نویس به راحتی میتونن با هر زبان برنامه نویسی (C – C++ – C# – Python) این کار رو انجام بدن. به تصویر زیر نگاه کنید. روش کار دقیقا مشابه با محاسبه مساحت زیر منحنی هست. که چند سال پیش این آموزش رو با نرم افزار اکسل و متلب (بخش اول و بخش دوم) براتون قرار دادم.

برای محاسبه مساحت باید منحنی رو به چندین ذوزنقه تقسیم کنیم و مساحت ذوزنقه ها رو با هم جمع کنیم. به تصویر سبز رنگ نگاه کنید. ذوزنقه ها با نقطه چین مشخص شده اند. ولی باید دقت کنید که مساحت ذوزنقه های قرمز رنگ رو باید از سبزها کم کنیم. نگران نباشید کار خیلی ساده ای هست.
اگر تمایل به برنامه نویسی ندارید و به نرم افزاری نیاز دارید که در کمتر از یک ثانیه مساحت درون حلقه رو براتون محاسبه کنه، می تونید نرم افزار آریان رو تهیه کنید. کافیه فایل نمودارتون رو وارد نرم افزار کنید تا بلافاصله مساحت درون حلقه رو بهتون نمایش بده.
برنامه نویسی محاسبه سطح زیر منحنی هیسترزیس
باید مساحت تک تک ذوزنقه ها رو با استفاده از یک حلقه تکرار با هم جمع کنیم. فرمولی که برای محاسبه مساحت هر ذوزنقه باید ازش استفاده کنیم در زیر آورده شده.
//Area of Trapezius long area; area = (x2 - x1) * (y2 + y1) / 2
نکته شگفت انگیزی که وجود داره اینه که وقتی از فرمول بالا در یک حلقه تکرار مثل For یا Foreach استفاده کنیم، به صورت خود کار مساحت ناحیه قرمز رنگ منفی میشه و دیگه نیاز نیست مساحت ناحیه سبز رو جدا حساب کنیم و قرمز رو جدا و از هم کم کنیم. چون طبق فرمول، باید دو مقدار x رو از هم کم کنیم یعنی X2 – X1 که عدد مثبتی میشه و به صورت مشابه برای لبه پایینی نمودار باید حاصل X7 – X6 رو حساب کنیم که مقداری منفی میشه. پس خود کار اگر کد بالا رو توی حلقه بزاریم، نواحی قرمز رنگ منفی میشه و خودکار از ناحیه سبز رنگ کم میشه. کد این قسمت به زبان برنامه نویسی C#.net
// Return the polygon's area in "square units." // The value will be negative if the polygon is // oriented clockwise. private float SignedPolygonArea() { // Add the first point to the end. int num_points = Points.Length; PointF[] pts = new PointF[num_points + 1]; Points.CopyTo(pts, 0); pts[num_points] = Points[0]; // Get the areas. float area = 0; for (int i = 0; i < num_points; i++) { area += (pts[i + 1].X - pts[i].X) * (pts[i + 1].Y + pts[i].Y) / 2; } // Return the result. return area; }
یک نکتهی دیگه که باید بهش توجه کنید اینه که نقاط X و Y شما به صورت ساعتگرد هست یا پاد ساعتگرد؟ اگر اعداد شما پاد ساعت گرد باشه، نتیجه ی نهایی منفیمیشه که باید قدر مطلقش رو به عنوان مساحت در نظر بگیرید. پس در هر صورت وقتی تابع بالا رو صدا می زنید بهتره که از اون قدر مطلق بگیرید. کد این قسمت به زبان برنامه نویسی C#.net
// Return the polygon's area in "square units." public float PolygonArea() { // Return the absolute value of the signed area. // The signed area is negative if the polyogn is // oriented clockwise. return Math.Abs(SignedPolygonArea()); }
منبع این مطلب البته با کمی تغییر http://csharphelper.com
با نرم افزار اوریجین هم میشه مساحت داخل حلقه هیسترزیس رو بدست اورد؟
سلام دوست گرامی. متاسفانه اطلاعی ندارم. یه سرچ توی سایتش بکنید. توی سایتش توضیحات خوبی داده
سلام اقای زندی.مت آموزش محاسبه سطح در آریان را دیده ام.ممنون
فقط چگونه پس ار ترسیم آن را ذخیره و به اکسل انتقال دهیم تا قابل استفاده در مقاله باشد؟
سلام. امیدوارم خوب باشید. آموزش رسم نمودار در اکسل توی سایت موجود هست. برای رسم نمودار در اکسل به نرم افزار آریان نیاز ندارید.
بله سپاس. نفرمودید چگونه منحنی ترسیم شده در آریان را ذخیره کنم.ممنون میشم راهنمایی بفرمایید.
خواهش میکنم اگر می خواهید به صورت تصویر ذخیره کنید، روی نمودار کلیک راست کنید و گزینه ذخیره به صورت تصویر رو کلیک کنید
بله سپاس. لطفا بخش دوم سووال را راهنمایی بفرمایید.
اگر می خواهید نمودار رو وارد اکسل کنید، نیاز به نرم افزار آریان ندارید. مباحث مربوط به رسم نمودار در اکسل رو در اینترنت جستجو کنید و نمودارتون رو مستقیم در اکسل رسم کنید. اگر هم نمودار رو در آریان ویرایش کردید، مثلا smooth کردید یا برش دادید یا … در بالای نرم افزار دکمه export هست. و داده ها رو بهتون خروجی میده و میتونید وارد اکسل کنید.