Derivative of a multivariate function handle
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have a function handle here with symbolic array variable 'y'. I would like to take derivative of the function for which I am using the eval function. But after this the symbolic array variable 'y' disappears and we have y1 and y2. So I cannot carry out the substitution as in the original function. Is there a way of preserving the symbolic array variable after differentiation? I need this as I will be using it later in fsolve. I actually have many such functions for which I would like to determine the variable array using fsolve later. The code below
syms y [1 2]
g = @(y) [y(1)*cos(y(2))+y(2)*sin(y(1))-0.5]
vpa(g([0.5 0.7]))
g1 = eval(['@(y)' char(-diff(g(y),y(1),1))])
g1([0.5 0.7])
0 Kommentare
Antworten (2)
nick
am 13 Okt. 2024
Hi Swami,
I understand that you want to create a function handle for the differentiated function in which values can be substituted. You can use 'matlabFunction' function to convert the symboic function into function handle, as shown:
syms y [1 2]
g = @(y) [y(1)*cos(y(2))+y(2)*sin(y(1))-0.5];
vpa(g([0.5 0.7]))
g_diff = diff(g(y),y(1));
g1 = matlabFunction(g_diff, 'Vars', {y});
g1([0.5 0.7])
You may refer to the following documentation to know more about 'matlabFunction' :
Siehe auch
Kategorien
Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!