在古典力學裏，假如，一個系統有任何約束是**非完整約束**，則稱此系統為**非完整系統**。非完整約束不是完整約束。完整約束可以用方程式表示為

f(x\_{1},\ x\_{2},\ x\_{3},\ \dots ,\ x\_{N},\ t)=0；
這裏，f是每一個粒子P\_i之位置x\_{i}和時間t的函數。非完整約束不能夠用上述方程式表示。

廣義坐標的轉換
-------

完整約束方程式與位置、時間有關，與速度無關。完整約束方程式可以很簡易地除去指定的變數。假設變數x\_{d}是完整約束函數f\_{k}裏的一個參數，現在指定除去x\_{d}。重新編排上述約束方程式，求出表示x\_{d}的函數g\_{k}：

x\_{d}=g\_{k}(x\_{1},\ x\_{2},\ x\_{3},\ \dots ,\ x\_{{d-1}},\ x\_{{d+1}},\ \dots ,\ x\_{N},\ t)。
將函數g\_{k}代入所有提到x\_{d}的方程式。這樣，可以除去所有指定變數x\_{d}。

假設一個物理系統原本的自由度是N。現在，將h個完整約束作用於此系統。那麼，這系統的自由度減少為m=N-h。可以用m個獨立廣義座標(q\_{1},\ q\_{2},\ \dots ,\ q\_{m})來完全描述這系統的運動。座標的轉換方程式可以表示如下：

x\_{i}=x\_{i}(q\_{1},\ q\_{2},\ \dots ,\ q\_{m},\ t)\ ,\qquad \qquad \qquad i=1,\ 2,\ 3,\ \dots N。
換句話說，由於非完整約束無法依照上述方法，來除去其所含廣義座標，完全描述非完整系統，所需要的廣義座標數目，大於自由度。

微分形式表示
------

約束有時可以用微分形式的約束方程式來表示。思考第i個約束的微分形式的約束方程式：

\sum \_{j}\ c\_{{ij}}dq\_{j}+c\_{i}dt=0；
這裏，c\_{{ij}}，c\_{i}分別為微分dq\_{j}與dt的係數。

假若此約束方程式是可積分的。也就是說，有一個函數f\_{i}(q\_{1},\ q\_{2},\ q\_{3},\ \dots ,\ q\_{N},\ t)=0的全微分滿足下述等式：

df\_{i}=\sum \_{j}\ c\_{{ij}}dq\_{j}+c\_{i}dt=0；
那麼，此約束是完整約束；否則，此約束是非完整約束。因此，所有的完整約束與某些非完整約束可以用微分形式的方程式來表示。不是所有的非完整約束都可以這樣表示。含有廣義速度的非完整約束就不能這樣表示。所以，假若知道一個約束的微分形式的約束方程式，這約束到底是完整約束，還是非完整約束，需要看微分形式的約束方程式能否積分來決定。

半完整系統
-----

表示非完整約束的方程式往往比較複雜。因此，非完整系統也比較難分析，只有簡易一點的非完整系統能用形式論來分析。假如，一個非完整系統的約束可以用以下方程式表示：

f\_{i}(q\_{1},\ q\_{2},\ \dots ,\ q\_{N},\ {\dot {q}}\_{1},\ {\dot {q}}\_{2},\ \dots ,\ {\dot {q}}\_{N})=0\ ,\qquad \qquad \qquad i=1,\ 2,\ 3,\ \dots n；
則稱此系統為**半完整系統**；這裏，{\dot {q}}\_{j}是廣義速度。

半完整系統可以用拉格朗日形式論來分析。更具體地說，分析半完整系統必須用到拉格朗日乘子\lambda\_i

\sum \_{{i=1}}^{n}\ \lambda \_{i}f\_{i}=0；
這裏，\lambda \_{i}=\lambda \_{i}(q\_{1},\ q\_{2},\ \dots ,\ q\_{N},\ {\dot {q}}\_{1},\ {\dot {q}}\_{2},\ \dots ,\ {\dot {q}}\_{N},\ t)是未知函數。

假設哈密頓原理成立，則下述方程式成立：

\delta \int \_{{t\_{1}}}^{{t\_{2}}}\ L\ dt=0；
這裏，L是拉格朗日量，t\_{1} 與t\_{2}分別為積分的時間下限與上限。經過變分法運算，可以得到方程式

\int \_{{t\_{1}}}^{{t\_{2}}}\ \sum \_{j}\ \left({\frac {\partial L}{\partial q\_{j}}}-{\frac {d}{dt}}\left({\frac {\partial L}{\partial {\dot {q}}\_{j}}}\right)\right)\delta q\_{j}\ dt=0。
由於這N個廣義座標中，仍舊有n個不獨立廣義座標，不能將拉格朗日方程式提取出來；必須加入拉格朗日乘子項目：

\delta \int \_{{t\_{1}}}^{{t\_{2}}}\ \left(L+\sum \_{{i=1}}^{n}\ \lambda \_{i}f\_{i}\right)\ dt=0。
經過變分法運算，可以得到方程式

\int \_{{t\_{1}}}^{{t\_{2}}}\ \sum \_{j}\ \left({\frac {\partial L}{\partial q\_{j}}}-{\frac {d}{dt}}\left({\frac {\partial L}{\partial {\dot {q}}\_{j}}}\right)+{\mathcal {F}}\_{j}\right)\delta q\_{j}\ dt=0 ;
這裏，{\mathcal {F}}\_{j}是廣義力的j分量：

{\mathcal {F}}\_{j}=\sum \_{i}\ \left[{\frac {\partial (\lambda \_{i}f\_{i})}{\partial q\_{j}}}-{\frac {d}{dt}}\left({\frac {\partial (\lambda \_{i}f\_{i})}{\partial {\dot {q}}\_{j}}}\right)\right]。
雖然還有n個不獨立廣義座標，仍舊可以調整n加入的拉格朗日乘子，使總和公式內的每一個虛位移\delta q\_{j}的係數都等於0。因此，

{\frac {d}{dt}}\left({\frac {\partial L}{\partial {\dot {q}}\_{j}}}\right)-{\frac {\partial L}{\partial q\_{j}}}={\mathcal {F}}\_{j}。
這N個方程式加上n個約束方程式，給予了N+n個方程式來解N個未知廣義座標與n個拉格朗日乘子。

實例
--

非完整系統至少存在於以下三個狀況：

1. 物體在做滾動運動。
2. 系統的約束包括不等式。
3. 系統的約束與速度有關（例如普法夫約束）。

參閱
--

* 拉格朗日力學
* 哈密頓力學
* 完整系統
* 定常系統
* 單演系統
* 保守系統
* 平行停車問題
* 落貓問題
* 自行車及摩托車的動力學

參考文獻
----

1. ↑  Goldstein, Herbert.  3rd. United States of America: Addison Wesley. 1980: pp. 46–47. ISBN 0201657023 （英语）.  引文格式1维护：冗余文本 (link)

* Jack Sarfatti.  (PDF). Pedagogical Review from the Classics of Physics. 2000-03-26. （原始内容 (PDF)存档于2007-10-20） （英语）.