Fit to find the value of an unknown parameter
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi. I want to determine the value of a paramter (H) using a fit to measurements. I am assuming a list of H values.
A=0.1;
B=0.5;
C=100;
x; % x - coordinates
P1; % Measured data
H=0.0001:0.00005:0.05; % Assuming some values of H
for i=1:length(H)
i
P2=H(i)*(((1/A)*log(x.*H(i)/C))+B); % Estimation
R2(i)=rsquared(P1,P2) % Calculating the R2 value using rsquared function
end
I want the same number of P2 estimations as the number of assumed H values. I don't get it here. I want to save the values of R2 and select the value of H which gives R2=0.95.
0 Kommentare
Akzeptierte Antwort
Stephan
am 24 Mär. 2020
Try to optimize with least squares:
A=0.1;
B=0.5;
C=100;
% Range for H
lb = 0.0001;
ub = 0.05;
best_H = fminbnd(@(H)sseval(H,x,P1,A,B,C),lb,ub)
P2 = best_H*(((1/A)*log(x.*best_H/C))+B)
function sse = sseval(H,x,P1,A,B,C)
sse=sum((H*(((1/A)*log(x.*H/C))+B)-P1).^2);
end
see also:
3 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Least Squares finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!