# How to fitt a power function to data

13 views (last 30 days)
Sadegh Aberoumand on 20 Apr 2021 at 2:54
Answered: Star Strider on 20 Apr 2021 at 12:10
I have two 26*1 matrixes of x and y. How can I fitt a power function like (y=bx^n) to the generated graph? I just have basic fitting tool in which there is no power function. So I think I should use an appropriate code. Appreciate it.
Cheers,

David Hill on 20 Apr 2021 at 3:09
If you have the curve fitting toolbox.
f=fit(x,y,'power1');

Star Strider on 20 Apr 2021 at 12:10
This uses only basic MATLAB functions. No Toolboxes are required.
x = 1:100; % Create Vector
y = rand(size(x)); % Create Vector
objfcn = @(b,x) b(1).*x.^b(2); % Objective Function
parms = fminsearch(@(b) norm(y - objfcn(b,x)), rand(2,1))
xv = linspace(min(x), max(x));
figure
plot(x, y, 'p')
hold on
plot(xv, objfcn(parms,xv), '-r')
hold off
title(sprintf('$y(x) = %.3f \\cdot x^{%.3f}$', parms), 'Interpreter','latex')
.