## Nonlinear least square regression

on 23 May 2013

### Eli Duenisch (view profile)

Hi all i have 17 observation (x and y) the relation between them as follows

y = 0.392 * (1 - (x / J)) ^ i

i want to use nonlinear least square regression to know J and i

## Products

No products are associated with this question.

### Eli Duenisch (view profile)

on 23 May 2013
Edited by Eli Duenisch

### Eli Duenisch (view profile)

on 23 May 2013

Do you have the statistics toolbox installed? It supports nonlinear regression - look for NonLinearModel.fit() in the docs.

Tom Lane

### Tom Lane (view profile)

on 24 May 2013

For modelfun: either write a function or use 'y ~ .392*(1-x/b1)^b2'. The function will be happier if you use names b1/b2 in place of J/I.

For beta0: give a two-element vector with your best guess at b1 and b2. This depends on your data. A good guess gives the function a better shot at solving the problem. If you have real data, you might consider something like b1=2*max(x) to avoid problems with complex numbers.

ameen

### ameen (view profile)

on 24 May 2013

thank you for your kind reply but i put my x values, then my y values, and put beta0=[0.65,1.1] then i write

mdl=nonlinearmodel.fit(x ,y ,'y=0.392*(1-x/b1)^b2',beta0)

and i received error message ' Undefined variable "nonlinearmodel" or class "nonlinearmodel.fit".'

Tom Lane

### Tom Lane (view profile)

on 24 May 2013

Try NonLinearModel.fit capitalized just that way. This should work in the most recent releases of MATLAB. Otherwise try nlinfit.

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi