Curve fitting using custom model

1 回表示 (過去 30 日間)
Kyle Wang
Kyle Wang 2015 年 7 月 28 日
コメント済み: Elias 2015 年 7 月 28 日
Given set of x and y, how can I solve the parameter a, b and c in the model
y = a * x^b + c
to best fit the given data?
As I will further implement the algorithm in C++, I would prefer not using built-in Matlab functions to solve parameters.
Could anyone please suggest an algorithm? Many thanks, Kyle.
  2 件のコメント
Walter Roberson
Walter Roberson 2015 年 7 月 28 日
Are a and x certain to be non-negative ?
Kyle Wang
Kyle Wang 2015 年 7 月 28 日
the given data set x_given and y_given are vectors of positive double numbers. a, b and c could be negative or positive.

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

採用された回答

Walter Roberson
Walter Roberson 2015 年 7 月 28 日
G = @(abc) sum((abc(1)*x0.^abc(2)+abc(3)-y0).^2);
ABC = fminsearch(G, [rand,rand,rand], 'MaxIters', 10000)
the result will not necessarily be exactly correct, and you can pass ABC back in instead of [rand,rand,rand], but I did find that with my test sometimes it cycled near the answer.
fminsearch is a gradient descent method.

その他の回答 (1 件)

Torsten
Torsten 2015 年 7 月 28 日
  1 件のコメント
Elias
Elias 2015 年 7 月 28 日
sounds interesting thanks

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

カテゴリ

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