How to fit data with custom function with two variables?
12 次查看(过去 30 天)
显示 更早的评论
Hi,
I would ask How to fit data with custom function with two variables? I have data from measurements in two vectors, let's say Ra and Pr. I need to fit this data to equation: a*(Ra^(b))*(Pr^(c)) and extract the coeficients value. How can I do that? Thank you
0 个评论
回答(1 个)
Thiago Henrique Gomes Lobato
2021-4-25
You can minimize the error of your model to the data you want by optimizing the parameters. One alternative for it is, for example, by using fminsearch.
Ra = randn(100,1)*5; % Data you said you have
Pr = randn(100,1);
% I'm generating some example data
a = 0.5;
b = 0.1;
c = 0.35;
dataToFitModel = a*(Ra.^(b)).*(Pr.^(c)); % You didn't mention this data but you should have,
% otherwise it doesn't make sense to talk about fit
% Here you create a function to minimize the error between measurements and your model
fun = @(x) rms(dataToFitModel- ( x(1)*(Ra.^( x(2) )).*(Pr.^( x(3) )) ) )
firstGuess = [0,0,0]; % Depending of your data you may need a start point close to the real answer
[x,fval] = fminsearch(fun,firstGuess);
aFromData = x(1)
bFromData = x(2)
cFromData = x(3)
fval
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Least Squares 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!