Date: Jul 28, 2009 6:59 PM
Author: Andrea Asoni
Subject: derivatives, syms and fsolve
Hi,

I would like to define a function, take derivatives of this function and then solve the system of equations formed by putting these derivatives equal to zero. A simplified version of my problem is:

--------------------------------------------------

age =[12 13 14 15]; age=age';

sex =[1 1 0 0]; sex=sex';

syms a b;

lik= (a^2)*b.*age + (1/b).*sex

da=diff(lik,a); db=diff(lik,b)

D=[da; db]

x=[a b]

fun=@(x) D

init=[1 2]

fsolve(fun,init)

---------------------------------------------------

when I run this it gives me the error: "??? Conversion to double from sym is not possible."

I tried to add after "D=[da;db]" the line "D=double(D)" but it gives me another error "Error using ==> eval

Undefined function or variable 'a'."

I tried the function "double" in different places (on x, on D, on fun) but it always gives me an error message.

Anyone knows how to deal with this problem? How do I take derivatives and then solve the system?

Any help is very appreciated,

Andrea