Curve fitting tool fits a wrong equation

3 Ansichten (letzte 30 Tage)
Elizaveta Iavorskaia
Elizaveta Iavorskaia am 28 Nov. 2022
Kommentiert: Matt J am 28 Nov. 2022
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 Kommentare
Elizaveta Iavorskaia
Elizaveta Iavorskaia am 28 Nov. 2022
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 am 28 Nov. 2022
Also, I don't think this should matter, but just to be absolutely certain, I would try coding the equation as
(a./x) + b

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

the cyclist
the cyclist am 28 Nov. 2022
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 Kommentare
Elizaveta Iavorskaia
Elizaveta Iavorskaia am 28 Nov. 2022
Thank you very much for the answers!
Matt J
Matt J am 28 Nov. 2022
To get a better starting guess:
StatPoint=polyfit(1./x,y,1);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by