Plotting a velocity vector field

89 views (last 30 days)
Talha Yagli
Talha Yagli on 7 Jan 2023
Commented: Talha Yagli on 7 Jan 2023
I am trying to plot a velocity vector filed that taken from the user as an input
syms x y z i j k
velocity=(input("velocity:","s")) %example (x^2+y*z)*i+((z^3)*4*y)*j+(y^2)*k
convertCharsToStrings(velocity);
velocity_eq=inline(velocity,"x","y","z","i","j","k");
velocity_iComp=symfun(velocity_eq(x,y,z,1,0,0),[x,y,z]); % these are i j k componenets of the vector
velocity_jComp=symfun(velocity_eq(x,y,z,0,1,0),[x,y,z]);
velocity_kComp=symfun(velocity_eq(x,y,z,0,0,1),[x,y,z]);
that is how ı get the vector field equation from the user
lenghtV=sqrt(velocity_iComp.^2+velocity_jComp.^2+velocity_kComp.^2) % lenght formula of each vector on field
how can ı plot this symbolic vector field equation
  2 Comments
Paul
Paul on 7 Jan 2023
syms x y z i j k
%velocity=(input("velocity:","s")) %example (x^2+y*z)*i+((z^3)*4*y)*j+(y^2)*k
velocity = '(x^2+y*z)*i+((z^3)*4*y)*j+(y^2)*k';
velocity = convertCharsToStrings(velocity);
velocity_eq=inline(velocity,"x","y","z","i","j","k");
velocity_iComp=symfun(velocity_eq(x,y,z,1,0,0),[x,y,z]); % these are i j k componenets of the vector
velocity_jComp=symfun(velocity_eq(x,y,z,0,1,0),[x,y,z]);
velocity_kComp=symfun(velocity_eq(x,y,z,0,0,1),[x,y,z]);
lenghtV=sqrt(velocity_iComp.^2+velocity_jComp.^2+velocity_kComp.^2) % lenght formula of each vector on field
lenghtV(x, y, z) = 
We have a scalar function of 3 variables. How would you like to visualize this function? This doc page may be a good place to start.
Talha Yagli
Talha Yagli on 7 Jan 2023
I'd like to achive a something like this. Also the equation above is a vector;
(example)
Basicly it is a 3 variable vector field equation, my purpose is to plot this symblolic equation

Sign in to comment.

Accepted Answer

Paul
Paul on 7 Jan 2023
Here is how you can plot what I thinkg your want using quiver3 over a 3D cube. Should be able to adapt it as needed. Check its doc page or this one or the one linked above for more details and other options.
syms x y z i j k
%velocity=(input("velocity:","s")) %example (x^2+y*z)*i+((z^3)*4*y)*j+(y^2)*k
velocity = '(x^2+y*z)*i+((z^3)*4*y)*j+(y^2)*k';
velocity = convertCharsToStrings(velocity);
velocity_eq=inline(velocity,"x","y","z","i","j","k");
velocity_iComp=symfun(velocity_eq(x,y,z,1,0,0),[x,y,z]) % these are i j k componenets of the vector
velocity_iComp(x, y, z) = 
velocity_jComp=symfun(velocity_eq(x,y,z,0,1,0),[x,y,z])
velocity_jComp(x, y, z) = 
velocity_kComp=symfun(velocity_eq(x,y,z,0,0,1),[x,y,z])
velocity_kComp(x, y, z) = 
icomp = matlabFunction(velocity_iComp,Vars = {'x' 'y' 'z'})
icomp = function_handle with value:
@(x,y,z)y.*z+x.^2
jcomp = matlabFunction(velocity_jComp,Vars = {'x' 'y' 'z'})
jcomp = function_handle with value:
@(x,y,z)y.*z.^3.*4.0
kcomp = matlabFunction(velocity_kComp,Vars = {'x' 'y' 'z'})
kcomp = function_handle with value:
@(x,y,z)y.^2
[X,Y,Z] = meshgrid(0:.2:1,0:.2:1,0:.2:2);
U = icomp(X,Y,Z);
V = jcomp(X,Y,Z);
W = kcomp(X,Y,Z);
quiver3(X,Y,Z,U,V,W)
xlabel('X'),ylabel('Y'),zlabel('Z')
  1 Comment
Talha Yagli
Talha Yagli on 7 Jan 2023
Thank you very much for your attention I have been working on this for days

Sign in to comment.

More Answers (0)

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!