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?

 채택된 답변

Star Strider
Star Strider 2021년 2월 13일

0 개 추천

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

Vishal Dolas
Vishal Dolas 2021년 2월 13일
Thanks a lot it worked!!
Star Strider
Star Strider 2021년 2월 13일
As always, my pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

randerss simil
randerss simil 2021년 2월 13일
편집: randerss simil 2021년 2월 13일

0 개 추천

%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

카테고리

도움말 센터File Exchange에서 Get Started with Curve Fitting Toolbox에 대해 자세히 알아보기

제품

릴리스

R2020a

태그

질문:

2021년 2월 13일

댓글:

2021년 2월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by