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:
3 件のコメント
その他の回答 (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!