Search This Blog

Friday, June 3, 2011

Curve Fitting in Matlab

မိတ်ဆွေ တစ်ယောက်က data sample တွေက နေ curve equation ထုတ်ဖို့ လိုနေ ပါတယ်။ Excel မှာ polynomial ကို order 6 အထိပဲ ရလို့ higher order ရအောင် Matlab program ကူရေးပေး ဖို့ ဆိုလာ ပါတယ်။ ဂရပ် ပုံကို ပါ ဆွဲပေး ဖို့ program ရယ်၊ နမူနာ ဒေတာ ဖိုင်ရယ် ကို အောက်မှာ ရေးကြည့်ထား ပါတယ်။ ကျွန်တော် ကိုယ်တိုင်လဲ မကြာခဏ data fit လုပ်ဖို့ လိုတာ ကြောင့် ကျွန်တော့် အတွက်လဲ ဒါဟာ အသုံးဝင်ပါတယ်။ See d.txt and cf.m.
%--------------------------------------
%Curve fitting
%2011-Jun-03
%Programmer: Yan Naing Aye
%--------------------------------------
clc;
close all;
clear all;
%--------------------------------------
%get data from file that can be edited
load('d.txt');
X=d(:,1);
Y=d(:,2);
%--------------------------------------
%define order
N=2;
%--------------------------------------
%curve fitting
p=polyfit(X,Y,N);
%generate curve fitted data
[nr nc]=size(X);
YA=zeros(nr,1);
for i=0:N
    YA=YA+p(i+1)*X.^(N-i);
end
%--------------------------------------
%Plot Y vs X
figure;
plot(X,Y,' rd','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',6)
hold on;
plot(X,YA,'b','LineWidth',2,...
                'MarkerEdgeColor','k',...
                'MarkerFaceColor','g',...
                'MarkerSize',6)
hold off;            
grid on;
Title('Y vs X')
xlabel('X');
ylabel('Y');
legend('Sampled data','Fitted curve',...
       'Location','NW')
%--------------------------------------

No comments:

Post a Comment