Tangent Basis¶

In [ ]:
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')
$\displaystyle \vec{e}_u=\left[\begin{matrix}1\\1\\2 v\end{matrix}\right]$
$\displaystyle \vec{e}_v=\left[\begin{matrix}1\\-1\\2 u\end{matrix}\right]$
$\displaystyle \vec{e}_w=\left[\begin{matrix}0\\0\\1\end{matrix}\right]$

Norms¶

In [ ]:
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_))}'))
$\displaystyle \vec{e}_u \cdot \vec{e}_u = \left[\begin{matrix}1\\1\\2 v\end{matrix}\right]\cdot\left[\begin{matrix}1\\1\\2 v\end{matrix}\right] = 4 v^{2} + 2$
$\displaystyle \vec{e}_v \cdot \vec{e}_v = \left[\begin{matrix}1\\-1\\2 u\end{matrix}\right]\cdot\left[\begin{matrix}1\\-1\\2 u\end{matrix}\right] = 4 u^{2} + 2$
$\displaystyle \vec{e}_w \cdot \vec{e}_w = \left[\begin{matrix}0\\0\\1\end{matrix}\right]\cdot\left[\begin{matrix}0\\0\\1\end{matrix}\right] = 1$

Orthogonality¶

In [ ]:
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_))}'))
$\displaystyle \vec{e}_u \cdot \vec{e}_v = \left[\begin{matrix}1\\1\\2 v\end{matrix}\right]\cdot\left[\begin{matrix}1\\-1\\2 u\end{matrix}\right] = 4 u v$
$\displaystyle \vec{e}_v \cdot \vec{e}_w = \left[\begin{matrix}1\\-1\\2 u\end{matrix}\right]\cdot\left[\begin{matrix}0\\0\\1\end{matrix}\right] = 2 u$
$\displaystyle \vec{e}_w \cdot \vec{e}_u = \left[\begin{matrix}0\\0\\1\end{matrix}\right]\cdot\left[\begin{matrix}1\\1\\2 v\end{matrix}\right] = 2 v$

Dual Basis¶

In [ ]:
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_)
$\displaystyle u = \frac{x + y}{2}$
$\displaystyle v = \frac{x - y}{2}$
$\displaystyle w = - \frac{x^{2} - y^{2} - 2 z}{2}$
In [ ]:
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)]))}'))
$\displaystyle \left[\begin{matrix}\vec{e}^u\\\vec{e}^v\\\vec{e}^w\end{matrix}\right]=\left[\begin{matrix}\frac{\hat{i}}{2} + \frac{\hat{j}}{2}\\\frac{\hat{i}}{2} - \frac{\hat{j}}{2}\\- \hat{i} x + \hat{j} y + \hat{k}\end{matrix}\right]$
$\displaystyle \left[\begin{matrix}\vec{e}^u\\\vec{e}^v\\\vec{e}^w\end{matrix}\right]=\left[\begin{matrix}\frac{\hat{i}}{2} + \frac{\hat{j}}{2}\\\frac{\hat{i}}{2} - \frac{\hat{j}}{2}\\- \hat{i} \left(u + v\right) + \hat{j} \left(u - v\right) + \hat{k}\end{matrix}\right]$