Fitting two Parameters to an equation with data

22 ビュー (過去 30 日間)
R
R 2013 年 4 月 11 日
コメント済み: Matt J 2019 年 12 月 28 日
Hello, I've been stumped trying to solve this problem for a while now and was hoping someone here might be able to help. For background info I'm not completely new to MATLAB, I have a good understanding of the fundamentals and I've developed scripts and functions to run things like Newton-Rhapson method etc...
I have a set of data:
x=[0;69.18248;78.63425;83.30743;86.66291;87.06997]; t=[0;1;2;3;4;5];
And I want to fit an equation to this data. I have the equation shown below:
x= 1 - 0.5584*exp(-a*t) - 0.4416*exp(-b*t)
As you can see, I have the x data points for each t value. I do not, however, know the constant parameters a and b. I wish to find a value for them that will best fit this data. I've looked around for a solution and some say it might be possible using fminsearch but I don't understand how to set up the functions required to do so. Any help is much appreciated.
  4 件のコメント
Yao Li
Yao Li 2013 年 4 月 12 日
I've tried the curve fitting tool. It seems Matt is right. Your equation cannot fit the data well
R
R 2013 年 4 月 12 日
Okay guys, I'm sorry. I was given the wrong data points. Those x values should be /100 as they are percentages...

サインインしてコメントする。

採用された回答

Matt J
Matt J 2013 年 4 月 12 日
y=1-x;
fun=@(ab) abs( .5584*exp(-ab(1)*t)+.4416*exp(-ab(2)*t) - y);
ab=fminsearch(fun,[0,0])
a=ab(1);
b=ab(2);
  2 件のコメント
Matt J
Matt J 2013 年 4 月 12 日
Sorry, should be norm() instead of abs().
R
R 2013 年 4 月 12 日
Alright, thanks a lot for the help! You've solved my problem.

サインインしてコメントする。

その他の回答 (1 件)

Yao Li
Yao Li 2013 年 4 月 12 日
編集済み: Yao Li 2013 年 4 月 12 日
General model:
f(x) = 1 - 0.5584*exp(-a*x) - 0.4416*exp(-b*x)
Coefficients (with 95% confidence bounds):
a = 16.92 (-2.71e+06, 2.71e+06)
b = 0.3107 (0.2453, 0.3762)
Goodness of fit:
SSE: 0.002167
R-square: 0.9962
Adjusted R-square: 0.9952
RMSE: 0.02328
  2 件のコメント
mht6
mht6 2019 年 12 月 28 日
Could you elaborate on how you achieved/calculated the goodness of fit? It would be nice to apply similar information to data I am fitting
Matt J
Matt J 2019 年 12 月 28 日
By requesting two or more outputs from fit(), see for example,

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by