Fitting data into a required function
2 views (last 30 days)
Show older comments
Vishal Dolas
on 13 Feb 2021
Commented: Star Strider
on 13 Feb 2021
I am trying to fit this data -
x = [0.001 0.01 0.1 1 10];
y = [63.5 74.5 94.1 94.2 103.5];
into a function y = m*x^n
polyfit and lsqcurvefit not seem to be working here
can someone help me?
0 Comments
Accepted Answer
Star Strider
on 13 Feb 2021
Try this:
x = [0.001 0.01 0.1 1 10];
y = [63.5 74.5 94.1 94.2 103.5];
fcn = @(b,x) b(1).*x.^b(2);
B0 = rand(2,1);
B = lsqcurvefit(fcn, B0, x, y)
figure
plot(x, y, 'p')
hold on
plot(x, fcn(B,x), '-r')
hold off
set(gca, 'XScale','log') % Optional
grid
xlabel('X')
ylabel('Y')
legend('Data', sprintf('y = %.3f\\cdotx^{%.3f}', B), 'Location','E')
.
2 Comments
More Answers (1)
randerss simil
on 13 Feb 2021
Edited: randerss simil
on 13 Feb 2021
%if true
m = 2
n = 1.5
Y = m*x.^n;
k = polyval(x,Y)
First use polyval for the equation and then apply polyfit
0 Comments
See Also
Categories
Find more on Interpolation 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!