\documentclass[11pt,a4paper,dvipsnames]{article}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{mathtools}
\usepackage{parskip}
\usepackage{xcolor}
\usepackage{tcolorbox}
\usepackage{hyperref}
\usepackage{geometry}
\usepackage{physics}
\usepackage{systeme,mathtools}
\usepackage[usestackEOL]{stackengine}
\usepackage{scalerel}
\usepackage{graphicx}
\usepackage{enumerate}
\usepackage{tikz}
\usepackage[labelfont=bf]{caption}
\usepackage{siunitx}
\usepackage{cancel}
\usepackage{fbox}
\usepackage{multicol}
\usepackage{amsthm}
\usepackage[shortlabels]{enumitem}
\usetikzlibrary{positioning}
\geometry{top=25mm}

% Plantilla per l'interior d'un conjunt
\newcommand{\interior}[1]{%
  {\kern0pt#1}^{\mathrm{o}}%
}

% Plantilles del notate
\def\myupbracefill#1{\rotatebox{90}{\stretchto{\{}{#1}}}
\def\rlwd{.5pt}
\newcommand\notate[4][B]{%
  \if B#1\else\def\myupbracefill##1{}\fi%
  \def\useanchorwidth{T}%
  \setbox0=\hbox{$\displaystyle#2$}%
  \def\stackalignment{c}\stackunder[-6pt]{%
    \def\stackalignment{c}\stackunder[-1.5pt]{%
      \stackunder[2pt]{\strut $\displaystyle#2$}{\myupbracefill{\wd0}}}{%
    \rule{\rlwd}{#3\baselineskip}}}{%
  \strut\kern9pt$\rightarrow$\smash{\rlap{$~#4$}}}%
}

% Plantilles dels boxes
%%%% START DEFINING LBOXED, RBOXED %%%%
\newcommand{\lboxed}[1]{\fbox[blt]{\mathsurround=0pt$\displaystyle#1$}}
\newcommand{\rboxed}[1]{\fbox[brt]{\mathsurround=0pt$\displaystyle#1$}}

% Plantilles pels problemes
\newcounter{problem}
\newcounter{solution}

\newcommand{\green}[1]{\textbf{\color{ForestGreen} #1}}

\newcommand{\separator}{\noindent\hfil\rule{0.75\textwidth}{0.4pt}\hfil}

\newenvironment{Problem}{%
    \stepcounter{problem}%
    \begin{tcolorbox}[colback=cyan!10!white,parbox=false]
        \textbf{Problem \theproblem.}~%
        \setcounter{solution}{0}}{%
    \end{tcolorbox}
}

\newenvironment{FreeProblem}{%
    \begin{tcolorbox}[colback=cyan!10!white,parbox=false]
        \setcounter{solution}{0}}{%
    \end{tcolorbox}
}

\newcommand\Solution{%
    \textbf{Solution:}\\%
}

\newcommand\Context{%
    \textbf{Context:}\\%
}

\newcommand\Lema{%
    \textbf{Lema:} %
}

\newcommand\Proposition{%
    \textbf{Proposition:} %
}

\newcommand\Theorem{%
    \textbf{Theorem:} %
}

\newcommand\Proof{%
    \textbf{Proof:}\\%
}

\newcommand\QED{\square}

\newcommand\ASolution{%
    \stepcounter{solution}%
    \textbf{Solution \thesolution:}\\%
}


\newcommand{\asection}[2]{
\setcounter{section}{#1}
\addtocounter{section}{-1}
\section{#2}
}

% Tensor commands:
\newcommand*{\TT}[1]{\bar{\bar{#1}}}

\usepackage{biblatex}
\addbibresource{references.bib}

\title{Homework 1\\Continuum Mechanics}
\author{Adrià Vilanova Martínez}
\date{March 20, 2021}

\begin{document}

\maketitle

\begin{Problem}
  Consider a passive rotation in 2D -a rotation of rectangular axis with common origin.

  \begin{enumerate}[a)]
      \item Show that the components of vector $A$ transform according to: \[ \begin{pmatrix}
      a_1 \\
      a_2
    \end{pmatrix} = \begin{pmatrix}
      \cos \theta & - \sin \theta \\
      \sin \theta & \cos \theta
    \end{pmatrix} \begin{pmatrix}
      a_1' \\
      a_2'
    \end{pmatrix} = \TT{B} \begin{pmatrix}
      a_1' \\
      a_2'
    \end{pmatrix} \] where $(a_1, a_2)$ are the components of $A$ in orthonormal basis $\{\hat{e}_1, \hat{e}_2\}$ and $(a_1', a_2')$ are the components of $A$ in orthonormal basis $\{\hat{e}_1', \hat{e}_2'\}$, which is rotated an angle $\theta$ relative to the unprimed basis.

    \item Confirm matrix $\TT{B}$ is orthonormal, that is, that its inverse is equal to its transpose. We could have anticipated that since $\TT{B}$ maps an orthonormal basis into an orthonormal basis, which implies the transformation and thus $\TT{B}$ is orthogonal.

    \item Confirm also that the columns and rows of matrix $\TT{B}$ form an orthonormal basis of $\mathbb{R}_2(\mathbb{R})$.

    This is general: a real $n \cross n$ matrix is orthonormal if and only if its rows and columns each form an orthonormal basis of $\mathbb{R}_n(\mathbb{R})$.

    \item Realize that $\det \TT{B} = 1$, as expected for an orthogonal matrix representing a rotation. In fact, any $2 \cross 2$ orthogonal matrix with determinant 1 corresponds to a rotation (the same applies to 3D). Additionally, any $2 \cross 2$ orthogonal matrix with determinant -1 corresponds to a reflection through a line (in 3D, the statement affirms that a reflection is involder -an orthogonal $3 \cross 3$ matrix with determinant -1 thus corresponds to an improper rotation).
  \end{enumerate}
\end{Problem}

\textbf{Solution for a):}

Since we know from affine geometry courses that rotations are linear transformations, in order to check that matrix \[ A := \begin{pmatrix}
  \cos \theta & - \sin \theta \\
  \sin \theta & \cos \theta
\end{pmatrix} \] is the transformation matrix which transforms the representation of vectors in orthonormal basis $E' = \{\hat{e}_1', \hat{e}_2'\}$ to their representation in orthonormal basis $E = \{\hat{e}_1, \hat{e}_2\}$, we know from linear algebra courses that it suffices to show that it correctly maps the vectors which form basis $E'$ to their corresponding images.

We know that $\hat{e}_1' = (0, 1)_{E'}$ is the vector $\hat{e}_1 = (0, 1)_E$ rotated by angle $\theta$. Therefore, \[ \hat{e}_1' = (\cos \theta, \sin \theta)_E \] by using the polar coordinates parametrization of $e_1'$.

Also, we know that $\hat{e}_2'$ is the vector $\hat{e}_2$ rotated by angle $\theta$, and also that since $E$ is a direct orthonormal basis of $\mathbb{R}^2$, vector $\hat{e}_2$ is vector $\hat{e}_1$ rotated by $\frac{\pi}{2}$ radians. Therefore, by the same argument used above, \[ \hat{e}_2' = \left(\cos (\theta + \frac{\pi}{2}), \sin (\theta + \frac{\pi}{2})\right)_E = (- \sin \theta, \cos \theta)_E \] where we've used the trigonometric identities $\cos (x + \frac{\pi}{2}) = - \sin x$ and $\sin (x + \frac{\pi}{2}) = \cos x$.

By calculating $A \hat{e}_1'$ and $A \hat{e}_2'$ we can check that the results are the same as what we have found before.

\textbf{Solution for b):}

\[ \TT{B} \text{ orthonormal} \iff \TT{B}^{-1} = \TT{B}^T \iff \TT{B}^T \TT{B} = \TT{I} \]

Let's calculate $\TT{B}^T \TT{B}$:

\[ \TT{B}^T \TT{B} = \begin{pmatrix}
  \cos \theta & \sin \theta \\
  - \sin \theta & \cos \theta
\end{pmatrix} \begin{pmatrix}
  \cos \theta & - \sin \theta \\
  \sin \theta & \cos \theta
\end{pmatrix} = \]
\[ = \begin{pmatrix}
  \cos^2 \theta + \sin^2 \theta & - \sin \theta \cos \theta + \sin \theta \cos \theta \\
  - \sin \theta \cos \theta + \sin \theta \cos \theta & \cos^2 \theta + \sin^2 \theta
\end{pmatrix} = \begin{pmatrix}
  1 & 0 \\
  0 & 1
\end{pmatrix} = Id \]

Therefore, $\TT{B}$ is orthonormal.

\textbf{Solution for c):}

Let's show that columns $v_1 = (\cos \theta, \sin \theta)$ and $v_2 = (- \sin \theta, \cos \theta)$ (we assume they are expressed in basis $E$) form an orthonormal basis, by definition of an orthonormal basis:
\[ \begin{cases}
  (v_1, v_1) = \cos^2 \theta + \sin^2 \theta = 1 \\
  (v_1, v_2) = - \sin \theta \cos \theta + \sin \theta \cos \theta = 0 \\
  (v_2, v_2) = \sin^2 \theta + \cos^2 \theta = 1
\end{cases} \]
Therefore, they form an orthonormal basis.

Let's check it for the row vectors $\tilde{v}_1 = (\cos \theta, - \sin \theta)$, $\tilde{v}_2 = (\sin \theta, \cos \theta)$ too:
\[ \begin{cases}
  (\tilde{v}_1, \tilde{v}_1) = \cos^2 \theta + \sin^2 \theta = 1 \\
  (\tilde{v}_1, \tilde{v}_2) = \sin \theta \cos \theta - \sin \theta \cos \theta = 0 \\
  (\tilde{v}_2, \tilde{v}_2) = \sin^2 \theta + \cos^2 \theta = 1
\end{cases} \]
Therefore, $\{\tilde{v}_1, \tilde{v}_2\}$ also form an orthonormal basis.

\textbf{Solution for d):}

\[ \det \TT{B} = \cos^2 \theta + \sin^2 \theta = 1 \]

The fact that any $2 \times 2$ orthogonal matrix with determinant 1 represents a rotation and with determinant -1 represents a reflection through a line (and their equivalent statements in 3D) is proved in \cite{geo}.

\begin{Problem}
  Consider $\TT{B} = \vec{u} \vec{v}$. Show that $\TT{B} \cdot \vec{w} = \vec{u} (\vec{v} \cdot \vec{w})$.

  We often think of the direct product between vectors in terms of its action on a vector. Note how this way of thinking about it directly shows that, in general, the direct product is not commutative: $\vec{u} \vec{v} \neq \vec{v} \vec{u}$.
\end{Problem}

\Solution

Using Einstein summation convention:

\[ \TT{B}_{ij} = (\vec{u} \vec{v})_{ij} = u_i v_j \implies (\TT{B} \cdot \vec{w})_i = B_{ij} w_k \delta_{jk} = B_{ij} w_j = u_i v_j w_j \]
\[ (\vec{v} \cdot \vec{w})_j = v_i w_j \delta_{ij} = v_j w_j \implies (\vec{u} (\vec{v} \cdot \vec{w}))_i = u_i v_j w_j \]

Given that we've shown that each component of both vectors in a specific basis are equal to each other, we have proven that in fact both vectors are equal to each other, thus proving the statement.

\begin{Problem}
  Consider a second rank tensor $\TT{B}$ written in terms of the $\{ \hat{e}_i, \hat{e}_j \}$ basis. Show that $\hat{e}_i \cdot \TT{B} \cdot \hat{e}_j = B_{ij}$ (the $i, j$ component of tensor $\TT{B}$).

  Note this is the tensor expression analogous to the vector expression giving the $i$ component of, say, vector $u$: $u_i = \hat{e}_i \cdot \vec{u}$. In continuum mechanics, we will ofteh consider the $i, j$ component of the stress tensor; it represents the $i$ component of the force (that is, the force along $\hat{e}_i$) per unit area acting on a surface element oriented along direction $j$ (that is, on a surface element with normal along $\hat{e}_j$).

  Note: In quantum mechanics, we often write this tensor expression using bra-kets: $B_{ij} = \langle \hat{e}_i | \TT{B} | \hat{e}_j \rangle$. In this context, we think of $\TT{B}$ as an operator. The quantity $\langle \hat{e}_i | \TT{B} | \hat{e}_j \rangle$ equals the expectation value of the observable represented by operator $\TT{B}$ in quantum state $| \hat{e}_i \rangle$.
\end{Problem}

\[ (\hat{e}_i \cdot \TT{B})_m = \delta_{ik} B_{lm} \delta_{kl} = B_{im} \implies \]
\[ \implies \hat{e}_i \cdot \TT{B} \cdot \hat{e}_j = B_{im} \delta_{nj} \delta_{mn} = B_{ij} \]

\begin{Problem}
  We have stated in class that the symmetry and antisymmetry of second rank tensors are tensor properties, that is, properties that are independent of coordinate system.

  To show this is the case for the symmetry property, first consider how second rank tensors transform. Then assume the tensor is symmetric in the unprimed basis to then show this is also true in the primed basis.
\end{Problem}

Let's consider a change of basis for a second rank tensor. If $S$ is the change of basis matrix (from basis $B'$ to $B$) and $A$, $A'$ are the matrix representations of a second rank tensor in basis $B$ and $B'$ respectively, we have that:\cite{multi} \[ A' = S^t A S. \]

Therefore: \[ A'^t = (S^t A^t S)^t = S^t A S = A' \] using the property $(AB)^t = B^t A^t$.

\begin{Problem}
  Use index notation to show that $\TT{B} : \TT{C} = \Tr(\TT{B} \cdot \TT{C})$, where $\TT{B}$ and $\TT{C}$ are second rank tensors.
\end{Problem}

\[ \TT{B} : \TT{C} = B_{ij} C_{kl} \delta_{jk} \delta_{il} = B_{ij} C_{ji} \]
\[ (\TT{B} \cdot \TT{C})_{il} = B_{ij} C_{kl} \delta_{jk} = B_{ij} C_{jl} \implies \Tr(\TT{B} \cdot \TT{C}) = \sum_i (\TT{B} \cdot \TT{C})_{ii} = B_{ij} C_{ji} \]

\begin{Problem}
  Use the quotient rule to show that torque is a second rank tensor.
\end{Problem}

In class we saw $\tau_{ij} = r_i F_j - r_j F_i$. The quotient rule for second rank vectors states that if we show that for every vector $v_j$ the quantities $u_i := \sum_j T_{ij} v_j$ are the components of a non-zero vector, then $T_{ij}$ are the components of a second rank tensor. It's sufficient to show this for a unit non-zerovector $\hat{e}$. Using Einstein's summation convention:  \[ u_i = T_{ij} \hat{e}_j = (r_i F_j - r_j F_i) \hat{e}_j = r_i (\vec{F} \cdot \hat{e}) - F_i (\vec{r} \cdot \hat{e}) \]

The two last terms are component i of 2 vectors, and so is their difference. Therefore, by the quotient rule, this proves that torque is a second rank tensor.

\newpage

\begin{Problem}
  Prove that $(\vec{u'} \cross \vec{v'})_\alpha = (\det \TT{A}) a_{\alpha i} (\vec{u} \cross \vec{v})_i$, where $\TT{A} = \{ a_{ij} \}$ is an orthogonal transformation from the unprimed to the primed basis. This shows the cross product between two (polar) vectors is a pseudovector.

  It follows that the scalar $\vec{w} \cdot (\vec{u} \cross \vec{v})$, where $u$, $v$ and $w$ are (polar) vectors, is a pseudoscalar. Show this.
\end{Problem}

As we saw in class: \[ (\vec{a} \cross \vec{b})_i = \varepsilon_{ijk} a_j b_k, \]
\[ \varepsilon'_{\alpha \beta \gamma} = \det \TT{A} a_{\alpha i} a_{\beta j} a_{\gamma k} \varepsilon_{ijk} \]

Since $\TT{A}$ is the orthogonal transformation from the unprimed to the primed basis, we have that $\TT{A} \cdot \vec{u} = \vec{u'}$ and $\TT{A} \cdot \vec{v} = \vec{v'}$. This means that: \[ (\vec{u'})_i = (\TT{A} \cdot \vec{u})_i = a_{ij} u_k \delta_{jk} = a_{ik} u_k \] and \[ (\vec{v'})_i = a_{ik} v_k. \]

Then:
\[ \text{LHS} = (\vec{u'} \cross \vec{v'})_\alpha = (\det \TT{A}) a_{\alpha i} a_{\beta j} a_{\gamma k} a_{\beta m} a_{\gamma n} \varepsilon_{ijk} u_m v_n \]
We have that columns of orthogonal matrix $\TT{A}$ make an orthonormal triad ($a_{ij} a_{ik} = \delta_{ik}$), so:
\[ \text{LHS} = (\det \TT{A}) a_{\alpha i} \delta_{jm} \delta_{kn} \varepsilon_{ijk} u_m v_n = (\det \TT{A}) a_{\alpha i} \varepsilon_{imn} u_m v_n = (\det \TT{A}) a_{\alpha i} (\vec{u} \cross \vec{v})_i = RHS \]

\printbibliography

\end{document}
