Fit to find the value of an unknown parameter
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Stephan
2020-3-24
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:
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!