How do I differentiate this function?

1 Ansicht (letzte 30 Tage)
Leandro Nitsch
Leandro Nitsch am 26 Mär. 2019
Kommentiert: Torsten am 27 Mär. 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!

Akzeptierte Antwort

Torsten
Torsten am 26 Mär. 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 Kommentare
Leandro Nitsch
Leandro Nitsch am 27 Mär. 2019
Hi Torsten,
Thank you for your anwer. I did what you suggested but am still getting the same error message :/
Torsten
Torsten am 27 Mär. 2019
For me, the code as written works.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by