How to use lsqcurvefit to find constant values?
1 回表示 (過去 30 日間)
古いコメントを表示
Hi
How to use 'lsqcurvefit' to find the coefficient values 'a' and 'b'.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/147970/image.png)
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
0 件のコメント
回答 (1 件)
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 件のコメント
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 Center および File Exchange で Least Squares についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!