How do I solve for a implicit derivative?
Ältere Kommentare anzeigen
I need to solve for the implicit derivatives. How do have Matlab mark or view diff(u(x,y),y) as a variable that it needs to solver for?
Thanks
clear all
clc
syms x y u v;
u = sym('u(x,y)');
v = sym('v(x,y)');
g = x^2 - y^2 + u*v - v^2 +3;
h = x + y^2 + u^2 + u*v - 2;
x = 2;
y = 1;
a = diff(g)
b = diff(h)
c = diff(g,y)
d = diff(h,y)
u = -1
v = 2
[m n o p]=solve(a==0,b==0,c==0,d==0,diff(u(x,y),x),diff(u(x,y),y),diff(v(x,y),x), diff(v(x, y), y))
2 Kommentare
Walter Roberson
am 29 Okt. 2012
Caution #1: when you set "x = 2" after "syms x", then any expression in the symbol "x" will not have "2" substituted for "x". If you want that to happen, use subs()
Caution #2: it is much more robust to explicitly specify which variable you wish to differentiate with respect to.
Walter Roberson
am 22 Feb. 2016
They are correctly taking the derivative with respect to x.
Above the point at which the derivative is taken, there is the statement
y = 1;
That overwrites the meaning of y as symbolic in the MATLAB workspace, so when
c = diff(g,y)
is called, the call is
c = diff(g,1)
which asks for the derivative to be taken 1 time with respect to the default variable. The default variable, as determined by symvar() gives first priority to x, as noted in http://www.mathworks.com/help/symbolic/symvar.html#bs_eb_i-3 and the "Algorithms" section a few lines further down.
This is why you should avoid assigning to any variable that you previously defined as symbolic and used in an expression: there is too much chance of confusion over what value the name should have after that point. Use different names for different purposes, and use subs() if you are intentionally replacing names with values.
Antworten (1)
Walter Roberson
am 29 Okt. 2012
1 Stimme
You cannot tell the symbolic toolbox to solve for a differential expression. You need to solve for the function and then differentiate the expression. You might have to use dsolve() to solve for the function.
1 Kommentar
Mara Gati
am 24 Sep. 2018
Thanks for this!
Kategorien
Mehr zu Equation Solving finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!