How to use lsqcurvefit to find constant values?

조회 수: 2 (최근 30일)
R7 DR
R7 DR 2015년 3월 16일
댓글: Star Strider 2015년 3월 16일
Hi
How to use 'lsqcurvefit' to find the coefficient values 'a' and 'b'.
The blue line(A1) is produced from the experimental data and the green line is based on the 'nlinfit' function. But the error is very high.
Is it possible to use 'lsqcurvefit' and find the constant values?
A1=[......] % experimental data
A2= a*exp(b/X)*Y %function for greenline.
X=[.........] Y=[.........] I know the values of X and Y.
The ultimate aim is to reduce the error and finding the best fitted constant values.
Thanks

답변 (1개)

Star Strider
Star Strider 2015년 3월 16일
편집: Star Strider 2015년 3월 16일
You have to create a single matrix of your ‘X’ and ‘Y’ values:
XY = [X(:) Y(:)];
Then create your objective function ‘A2’ as:
% b(1) = a, b(2) = b
A2 = @(b, XY) b(1) .* exp(b(2)./XY(:,1)) .* XY(:,2);
And give it to lsqcurvefit as:
B0 = randi(10, 2, 1); % Choose Appropriate Initial Parameter Estimates
B = lsqcurvefit(A2, B0, XY, A1);
Where ‘B(1)=a’ and ‘B(2)=b’.
  댓글 수: 8
R7 DR
R7 DR 2015년 3월 16일
thanks for your help.
I will check my model.
Star Strider
Star Strider 2015년 3월 16일
My pleasure.
I get a significantly different plot from the figure you posted. What data did you use to create it?
What figure do you get when you use my code?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Nonlinear Least Squares (Curve Fitting)에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by