آموزش نرم افزارهای مهندسی مکانیک و کنترل

آموزش های ارائه شده توسط محسن رضایی (دکتری مکانیک، مشاورصنعتی و طراح ماشین آلات، مکانیزم ها و سازهای مکانیکی)

برنامه نویسی و محاسباتنرم افزار متلب

آموزش برازش منحنی Curve fitting در نرم افزار MATLAB _ قسمت اول چند جمله ای ها

pic_1

برازش منحنی Curve fitting در نرم افزار MATLAB
از آنجایی که تولباکس برازش منحنی Curve fitting یکی از پرکاربردترین تولباکس های نرم افزار MATLAB می باشید و اکثر دانشجویان رشته های مختلف از رشته های مهندسی گرفته تا علوم پایه به آن نیاز دارند. لذا در این پست هدف آموزش مسائل و مباحث اولیه ی برازش منحنی در نرم افزار MATLAB است.ابتدا دستور ployfit  مورد بررسی قرار خواهد گرفت و توضیحات مربوط به آن داده خواهد شد و در پست بعدی هم به بررسی برازش منحنی به صورت جزئی تر و با استفاده از تولباکس cftool خواهیم پرداخت. برای مشاهده ی این آموزش به ادامه مطلب مراجعه نمایید.

 در صورت داشتن هرگونه سوال، لطف کنید سوالاتتون رو در قسمت نظرات مطرح کنید. و در صورت داشتن پروژه در خصوص نرم افزار MATLAB و مهندسی مکانیک ، کنترل، محاسبات عددی، SIMULINK، SimMechanics میتوانید از طریق ایمیل و تلفن در قسمت تماس با ما، ارتباط برقرارکنید.

 

 

برازش منحنی به صورت چند جمله ای        Polynomial Curve fitting in MATLAB

 

در ابتدا به بررسی دستور polyfit میپردازیم. این دستور به صورت زیر نوشته می شود.

polyfit(x_data,y_data,order)

بدین صورت که ابتدا اطلاعات مربوط به دادهای محور x و محور y و همچنین مرتبه ی چند جمله ای باید وارد شود. در دستور زیر ما یک سری داده های x و y را با تابع چند جمله ای برازش می دهیم.

x_data=[0  1  2   3   4   5   6   7   8   9  10];
y_data=[0 14 52 108 176 250 324 392 448 486 500];
polyfit(x_data,y_data,3)

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

ans =

-1.0000   15.0000   -0.0000    0.0000

که عدد اول از سمت راست ضریب a0 است و عدد بعدی ضریب a1 و عدد بعد از آن ضریب a2 و عدد بعد از آن ضریب a3 است. پس چند جمله ای برازش داده شده به صورت زیر است.

a3X3+a2X2+a1X+a0=-X3+15X2+0X+0

و درنهایت تابع برازش شده به صورت زیر است.

Y==-X3+15X2

برای محاسبه ی مقدار برازش داده شده نیز میتوان از دستور polyvalمحاسبه کرد.

polyval(ployfit,x_data)

مثال

داده های زیر را به صورت چند جمله ای مرتبه ی 2 و 3 و 4 برازش داده شده و نمودارهای آن را رسم شده است.

clear,clc,close all
x=[0  1  2   3   4   5   6   7   8   9  10];
y=[0 14 52 108 176 250 324 392 448 486 500];
p1=polyfit(x,y,2)
p2=polyfit(x,y,3)
p3=polyfit(x,y,4)
f1=polyval(p1,x);
f2=polyval(p2,x);
f3=polyval(p3,x);
plot(x,f1,’-.b’,x,f2,’k’,x,f3,’:g’,’LineWidth’,2)
legend(‘order 2′,’order 3′,’order 4’)
title(‘Curve fitting’)
xlabel(‘x’)
ylabel(‘y’)

دستورات و خروجی به صورت زیر است.

 pic_1

 در صورت داشتن هرگونه سوال، لطف کنید سوالاتتون رو در قسمت نظرات مطرح کنید. و در صورت داشتن پروژه در خصوص نرم افزار MATLAB و مهندسی مکانیک ، کنترل، محاسبات عددی، SIMULINK، SimMechanics میتوانید از طریق ایمیل و تلفن در قسمت تماس با ما، ارتباط برقرارکنید.

