Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Topic: nlinfit
Replies: 1   Last Post: Mar 10, 2013 3:42 AM

 Marc Posts: 108 Registered: 7/2/10
Re: nlinfit
Posted: Mar 10, 2013 3:42 AM

"Samantha" wrote in message <khg172\$cdl\$1@newscl01ah.mathworks.com>...
> I am trying to nonlinear fit this equation:
>
> r=k'Ca + ((k Ka Ca)/(1+Ka Ca + Kw Cw))
>
> I have values for r, Ca, and Cw. I need to get k', k, Ka, and Kw. In Matlab I did this:
>
> I created an M file
>
> function f=order1(a,x1,x2)
> f=(a(1)*x1)+((a(2)*a(3)*x1)/(1+a(3)*x1+a(4)*x2));
>
> then in the workspace I defined
> f=[0; .0003; .0007; .0017; .0015; .0024; .002; .0025; .0031; .0073; .007]
> x1=[0; 2; 5; 8; 8.5; 8.75; 9; 9.25; 9.5; 9.75; 10]
> x2=[55.49; 44.88; 28.96; 13.03; 10.38; 9.05; 7.73; 6.40; 5.07; 3.75; 2.42]
>
> and my initial guesses
> a=[.0001 .025 .14 1.25]
>
> then a=nlinfit(x1,y,'order1',a)
>
> and I keep getting this error
> ??? Error using ==> nlinfit at 120
> Error evaluating model function 'order1'.
>
> Caused by:
> Input argument "x2" is undefined.
>
> I'm not really sure how to fix this, I though I defined x2. Any help on this would be greatly appreciated.
>
> Thank, Sam

I will have double check but I believe you need to set up x1 and x2 as a single variable, x = [x1 x2]... Thus needing to change your function to x(1) and x(2).