آموزش برازش منحنی Curve fitting در نرم افزار MATLAB _ قسمت اول چند جمله ای ها
برازش منحنی 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’)
دستورات و خروجی به صورت زیر است.
در صورت داشتن هرگونه سوال، لطف کنید سوالاتتون رو در قسمت نظرات مطرح کنید. و در صورت داشتن پروژه در خصوص نرم افزار MATLAB و مهندسی مکانیک ، کنترل، محاسبات عددی، SIMULINK، SimMechanics میتوانید از طریق ایمیل و تلفن در قسمت تماس با ما، ارتباط برقرارکنید.
برای بالاتر از دو متغیر هم میشه انجام داد؟
فقط بیزحمت سریع جواب بدین کارم خیلی گیره
با عرض سلام.وخسته نباشید .یه تابع دو متغیرهای که بخواهیم برارش کنیم.و به صورت کسری است.حال اگه بخواهم با یکسری داده منحنی. را برازش کنم ثوابت معادله را بدست آورم باید چکار کنم
توابع متعارف رو میشه از تولباکس ژنتیک استفاده کرد. اما برای توابع نامتعارف شما باید کد نویسی کنید. روش های کد نویسی هم در کتابهای محاسبات عددی موجود هستند.
موفق باشید.
سلام ببخشید من یه تابع نامتعارف رو کد نویسی کردم ولی نمیدونم این رو چجوری میتونم برا برازش منحنی استفاده کنم میشه لطفا راهنمایی کنید؟
برای برازش منحنی ها شما نیاز به دیتا دارید. میتونید از تابعتون دیتاهای دلخواهتون رو بگیرید و سپس با توابع روتین متلب برازش کنید تا به یه تابع روتین برسید.
سلام. میخواستم بدونم دستور مربوط به sum of sin به چه صورت است؟
متاسفانه نمیدونم یا حداقل توی ذهنم الان چیزی در این رابطه نیست. بررسی میکنم اگه به نتیجه ای رسیدم همینجا پاسخ میدم.
موفق باشید.
با سلام
از دستور polyfit می خوام استفاده کنم که بعضی از ضرایبش از قبل معلوم هست باید به چه صورت کد نویسی کنم؟
به عنوان مثال برای چند جمله ای درجه 6 ، که ضرایب مرتبه صفر و یک ،مقدارش صفر باشه
با تشکر
خوب میتونید مستقیم از دستور متلب استفاده کنیدو این ضرایب رو در نظر نگیرید یا با استفاده از ضرایبی که دارید داده های نزدیک ایجاد کنید و سپس از دستور برازش استفاده کنید. در مورد اینکه ایا میشه چند ضریب رو خودتون قرار بدین بررسی میکنم و در صورتی که به نتیجه ای رسیدم همینجا پاسخ میدم
با سلام
بنده بیش از چندین داده از مقالات متفاوت را میخواستم به طور همزمان وارد کرو فیتینگ کنم.وبه همه این داده ها یک برازش بدهم.
سوال اول: چطور میتونم همه داده ها را به طور همزمان وارد کنم؟
سوال دوم: آیا بهترین برازش که میشه داد را خود نرم افزار میتونه انجام بده؟
سوال سوم: چطور میشه مقیاس محور x را در کرو فیتینگ از حالت linear به log تبدیل نمود؟
خواهش میکنم راهنمایی بفرمایید.
سلام.وقتتون بخیر
ببخشید برای برازش یک تابع چندمتغییره باید از چه دستوری یا چه روش رگرسیونی استفاده کرد؟؟؟مثلا رابطه yبا سه متغیر مستقلx1,x2,x3را چطور باید به دست آورد ؟؟
ممنون میشم راهنماییم کنید
سلام خسته نباشید
میخواستم نتیجه را بصورت یک تابع نمایی برازش کنم
این را با چه دستوری بنویسم؟