Multi-parametric fit
31 ビュー (過去 30 日間)
古いコメントを表示
Hi everyone! My question is as follows:
I have several experimental data, X. X is dependent of 4 different independent variables; X=f(A,B,C,D), which are experimental data too. How can I fit them?. For example, if I had only X and A, maybe the relation would be like X=A^3 (easily to do with cftool). But what I want to get is a multi-parametric fit like these (it doesn’t have to be linear): X=A*log(B)^C+D/2.
Is that possible to be done? Is there any toolbox that may help me? I thought about a procedure, but it’s pretty biased. Any ideas are welcome. Thanks in advance.
0 件のコメント
採用された回答
the cyclist
2012 年 4 月 3 日
The nlinfit() function in the Statistics Toolbox does this type of fit. Here is a simple example that I wrote to help another poster:
% Here is an example of using nlinfit(). For simplicity, none of
% of the fitted parameters are actually nonlinear!
% Define the data to be fit
x=(0:1:10)'; % Explanatory variable
y = 5 + 3*x + 7*x.^2; % Response variable (if response were perfect)
y = y + 2*randn((size(x)));% Add some noise to response variable
% Define function that will be used to fit data
% (F is a vector of fitting parameters)
f = @(F,x) F(1) + F(2).*x + F(3).*x.^2;
F_fitted = nlinfit(x,y,f,[1 1 1]);
% Display fitted coefficients
disp(['F = ',num2str(F_fitted)])
% Plot the data and fit
figure(1)
plot(x,y,'*',x,f(F_fitted,x),'g');
legend('data','fit')
0 件のコメント
その他の回答 (2 件)
Miguel Ángel
2012 年 4 月 4 日
2 件のコメント
the cyclist
2012 年 4 月 4 日
Off the top of my head, I don't think so. There are some interactive tools like "disttool" and "dfittool", but they are all going to use the more common distributions, so I am not sure what help they might be.
That being said, I suggest you ask your new question separately, rather than burying it as an "answer" in this thread. It is not likely to get much traffic here, especially with an accepted answer already. You might also consider searching the File Exchange.
Miguel Ángel
2012 年 4 月 11 日
1 件のコメント
Ajay Balan Muthuramesh
2014 年 1 月 15 日
Miguel - Even I am facing the same problem that you had. How do you use the nlinfit() to guess the function between A,B,C,D. I basically have a data set with three variables A,B,C and the result is D=f(A,B,C) . I want to predict that function. Kindly help on this
参考
カテゴリ
Help Center および File Exchange で Get Started with Curve Fitting Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!