Fitting multiple exponential function .
조회 수: 25 (최근 30일)
이전 댓글 표시
I am trying to fit my experimental data with the following function, where T is temperature and rest all are fitting parameter.
I am using following matlab code for fitting.
fun = @(x)shibita_fitting(x,data)
x0=[8000 2000 0.1 10^3 0.5 10^3 0.1];
bestx = fminsearch(fun,x0)
where fitting function is defined as
function sse = shibita_fitting(x,data)
a = x(1);
d=x(2);
e1=x(3);
c1=x(4);
E1=x(5);
c2=x(6);
E2=x(7);
T=data(:,1);
I=data(:,2);
I_new=a* (1+d*exp(-e1./T))./(1+c1*exp(-E1./T)+c2*exp(-E2./T));
sse = sum((I - I_new).^2);
The result of fitting is displayed below. The fitting is following the trend but it is not able to reproduce the kink near T=50.
Please suggest.
댓글 수: 3
Mathieu NOE
2023년 6월 7일
are you sure your model is capable of reproducing that kink ?
also , on complex models, fminsearch is very sensitive to x0 values. If you are a bit too off, the convergence is poor
you may have to use a more robust tool.
채택된 답변
Alex Sha
2023년 6월 7일
@Saroj Poudyal, the result you obtained is not the best one, refer to the global optimization solution below:
Sum Squared Error (SSE): 1481189.88030936
Root of Mean Square Error (RMSE): 145.464275452741
Correlation Coef. (R): 0.996415848858336
R-Square: 0.992844543856079
Parameter Best Estimate
--------- -------------
x1 6850.52907094882
x2 602297.690775148
x3 565.832984121765
x4 8348759.66056058
x5 679.004219138599
x6 9.35098845248168
x7 70.2264432550839
댓글 수: 4
Alex Sha
2023년 6월 7일
@Saroj Poudyal The global optimization algorithm does not need to guess the initial start-value of each parameter, at least in theory, but can obtain the global optimization solution, although in practical applications it is often far from the ideal result. However, for complex fitting problems, it is still helpful to choose the global optimization algorithms.
Matlab contains a global optimization toolbox, you can try various global optimization algorithms included, such as genetic algorithms, etc., but personal experience, the power of Matlab's global optimization toolbox is still relatively weak, and needs continuous improvement.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Optimization Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!