fitting an equation to the curve
Show older comments
I have set of data X,Y and i would like to fit an equation of the form
I want to find for which n, the curev fits the best.
Any help!
9 Comments
Rik
on 15 Nov 2018
What have you tried so far? And where are x and y in your equation?
Megha
on 15 Nov 2018
Torsten
on 15 Nov 2018
And n is an integer greater than 0 ?
Megha
on 15 Nov 2018
Megha
on 15 Nov 2018
Rik
on 15 Nov 2018
You really shouldn't shadow the error function with a variable. Once you rename it, this code should work. I tried implementing fminsearch, but it is difficult to find a good way to select only discrete results.
Torsten
on 15 Nov 2018
It also works with shadowing :-) But I admit that it's not advisable.
Answers (3)
KSSV
on 15 Nov 2018
Read about polyfit
N = 100 ; n = 2 ;
x = linspace(0,2*pi,N) ;
y = sin(x).^n ;
%
p = polyfit(x,y,7); % you can change 7 here...
x1 = linspace(0,2*pi);
y1 = polyval(p,x1);
figure
plot(x,y,'o')
hold on
plot(x1,y1)
hold off
madhan ravi
on 15 Nov 2018
Edited: madhan ravi
on 15 Nov 2018
x = linspace(-2*pi,2*pi,100) ;
xx=linspace(x(1),x(end),1000);
y = sin(x).^7 ;
yy=interp1(x,y,x,'spline')
figure
plot(x,y,'o',x,yy,'r')
1 Comment
Image Analyst
on 15 Nov 2018
0 votes
My favorite fitting function is fitnlm() in the Statistics and Machine Learning toolbox. It could easily find this n. Just attach your data in a .mat file and I can do it for you. You have a non-linear equation in variable n. You could turn it into a linear equation in n by taking the log of the data and then using polyfit, but do you know how that affects the accuracy? Why not use fitnlm() to fit a non-linear model to n right from the start?
Categories
Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!