fitting an equation to the curve
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
Rik
2018 年 11 月 15 日
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.
回答 (3 件)
KSSV
2018 年 11 月 15 日
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
5 件のコメント
madhan ravi
2018 年 11 月 15 日
編集済み: madhan ravi
2018 年 11 月 15 日
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')
Image Analyst
2018 年 11 月 15 日
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?
4 件のコメント
Rik
2018 年 11 月 15 日
Ah, yes, you are right. But as I already mentioned, it doesn't matter. The exponent should be an integer, so this will be a real value for any valid n.
参考
カテゴリ
Help Center および File Exchange で Get Started with Curve Fitting Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!