How to find gradient of a vector field in matlab symbolic
24 views (last 30 days)
Show older comments
I am trying to find gradient of a vector field in matlab symbolic , whose output will be matrix but it am getting error
2 Comments
Accepted Answer
Walter Roberson
on 12 Dec 2023
Moved: Walter Roberson
on 12 Dec 2023
The fundamental problem you are having is that gradient does not accept a vector the first parameter.
syms x y z
syms u(x,y,z) v(x,y,z) w(x,y,z)
V = [u(x,y,z) v(x,y,z) w(x,y,z)];
S = [x y z];
temp = arrayfun(@(EXPR) gradient(EXPR,S), V, 'uniform', 0);
result(x,y,z) = [temp{:}]
0 Comments
More Answers (2)
Sulaymon Eshkabilov
on 12 Dec 2023
If you assign an expression for V, you will get this:
clc ; clearvars
syms x y z
syms u(x,y,z) v(x,y,z) w(x,y,z)
V(x,y,z) = 2*u+3*v-w % Some e.g. expression
S = [x y z];
du = gradient(u,S)
dV = gradient(V,S)
% OR simply
dV= gradient(V,[x,y,z])
1 Comment
Dyuman Joshi
on 12 Dec 2023
V is not a combination of u, v and w, but an array with u, v and w as elements.
See Also
Categories
Find more on Symbolic Math Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!