Infinitesimal RigidityΒΆ

Definition 6 (Rigidity matrix)

Let \((G, p)\) be a \(d\)-dimensional framework with \(G = (V, E)\). The rigidity matrix \(R(G, p)\) of \((G, p)\) is the \(|E| \times d|V|\) matrix whose row labelled by \(uv \in E\) is

\[\begin{equation*} \begin{array}{rccccccccccccl} & & & & u & & & & v \\ ( & 0 & \cdots & 0 & p_u - p_v & 0 & \cdots & 0 & p_v - p_u & 0 & \cdots & 0 &) \,. \end{array} \end{equation*}\]

PyRigi: rigidity_matrix()

Definition 7 (Infinitesimal flexes)

Let \((G, p)\) be a \(d\)-dimensional framework with \(G = (V, E)\). An infinitesimal flex of \((G, p)\) is a collection \((q_v)_{v \in V}\) of elements in \(\RR^n\) such that

\[\begin{equation*} (p_u - p_v) \cdot (q_u - q_v) = 0 \quad \text{for all } uv \in E\,. \end{equation*}\]

In other words, if we form a \(d|V| \times 1\) vector \(q\) out of an infinitesimal flex, then \(q\) lies in the kernel of the rigidity matrix \(R(G, p)\).

PyRigi: inf_flexes()

Definition 8 (Trivial infinitesimal flexes)

Let \((G, p)\) be a \(d\)-dimensional framework with \(G = (V, E)\). A trivial infinitesimal flex is any element of the vector subspace of \(\RR^{d|V|}\) generated by the following elements:

  • \((e_i)_{v \in V}\) where \(e_i\) is the \(i\)-th element of the standard basis of \(\RR^d\);

  • \((A \cdot p_v)_{v \in V}\) where \(A\) is any \(d \times d\) skew-symmetric matrix.

An infinitesimal flex that is not trivial is called a nontrivial infinitesimal flex.

PyRigi: trivial_inf_flexes() nontrivial_inf_flexes()

Definition 9 (Infinitesimally rigid frameworks)

A framework is called infinitesimally rigid, if all its infinitesimal flexes are trivial. A framework is called infinitesimally flexible, if it is not infinitesimally rigid.

Let \((G, p)\) be a \(d\)-dimensional framework with \(G = (V, E)\). If \(|V| \geq d+1\), the framework \((G, p)\) is infinitesimally rigid if and only if the rigidity matrix \(R(G, p)\) has rank \(d|V| - \binom{d+1}{2}\). If \(|V| \leq d+1\), the framework \((G, p)\) is infinitesimally rigid if and only if \(G\) is complete, \(p\) is injective and the set \(\{ p_v \, : \, v \in V\}\) is affinely independent.

PyRigi: is_inf_rigid()

Definition 10 (Regular frameworks)

A \(d\)-dimensional framework \((G, p)\) is called regular if

\[\begin{equation*} \mathrm{rk} \, R(G, p) \geq \mathrm{rk} \, R(G, p') \end{equation*}\]

for any other \(d\)-dimensional framework \((G, p')\).

Definition 11 (Independent framework)

A \(d\)-dimensional framework \((G, p)\) with \(G = (V, E)\) is called independent if \(\mathrm{rk} \, R(G, p) = |E|\).

Definition 12 (Isostatic frameworks)

A framework \((G, p)\) is called isostatic if it is infinitesimally rigid and independent.

Definition 13 (Minimally rigid frameworks)

Let \((G,p)\) be a \(d\)-dimensional framework. The framework \((G, p)\) is called minimally (infinitesimally) \(d\)-rigid if removing any edge from \(G\) yields an (infinitesimally) flexible framework.

PyRigi: is_min_inf_rigid()