Curve fitting tool fits a wrong equation

6 次查看(过去 30 天)
I am using Matlab for my physical chemistry lab evaluation. Currently I am trying to fit an equation , using the custom equation function. When I fit it works fine, but as soon as I add a second parameter, the fit bocomes linear and I can't figure out why.
  3 个评论
Elizaveta Iavorskaia
I used the following data:
p = [101500, 77300, 61600, 51300, 45000, 39000];
V = [0.03, 0.04, 0.05, 0.06, 0.07, 0.08];
P as x, V as y.
These are the data I collected from the experiment.
the cyclist
the cyclist 2022-11-28
Also, I don't think this should matter, but just to be absolutely certain, I would try coding the equation as
(a./x) + b

请先登录,再进行评论。

采纳的回答

the cyclist
the cyclist 2022-11-28
I can't figure out what is going wrong here, and I don't have the Curve Fitting Toolbox to play around.
I get a sensible fit using fitnlm, so if you have the Statistics and Machine Learning Toolbox, you could use that if you don't figure this out.
% The data
p = [101500, 77300, 61600, 51300, 45000, 39000]';
V = [0.03, 0.04, 0.05, 0.06, 0.07, 0.08]';
% Define function that will be used to fit data
% (F is a vector of fitting parameters)
f = @(F,x) F(1)./x + F(2);
% Define starting guess of coefficients
beta0 = [1000 1];
% Fit the model
mdl = fitnlm(p,V,f,beta0);
% Plot the data and fit
figure
plot(p,V,'*',p,predict(mdl,p),'g');
xlabel("p")
ylabel("V")
legend('data','fit','Location','NorthEast')
  3 个评论
Matt J
Matt J 2022-11-28
To get a better starting guess:
StatPoint=polyfit(1./x,y,1);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by