Many students ask me how do I do this or that in MATLAB. So I thought why not have a small series of my next few blogs do that. In this blog, I show you how to do polynomial regression.
- The MATLAB program link is here.
- The HTML version of the MATLAB program is here.
- DO NOT COPY AND PASTE THE PROGRAM BELOW BECAUSE THE SINGLE QUOTES MAY NOT TRANSLATE TO THE CORRECT SINGLE QUOTES IN MATLAB EDITOR OR IT MAY NOT PASTE HARD RETURNS. DOWNLOAD THE MATLAB PROGRAM DIRECTLY INSTEAD
%% HOW DO I DO THAT IN MATLAB SERIES? % In this series, I am answering questions that students have asked % me about MATLAB. Most of the questions relate to a mathematical % procedure. %% TOPIC % How do I do polynomial regression? %% SUMMARY % Language : Matlab 2008a; % Authors : Autar Kaw; % Mfile available at % http://nm.mathforcollege.com/blog/regression_polynomial.m; % Last Revised : August 3, 2009; % Abstract: This program shows you how to do polynomial regression? % . clc clear all clf %% INTRODUCTION disp('ABSTRACT') disp(' This program shows you how to do polynomial regression') disp(' ') disp('AUTHOR') disp(' Autar K Kaw of http://autarkaw.wordpress.com') disp(' ') disp('MFILE SOURCE') disp(' http://nm.mathforcollege.com/blog/regression_polynomial.m') disp(' ') disp('LAST REVISED') disp(' August 3, 2009') disp(' ') %% INPUTS % y vs x data to regress % x data x=[-340 -280 -200 -120 -40 40 80]; % ydata y=[2.45 3.33 4.30 5.09 5.72 6.24 6.47]; % Where do you want to find the values at xin=[-300 -100 20 125]; %% DISPLAYING INPUTS disp(' ') disp('INPUTS') disp('________________________') disp(' x y ') disp('________________________') dataval=[x;y]'; disp(dataval) disp('________________________') disp(' ') disp('The x values where you want to predict the y values') dataval=[xin]'; disp(dataval) disp('________________________') disp(' ') %% THE CODE % Using polyfit to conduct polynomial regression to a polynomial of order 1 pp=polyfit(x,y,1); % Predicting values at given x values yin=polyval(pp,xin); % This is only for plotting the regression model % Find the number of data points n=length(x); xplot=x(1):(x(n)-x(1))/10000:x(n); yplot=polyval(pp,xplot); %% DISPLAYING OUTPUTS disp(' ') disp('OUTPUTS') disp('________________________') disp(' xasked ypredicted ') disp('________________________') dataval=[xin;yin]'; disp(dataval) disp('________________________') xlabel('x'); ylabel('y'); title('y vs x '); plot(x,y,'o','MarkerSize',5,'MarkerEdgeColor','b','MarkerFaceColor','b') hold on plot(xin,yin,'o','MarkerSize',5,'MarkerEdgeColor','r','MarkerFaceColor','r') hold on plot(xplot,yplot,'LineWidth',2) legend('Points given','Points found','Regression Curve','Location','East') hold off disp(' ')
This post is brought to you by Holistic Numerical Methods: Numerical Methods for the STEM undergraduate at http://nm.mathforcollege.com, the textbook on Numerical Methods with Applications available from the lulu storefront, and the YouTube video lectures available at http://nm.mathforcollege.com/videos and http://www.youtube.com/numericalmethodsguy
Subscribe to the blog via a reader or email to stay updated with this blog. Let the information follow you.
Thank you so much . I have just got it.
Thank you so much . I have just got it.
I want to use a method for leveling a magnetic data which it’s name is “differential polynomial fitting” how I do it and what is the good matlab code for it?
The technique is based on polynomial fitting of data points in 1D and 2D sliding windows
A polynomial is fitted to data points in a 2D circular
window that contains at least three flight lines. Then the same
procedure is done inside a 1D window placed at the center of
the 2D window. The leveling error is the difference between
1D and 2D polynomial fitted data at the center of the windows
I want to use a method for leveling a magnetic data which it’s name is “differential polynomial fitting” how I do it and what is the good matlab code for it?
The technique is based on polynomial fitting of data points in 1D and 2D sliding windows
A polynomial is fitted to data points in a 2D circular
window that contains at least three flight lines. Then the same
procedure is done inside a 1D window placed at the center of
the 2D window. The leveling error is the difference between
1D and 2D polynomial fitted data at the center of the windows