Curve fitting using custom model

1 Ansicht (letzte 30 Tage)
Kyle Wang
Kyle Wang am 28 Jul. 2015
Kommentiert: Elias am 28 Jul. 2015
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 Kommentare
Walter Roberson
Walter Roberson am 28 Jul. 2015
Are a and x certain to be non-negative ?
Kyle Wang
Kyle Wang am 28 Jul. 2015
the given data set x_given and y_given are vectors of positive double numbers. a, b and c could be negative or positive.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 28 Jul. 2015
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.

Weitere Antworten (1)

Torsten
Torsten am 28 Jul. 2015

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by