power law fit to find exponent

2 Ansichten (letzte 30 Tage)
Bhowmik.U
Bhowmik.U am 17 Feb. 2020
Beantwortet: Star Strider am 18 Feb. 2020
I have a data in column matrix x and y
I need a power law fit say y=x^m
I require to plot scatter of y versus x and plot a power law fit on top of it ; and find m and display on graph.
any help will be appreciated!
  4 Kommentare
Star Strider
Star Strider am 17 Feb. 2020
If you want to linearise this equation:
y=x^m
take the logs of both sides. (There are much better ways to do this, however that will get you close enough.)
Bhowmik.U
Bhowmik.U am 18 Feb. 2020
Sir, this wasnt a "homework"...was a question my junior asked me and I wanted to help him..nuthn else.
And yes Sir. I need to find out the "m" in y=x^m; I know y and x....Linearization isnt quite my aim...I want to what power of x do y vary!

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Star Strider
Star Strider am 18 Feb. 2020
I would do this (no Toolboxes required):
x = linspace(0, 5, 50); % Create Data
y = x.^pi + randn(size(x))*10; % Create Data
fcn = @(b,x) b(1).*x.^b(2) + b(3); % Objective Function
B = fminsearch(@(b) norm(y - fcn(b,x)), rand(3,1)*2) % Estimate Parameters
figure
plot(x, y, '.')
hold on
plot(x, fcn(B,x), '-r')
hold off
grid
Here, ‘m’ is ‘B(2)’.
Taking the logs of both sides will only work if both ‘x’ nor ‘y’ are >=0.

Kategorien

Mehr zu Time Series Objects 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