You can use core MATLAB functions to do the regression:
x = ...
y = ...
fcn1 = @(b,x) b(1)./(b(2).*x + b(3));
fcn2 = @(b,x) b(1)./(b(2).*x);
SSECF = @(b) sum((y - fcn2(b,x)).^2);
B0 = [1; 1];
[B,SSE] = fminsearch(SSECF, [1; 1]);
xv = linspace(min(x), max(x));
figure(1)
plot(x, y, 'bp')
hold on
plot(xv, fcn2(B,xv), '-r')
hold off
grid
I tested this with random vectors and it ran without error.
EDIT — Note that the two-parameter model you want requires only one parameter. A simple ratio (or product) of parameters will not uniquely identify either of them, only the ratio (or product). The three-parameter model actually makes sense.
Best Answer