محسن رضایی

دکتری مهندسی مکانیک گرایش دینامیک کنترل و ارتعاشات دانشگاه شیراز زمینه های تحقیقاتی: دینامیک، کنترل، ارتعاشات، دینامیک پرواز، دینامیک خودرو، آیروالاستیسته، بهینه سازی زمینه های کاری صنعتی: طراحی مکانیزم های خطوط تولید،طراحی جرثقیل ها،طراحی ماشین الات صنعتی،بررسی عیوب و بهینه سازی ماشین الات صنعتی نرم افزارهای مسلط: متلب-سیمولینک- سیم مکانیک-انسیس - انسیس ورکبنچ-آدامز-سالیدورکس-آباکوس تلفن تماس: 09369074440 ایمیل : mechanic.soft[at]yahoo.com , info[at]mechanicsoft.ir نوشته‌های تازه

12 thoughts on “آموزش برازش منحنی Curve fitting در نرم افزار MATLAB _ قسمت اول چند جمله ای ها

  • ابوالفضل

    برای بالاتر از دو متغیر هم میشه انجام داد؟
    فقط بیزحمت سریع جواب بدین کارم خیلی گیره

    پاسخ دادن
  • با عرض سلام.وخسته نباشید .یه تابع دو متغیرهای که بخواهیم برارش کنیم.و به صورت کسری است.حال اگه بخواهم با یکسری داده منحنی. را برازش کنم ثوابت معادله را بدست آورم باید چکار کنم

    پاسخ دادن
    • توابع متعارف رو میشه از تولباکس ژنتیک استفاده کرد. اما برای توابع نامتعارف شما باید کد نویسی کنید. روش های کد نویسی هم در کتابهای محاسبات عددی موجود هستند.
      موفق باشید.

      پاسخ دادن
      • صنم

        سلام ببخشید من یه تابع نامتعارف رو کد نویسی کردم ولی نمیدونم این رو چجوری میتونم برا برازش منحنی استفاده کنم میشه لطفا راهنمایی کنید؟

        پاسخ دادن
        • برای برازش منحنی ها شما نیاز به دیتا دارید. میتونید از تابعتون دیتاهای دلخواهتون رو بگیرید و سپس با توابع روتین متلب برازش کنید تا به یه تابع روتین برسید.

          پاسخ دادن
  • مریم

    سلام. میخواستم بدونم دستور مربوط به sum of sin به چه صورت است؟

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

      پاسخ دادن
  • Msadegh

    با سلام
    از دستور polyfit می خوام استفاده کنم که بعضی از ضرایبش از قبل معلوم هست باید به چه صورت کد نویسی کنم؟
    به عنوان مثال برای چند جمله ای درجه 6 ، که ضرایب مرتبه صفر و یک ،مقدارش صفر باشه
    با تشکر

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

      پاسخ دادن
  • Alish

    با سلام
    بنده بیش از چندین داده از مقالات متفاوت را میخواستم به طور همزمان وارد کرو فیتینگ کنم.وبه همه این داده ها یک برازش بدهم.
    سوال اول: چطور میتونم همه داده ها را به طور همزمان وارد کنم؟
    سوال دوم: آیا بهترین برازش که میشه داد را خود نرم افزار میتونه انجام بده؟
    سوال سوم: چطور میشه مقیاس محور x را در کرو فیتینگ از حالت linear به log تبدیل نمود؟
    خواهش میکنم راهنمایی بفرمایید.

    پاسخ دادن
  • رضا

    سلام.وقتتون بخیر
    ببخشید برای برازش یک تابع چندمتغییره باید از چه دستوری یا چه روش رگرسیونی استفاده کرد؟؟؟مثلا رابطه yبا سه متغیر مستقلx1,x2,x3را چطور باید به دست آورد ؟؟
    ممنون میشم راهنماییم کنید

    پاسخ دادن
  • علی

    سلام خسته نباشید
    میخواستم نتیجه را بصورت یک تابع نمایی برازش کنم
    این را با چه دستوری بنویسم؟

    پاسخ دادن

دیدگاهتان را بنویسید

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