How do I differentiate this function?

1 visualización (últimos 30 días)
Leandro Nitsch
Leandro Nitsch el 26 de Mzo. de 2019
Comentada: Torsten el 27 de Mzo. de 2019
Hi guys,
I am new to MATLAB and have the following problem: I programmed the following function
I took derivatives by hand but then I wanted MATLAB to take the derivatives for me with respect to independent variables K, NRC, X, R and NRM. Somehow I always get the following error message when using the diff function:
Error using sym/subsindex (line 769)
Invalid indexing or function definition. When defining a function, ensure that the arguments are symbolic
variables and the body of the function is a SYM expression. When indexing, the input must be numeric,
logical, or ':'.
Error in
@(K,NRC,NRM,R,X)Z*K^gamma((1-eta)*((1-alpha)*NRC^{EOS1}+alpha*(X^v+R^v)^{EOS1/v})^{EOS2/EOS1}+eta*NRM^{EOS2})^{(1-gamma)/EOS2}
Error in sym>funchandle2ref (line 1308)
S = x(S{:});
Error in sym>tomupad (line 1206)
x = funchandle2ref(x);
Error in sym (line 179)
S.s = tomupad(x);
Error in sym/privResolveArgs (line 921)
argout{k} = sym(arg);
Error in sym/diff (line 21)
args = privResolveArgs(S,varargin{:});
By the way my code is the following:
>> gamma=0.3;
eta=0.11;
alpha=0.3;
v=0.6;
EOS2=0.00001;
EOS1=-1;
Z=1;
syms K NRC NRM R X
Y=@(K,NRC,NRM,R,X) Z*K^gamma((1-eta)*((1-alpha)*NRC^{EOS1}+alpha*(X^v+R^v)^{EOS1/v})^{EOS2/EOS1}+eta*NRM^{EOS2})^{(1-gamma)/EOS2};
partial1 = diff(Y,K);
What am I doing wrong?
Thanks for your answer!

Respuesta aceptada

Torsten
Torsten el 26 de Mzo. de 2019
syms Z K gamma eta alpha NRC EOS1 v X R EOS2 NRM
Y= Z*K^gamma*((1-eta)*((1-alpha)*NRC^EOS1+alpha*(X^v+R^v)^(EOS1/v))^(EOS2/EOS1)+eta*NRM^(EOS2))^((1-gamma)/EOS2);
dYdK = diff(Y,K)
  2 comentarios
Leandro Nitsch
Leandro Nitsch el 27 de Mzo. de 2019
Hi Torsten,
Thank you for your anwer. I did what you suggested but am still getting the same error message :/
Torsten
Torsten el 27 de Mzo. de 2019
For me, the code as written works.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by