Fitting data with a prescribed function
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
My question is about the fitting function. I would like to fit 5 data points to a prescribed function: A + B*x + C * log(x). The code I use is:
myfit = fittype('a + b*x + c*log(x)','dependent',{'y'},'independent',{'x'},'coefficients',{'a','b','c'});
fit1=fit(xfit,yfit,myfit)
The data points I use are:
xfit = 2.1902, 2.5940, 3.0203, 3.5356, 4.2762,
yfit = 0.5000, 1.0000, 2.0000, 4.0000, 9.0000
Now, I do get an answer, but when comparing it to the values for a,b and c I found using both Python or Wolfram Mathematica, it seems very off.
Any idea what went wrong?
The expected values are: 2.5303 + 0.0627895 x + 0.538228 Log[x]
EDIT:
clear all
close all
color='red';
xfit = [2.1902, 2.5940, 3.0203, 3.5356, 4.2762];
yfit = [0.5000, 1.0000, 2.0000, 4.0000, 9.0000];
scatter(xfit,yfit,color)
hold on
myfit = fittype('a + b*x + c*log(x)','dependent',{'y'},'independent',{'x'},'coefficients',{'a','b','c'});
fit1 = fit(xfit',yfit',myfit,'StartPoint',[2.5,0,0.5]);
plot(fit1,color)
ylim([0,10])
xlim([0,5])
This is a matlab file that should do the job. However, it still doesn't work. Adding the point [0,0] to the beginning of the list does not make any difference (it results in errors, due to log(0) = -Inf ).
0 commentaires
Réponse acceptée
Friedrich
le 21 Oct 2013
Modifié(e) : Friedrich
le 21 Oct 2013
Hi,
have you verfied the other results you are getting? What kind of LOG are you using in Python or Mathematica? In MATLAB LOG is the Natural logarithm.
When verfiying the given curve it looks very wrong:
f = @(x) 2.5303 + 0.0627895.*x + 0.538228.*log(x)
xfit = [2.1902, 2.5940, 3.0203, 3.5356, 4.2762];
yfit = [0.5000, 1.0000, 2.0000, 4.0000, 9.0000];
scatter(xfit,yfit,'red')
hold on
plot(0:0.1:5,f(0:0.1:5))
ylim([0,10])
xlim([0,5])
4 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!