Plotting a velocity vector field
131 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Talha Yagli
am 7 Jan. 2023
Kommentiert: Talha Yagli
am 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 Kommentare
Paul
am 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
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.
Akzeptierte Antwort
Paul
am 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_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])
icomp = matlabFunction(velocity_iComp,Vars = {'x' 'y' 'z'})
jcomp = matlabFunction(velocity_jComp,Vars = {'x' 'y' 'z'})
kcomp = matlabFunction(velocity_kComp,Vars = {'x' 'y' 'z'})
[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')
Weitere Antworten (0)
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!