Fitting data into a required function

1 Ansicht (letzte 30 Tage)
Vishal Dolas
Vishal Dolas am 13 Feb. 2021
Kommentiert: Star Strider am 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?

Akzeptierte Antwort

Star Strider
Star Strider am 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 Kommentare
Vishal Dolas
Vishal Dolas am 13 Feb. 2021
Thanks a lot it worked!!
Star Strider
Star Strider am 13 Feb. 2021
As always, my pleasure!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

randerss simil
randerss simil am 13 Feb. 2021
Bearbeitet: randerss simil am 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

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by