from sympy import *
from IPython.display import display,Math
def showeqn(symb,expr,format):
from IPython.display import display, Math
if format=='eqn':
return display(Math(f'{symb}={latex(expr)}'))
elif format=='latex':
return print(f'{latex(symb)}={latex(expr)}')
elif format=='both':
print(f'{latex(symb)}={latex(expr)}')
display(Math(f'{symb}={latex(expr)}'))
return
x,y,z = symbols('x y z')
# x,y,z = symbols('x y z', cls=Function)
u,v,w = symbols('u v w')
eu_,ev_,ew_ = symbols(r'\vec{e}_u \vec{e}_v \vec{e}_w')
eu,ev,ew = symbols(r'\vec{e}^u \vec{e}^v \vec{e}^w')
x = u+v
y = u-v
z = 2*u*v+w
r_vec = symbols(r'\vec{r}')
r_vec = Matrix([x,y,z])
showeqn(eu_,diff(r_vec,u),'eqn')
showeqn(ev_,diff(r_vec,v),'eqn')
showeqn(ew_,diff(r_vec,w),'eqn')
eu_symbol,ev_symbol,ew_symbol = symbols(r'\vec{e}_u \vec{e}_v \vec{e}_w')
eu_ = diff(r_vec,u)
ev_ = diff(r_vec,v)
ew_ = diff(r_vec,w)
# eu_.dot(eu_)
display(Math(f'{latex(eu_symbol)} \cdot {latex(eu_symbol)} = {latex(eu_)}\cdot{latex(eu_)} = {latex(eu_.dot(eu_))}'))
display(Math(f'{latex(ev_symbol)} \cdot {latex(ev_symbol)} = {latex(ev_)}\cdot{latex(ev_)} = {latex(ev_.dot(ev_))}'))
display(Math(f'{latex(ew_symbol)} \cdot {latex(ew_symbol)} = {latex(ew_)}\cdot{latex(ew_)} = {latex(ew_.dot(ew_))}'))
display(Math(f'{latex(eu_symbol)} \cdot {latex(ev_symbol)} = {latex(eu_)}\cdot{latex(ev_)} = {latex(eu_.dot(ev_))}'))
display(Math(f'{latex(ev_symbol)} \cdot {latex(ew_symbol)} = {latex(ev_)}\cdot{latex(ew_)} = {latex(ev_.dot(ew_))}'))
display(Math(f'{latex(ew_symbol)} \cdot {latex(eu_symbol)} = {latex(ew_)}\cdot{latex(eu_)} = {latex(ew_.dot(eu_))}'))
from sympy import *
# Define the symbols
u, v, w, x, y, z = symbols('u v w x y z')
# Create the equations
eq1 = Eq(x, u + v)
eq2 = Eq(y, u - v)
eq3 = Eq(z, 2*u*v + w)
# Solve the equations for u, v, and w
solutions = solve((eq1, eq2, eq3), (u, v, w))
# Extract the solutions
u_expr = solutions[0][0]
v_expr = solutions[0][1]
w_expr = solutions[0][2]
eq1_ = Eq(u,u_expr)
eq2_ = Eq(v,v_expr)
eq3_ = Eq(w,w_expr)
display(eq1_,eq2_,eq3_)
X = Matrix([x,y,z])
i,j,k = symbols(r'\hat{i} \hat{j} \hat{k}')
b = Matrix([i,j,k])
gradu = Matrix([diff(u_expr,x),diff(u_expr,y),diff(u_expr,z)])
gradv = Matrix([diff(v_expr,x),diff(v_expr,y),diff(v_expr,z)])
gradw = Matrix([diff(w_expr,x),diff(w_expr,y),diff(w_expr,z)])
grad = Matrix([gradu.dot(b),gradv.dot(b),gradw.dot(b)])
display(Math(f'{latex(Matrix([eu,ev,ew]))}={latex(grad)}'))
display(Math(f'{latex(Matrix([eu,ev,ew]))}={latex(grad.subs([(x,u+v),(y,u-v),(z,2*u*v+w)]).subs([(x,u+v),(y,u-v),(z,2*u*v+w)]))}'))