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