10.2 工程学中的矩阵

发布于:2025-08-31 ⋅ 阅读:(24) ⋅ 点赞:(0)

一、工程学中的矩阵介绍

这一节介绍的是工程学中的对称矩阵 KKK(通常 KKK 是正定的)。线性代数中研究对称正定矩阵,我们将其写成 K=ATAK=A^TAK=ATAK=ATCAK=A^TCAK=ATCA;物理学中,12uTKu\dfrac{1}{2}\boldsymbol u^TK\boldsymbol u21uTKu 表示的是能量,能量不可能是负数。其中矩阵 CCC,通常是对角矩阵,其元素表示的是正的物理常数,如电导率(conductance)、刚度(stiffness)或扩散率(diffusivity)。
最好的例子来自于机械工程、土木工程和航空工程。KKK刚度矩阵(stiffness matrix)K−1fK^{-1}\boldsymbol fK1f 是系统对外力 f\boldsymbol ff 的响应。
工程中有两种涉及到线性代数方式,直接的和间接的:
直接方式: 物理问题仅涉及到有限个物体。描述位置和速度的物理定律是线性的(物体的质量不能太大速度不能太快),此时的物理定律可用矩阵方程来描述。
间接方式: 物理系统是 “连续的”。虽然物体的个数有限,但是密度、力和速度是 xxxx,yx,yx,yx,y,zx,y,zx,y,z 的函数,物理定律要用微分方程来表示。为了求得高精度解,我们通常用有限差分方程或有限元方程(finite element equation)来逼近原方程。
这两种方式都会涉及矩阵方程和线性代数。如果没有矩阵,那么在现代工程中什么也做不了。
首先介绍的是平衡方程(equilibrium equation)Ku=fK\boldsymbol u=\boldsymbol fKu=f. 如果考虑运动,则会变成动态方程 Md2udt2+Ku=fM\dfrac{\textrm d^2\boldsymbol u}{\textrm dt^2}+K\boldsymbol u=\boldsymbol fMdt2d2u+Ku=f,这是需要使用 Kx=λMxK\boldsymbol x=\lambda M\boldsymbol xKx=λMx 对应的特征值或有限差分来求解。

二、从微分方程到矩阵方程

微分方程是连续的,我们的例子是方程 −d2udx2=f(x)-\dfrac{\textrm d^2u}{\textrm dx^2}=f(x)dx2d2u=f(x). 矩阵方程是离散的,我们的例子是 K0u=fK_0\boldsymbol u=\boldsymbol fK0u=f. 通过将二阶导数变成二阶差分,可以将其转换成相应的离散方程。我们先从两个端点 x=0x=0x=0x=1x=1x=1 固定的这样的边值条件开始:

Fix-fixed boundary value problem两端固定边值问题−d2udx2=1,且 u(0)=0,u(1)=0(10.2.1)\begin{matrix}\pmb{\textrm{Fix-fixed\,boundary\,value\,problem}}\\\pmb{两端固定边值问题}\end{matrix}\kern 20pt{\color{blue}-\dfrac{\textrm d^2u}{\textrm dx^2}=1,且\,u(0)=0,u(1)=0}\kern 25pt(10.2.1)Fix-fixedboundaryvalueproblem两端固定边值问题dx2d2u=1,u(0)=0,u(1)=0(10.2.1)

这个微分方程是线性,它的一个特解是 xp=−12x2x_p=-\dfrac{1}{2}x^2xp=21x2(满足 d2udx2=−1\dfrac{\textrm d^2u}{\textrm dx^2}=-1dx2d2u=1),然后加上其 “零空间” 中的任意函数,即求齐次方程 −d2udx2=0-\dfrac{\textrm d^2u}{\textrm dx^2}=0dx2d2u=0 的解 xn(x)x_n(x)xn(x),它就是 Ax=0A\boldsymbol x=\boldsymbol 0Ax=0 零空间向量 x\boldsymbol xx.
零空间的解是 un(x)=C+Dxu_n(x)=C+Dxun(x)=C+Dx(二阶常微分方程的零空间是二维的),通解(complete solution)就是 up+unu_p+u_nup+un

−d2udx2=1的通解是u(x)=−12x2+C+Dx(10.2.2)\pmb{-\dfrac{\textrm d^2u}{\textrm dx^2}=1\kern 6pt\pmb{的通解是}}\kern 10pt{\color{blue}u(x)=-\dfrac{1}{2}x^2+C+Dx}\kern 20pt(10.2.2)dx2d2u=1的通解是u(x)=21x2+C+Dx(10.2.2)

下面通过两个边界条件来求解 CCCDDD:令 x=0x=0x=0x=1x=1x=1. 在 x=0x=0x=0u(0)=0u(0)=0u(0)=0C=0\pmb{C=0}C=0;在 x=1x=1x=1u(1)=0u(1)=0u(1)=0−12+D=0-\dfrac{1}{2}+D=021+D=0,所以 D=12\pmb{D=\dfrac{1}{2}}D=21u(x)=−12x2+12x=12(x−x2)是这个两端固定边值问题的解.(10.2.3)u(x)=-\dfrac{1}{2}x^2+\dfrac{1}{2}x=\pmb{\dfrac{1}{2}(x-x^2)}\kern 5pt是这个两端固定边值问题的解.\kern 10pt(10.2.3)u(x)=21x2+21x=21(xx2)是这个两端固定边值问题的解.(10.2.3)

三、用差分代替导数

要将导数替换为矩阵,我们有三种基本的选择 —— 向前差分、向后差分或中心差分。我们先看一阶导数和一阶差分:dudx≈u(x+Δx)−u(x)Δx 或 u(x)−u(x−Δx)Δx 或 u(x+Δx)−u(x−Δx)2Δx\pmb{\dfrac{\textrm du}{\textrm dx}}\approx\dfrac{u(x+\Delta x)-u(x)}{\Delta x}\,或\,\dfrac{u(x)-u(x-\Delta x)}{\Delta x}\,或\,\dfrac{u(x+\Delta x)-u(x-\Delta x)}{2\Delta x}dxduΔxu(x+Δx)u(x)Δxu(x)u(xΔx)xu(x+Δx)u(xΔx)在区间 x=0x=0x=0x=1x=1x=1 之间,我们将其平分成 n+1n+1n+1 分,则每个小区间的长度都是 Δx=1n+1\Delta x=\dfrac{1}{n+1}Δx=n+11. 用差分代替导数后,函数 u(x)u(x)u(x) 在其 nnn 个内点 Δx,2Δx,⋯ ,nΔx\Delta x,2\Delta x,\cdots,n\Delta xΔx,x,,nΔx 的处近似值即为矩阵方程 Ku=fK\boldsymbol u=\boldsymbol fKu=f 中的未知数 u1,u2,⋯ ,unu_1,u_2,\cdots,u_nu1,u2,,un求解:u=(u1,u2,⋯ ,un)≈(u(Δx),u(2Δx),⋯ ,u(nΔx))边值条件 u(0)=u(1)=0 得到零值 u0=un+1=0.\begin{array}{l}求解:\boldsymbol u=(u_1,u_2,\cdots,u_n)\approx(u(\Delta x),u(2\Delta x),\cdots,u(n\Delta x))\\边值条件\,u(0)=u(1)=0\,得到零值\,u_0=u_{n+1}=0.\end{array}求解:u=(u1,u2,,un)(u(Δx),u(x),,u(nΔx))边值条件u(0)=u(1)=0得到零值u0=un+1=0.−ddx(dudx)=1-\dfrac{\textrm d}{\textrm dx}\Big(\dfrac{\textrm du}{\textrm d x}\Big)=1dxd(dxdu)=1 中的导数替换成向前和向后差分:1(Δx)2[1−10001−10001−1][100−1100−1100−1][u1u2u3]=[111](10.2.4)\dfrac{1}{(\Delta x)^2}\begin{bmatrix}1&-1&\kern 7pt0&\kern 7pt0\\0&\kern 7pt1&-1&\kern 7pt0\\0&\kern 7pt0&\kern 7pt1&-1\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\\\kern 7pt0&\kern 7pt0&-1\end{bmatrix}\begin{bmatrix}u_1\\u_2\\u_3\end{bmatrix}=\begin{bmatrix}1\\1\\1\end{bmatrix}\kern 15pt(10.2.4)(Δx)21 100110011001 110001100011 u1u2u3 = 111 (10.2.4)这是当 n=3n=3n=3Δx=14\Delta x=\dfrac{1}{4}Δx=41 时得到的矩阵方程,这两个一阶差分矩阵互为转置!这个方式可以写成 ATAu=(Δx)2fA^TA\boldsymbol u=(\Delta x)^2\boldsymbol fATAu=(Δx)2f,其中 AAA 表示的是向前差分,ATA^TAT 是负的向后差分,注意,这里向前差分的含义是 Au=(u1,u2−u1,u3−u2,−u3)A\boldsymbol u=(u_1, u_2-u_1,u_3-u_2,-u_3)Au=(u1,u2u1,u3u2,u3) 表示的是在点 x=0,1,2,3x=0,1,2,3x=0,1,2,3 处一阶微分的近似值,这里包含了边界条件 u0=u4=0u_0=u_4=0u0=u4=0,同理可以得到此条件下 ATA^TAT 表示的是负的向后差分矩阵;向前和向后差分的区别是索引不同,如果表示的在是点 x=1,2,3,4x=1,2,3,4x=1,2,3,4 处一阶微分的近似值,则 AAA 为向后差分矩阵,ATA^TAT 为负的向前差分矩阵。由矩阵乘积 ATAA^TAATA 我们得到了一个正定的二阶差分矩阵 K0\pmb{K_0}K0

K0u=(Δx)2f[2−10−12−10−12][u1u2u3]=116[111]得[u1u2u3]=132[343](10.2.5)\pmb{K_0\boldsymbol u=(\Delta x)^2\boldsymbol f}\kern 10pt{\color{blue}\begin{bmatrix}\kern 7pt2&-1&\kern 7pt0\\-1&\kern 7pt2&-1\\\kern 7pt0&-1&\kern 7pt2\end{bmatrix}\begin{bmatrix}u_1\\u_2\\u_3\end{bmatrix}=\dfrac{1}{16}\begin{bmatrix}1\\1\\1\end{bmatrix}}\kern 10pt得\kern 10pt{\color{blue}\begin{bmatrix}u_1\\u_2\\u_3\end{bmatrix}=\dfrac{1}{32}\begin{bmatrix}3\\4\\3\end{bmatrix}}\kern 20pt(10.2.5)K0u=(Δx)2f 210121012 u1u2u3 =161 111 u1u2u3 =321 343 (10.2.5)

这个例子奇妙的地方就是解得的数值 u1,u2,u3u_1,u_2,u_3u1,u2,u3 恰好是确切解!它们和真解 u=12(x−x2)u=\dfrac{1}{2}(x-x^2)u=21(xx2) 在内点 x=14,24,34x=\dfrac{1}{4},\dfrac{2}{4},\dfrac{3}{4}x=41,42,43 处的值完全一致。Figure 10.3 展示了真解(连续曲线的解析解)和数值解 u1,u2,u3u_1,u_2,u_3u1,u2,u3(正好在曲线上),这个曲线是个抛物线。

在这里插入图片描述
那么该如何解释数值解恰好落在解析解 u(x)u(x)u(x) 的图像上这个完美的答案呢?在矩阵方程中,K0=ATAK_0=A^TAK0=ATA 是 “二阶差分矩阵”,它给出了 −d2udx2-\dfrac{\textrm d^2u}{\textrm dx^2}dx2d2u 的中心近似。这里二阶导数包含了负号是因为一阶导数是反对称的,二阶导数本身是负定的:ddx 的“转置”是 −ddx,则 (−ddx)(ddx) 是正定的.\dfrac{\textrm d}{\textrm dx}\,的“转置”是\,-\dfrac{\textrm d}{\textrm dx},则\,\Big(-\dfrac{\textrm d}{\textrm dx}\Big)\Big(\dfrac{\textrm d}{\textrm dx}\Big)\,是正定的.dxd转置dxd,则(dxd)(dxd)是正定的.AAA 是向前差分矩阵,我们也能够从矩阵 AAAATA^TAT 中看到这种关系,AAA 的转置是 ATA^TAT,它是负的向后差分矩阵。这里没有选择中心差分 u(x+Δx)−u(x−Δx)u(x+\Delta x)-u(x-\Delta x)u(x+Δx)u(xΔx),因为中心差分对于一阶差分是最好的,但是二阶差分 ATAA^TAATA 将会延伸至 u(x+2Δx)u(x+\pmb2\Delta x)u(x+2Δx)u(x−2Δx)u(x-\pmb2\Delta x)u(x2Δx) 这五个函数值,这就很不好。
现在就可以解释上述的完美答案了——差分解恰好落在解析曲线 u(x)=12(x−x2)u(x)=\dfrac{1}{2}(x-x^2)u(x)=21(xx2) 上。二阶差分系数 −1,2,−1-1,2,-11,2,1 对于直线 y=xy=xy=x 和抛物线完全能对应上!y=x−d2ydx2=0−(x+Δx)+2x−(x−Δx)=0(Δx)2y=x2−d2ydx2=−2−(x+Δx)2+2x2−(x−Δx)2=−2(Δx)2\begin{array}{lllr}\pmb{y=x}&-\dfrac{\textrm d^2y}{\textrm dx^2}=\pmb 0&-(x+\Delta x)+2x-(x-\Delta x)=&\pmb0(\Delta x)^2\\[1.5ex]\pmb{y=x^2}&-\dfrac{\textrm d^2y}{\textrm dx^2}=\pmb{-2}&-(x+\Delta x)^2+2x^2-(x-\Delta x)^2=&\pmb{-2}(\Delta x)^2\end{array}y=xy=x2dx2d2y=0dx2d2y=2(x+Δx)+2x(xΔx)=(x+Δx)2+2x2(xΔx)2=0(Δx)22(Δx)2这种关系持续到 y=x3y=x^3y=x3,因为 −d2ydx2=−6x-\dfrac{\textrm d^2y}{\textrm dx^2}=-6xdx2d2y=6x 也可以通过二阶差分来精确求解。但是对于 y=x4y=x^4y=x4 将不再成立,二阶差分无法精确对应 −y′′=−12x2-y''=-12x^2y′′=12x2,所以数值解 u1,u2,u3u_1,u_2,u_3u1,u2,u3 将不会落在 u(x)u(x)u(x) 的曲线上。

四、固定端、自由端和变系数 c(x)

为了研究两类新问题,需要改变方程形式和一个边值条件:−ddx((1+x)dudx)=f(x)且有 u(0)=0, dudx(1)=0(10.2.6)\boxed{-\dfrac{\textrm d}{\textrm dx}\Big((1+x)\dfrac{\textrm du}{\textrm dx}\Big)=f(x)\kern 10pt且有\,u(0)=0,\,\pmb{\dfrac{\textrm du}{\textrm dx}(1)=0}}\kern 20pt(10.2.6)dxd((1+x)dxdu)=f(x)且有u(0)=0,dxdu(1)=0(10.2.6)端点 x=1x=1x=1 目前是自由的,此端点没有任何支撑。比如,“一个吊杆只固定了顶部”,在自由端 x=1x=1x=1 处不受任何力,因此在 x=1x=1x=1 处的边值条件不再是固定条件 u(1)=0u(1)=0u(1)=0,而变成了 dudx(1)=0\dfrac{\textrm du}{\textrm dx}(1)=0dxdu(1)=0.
另一个变化的地方是系数 c(x)=1+xc(x)=1+xc(x)=1+x,可以表示杆的刚度从 x=0x=0x=0x=1x=1x=1 会发生变化,当杆的宽度或材料变化时会出现该种情况。系数 1+x1+x1+x 将会引入一个新矩阵 CCC 到差分方程中。
由于 u4u_4u4 不再固定为 000 了,它现在是一个新的未知数了。此时的 AAA 是一个 4×44\times44×4 的向后差分矩阵,引入的系数 c(x)=1+xc(x)=1+xc(x)=1+x 则变成了一个对角矩阵 CCC —— 相当于在分点处分别乘上 1+Δx,1+2Δx,1+3Δx,1+4Δx1+\Delta x,1+2\Delta x,1+3\Delta x,1+4\Delta x1+Δx,1+x,1+x,1+x. 下面是矩阵 AT,CA^T,CAT,CAAAATCA=[1−10001−10001−10001][1.251.51.752.0][1000−11000−11000−11](10.2.7)A^TCA=\begin{bmatrix}1&-1&\kern 7pt0&\kern 7pt0\\0&\kern 7pt1&-1&\kern 7pt0\\0&\kern 7pt0&\kern 7pt1&-1\\0&\kern 7pt0&\kern 7pt0&\kern 7pt1\end{bmatrix}\begin{bmatrix}1.25\\&1.5\\&&1.75\\&&&2.0\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&\kern 7pt0&0\\-1&\kern 7pt1&\kern 7pt0&0\\\kern 7pt0&-1&\kern 7pt1&0\\\kern 7pt0&\kern 7pt0&-1&1\end{bmatrix}\kern 15pt(10.2.7)ATCA= 1000110001100011 1.251.51.752.0 1100011000110001 (10.2.7)矩阵 K=ATCAK=A^TCAK=ATCA 是对称正定矩阵!由 (ATCA)T=ATCTATT=ATCA(A^TCA)^T=A^TC^TA^{TT}=A^TCA(ATCA)T=ATCTATT=ATCA 可推出是对称矩阵。正定可以由能量非负得到:AAA 的列向量组线性无关,所以当 x≠0\boldsymbol x\neq\boldsymbol 0x=0Ax≠0A\boldsymbol x\neq\boldsymbol 0Ax=0.对于任意的 x≠0,都有 Ax≠0,所以:能量=xTATCAx=(Ax)TC(Ax)>0对于任意的\,\boldsymbol x\neq\boldsymbol 0,都有\,A\boldsymbol x\neq\boldsymbol 0,所以:\kern 8pt能量=\boldsymbol x^TA^TCA\boldsymbol x=(A\boldsymbol x)^TC(A\boldsymbol x)>0对于任意的x=0,都有Ax=0,所以:能量=xTATCAx=(Ax)TC(Ax)>0对于这个固定-自由边值问题,计算乘积 ATAA^TAATAATCAA^TCAATCA 时,观察乘积 ATAA^TAATA 右下角的元素是如何从 222 变成 111 的。第四个方程含有 u4−u3u_4-u_3u4u3,它来自于自由边值条件 dudx(1)=0\dfrac{\textrm du}{\textrm dx}(1)=0dxdu(1)=0 产生的一阶(不是二阶)差分。
注意 ATCAA^TCAATCA 中的 c1,c2,c3,c4c_1,c_2,c_3,c_4c1,c2,c3,c4 来自于式(10.2.7)中的系数 c(x)=1+xc(x)=1+xc(x)=1+x,前面两端固定边值的问题中的系数 ccc 就是简单的 1,1,1,11,1,1,11,1,1,1. 下面是固定-自由(fixed-free) 边值问题对应的矩阵:ATA=[2−1−12−1−12−1−11]ATCA=[c1+c2−c2−c2c2+c3−c3−c3c3+c4−c4−c4c4](10.2.8)A^TA=\begin{bmatrix}\kern 7pt2&-1\\-1&\kern 7pt2&-1\\&-1&\kern 7pt2&-1\\&&-1&\kern 7pt\pmb1\end{bmatrix}\kern 10ptA^TCA=\begin{bmatrix}c_1+c_2&-c_2\\-c_2&c_2+c_3&-c_3\\&-c_3&c_3+c_4&-c_4\\&&-c_4&\pmb{c_4}\end{bmatrix}\kern 15pt(10.2.8)ATA= 2112112111 ATCA= c1+c2c2c2c2+c3c3c3c3+c4c4c4c4 (10.2.8)

五、两端自由边值条件

假设杆的两端都是自由的,那么现在在 x=0x=0x=0x=1x=1x=1 处两个端点都有 dudx=0\dfrac{\textrm du}{\textrm dx}=0dxdu=0,这种情况下杆没有被固定!物理上它是不稳定的 —— 它可以在没有外力的情况下移动。数学上,所有的常值函数如 u=1u=1u=1 都满足这两端自由的边值条件。代数上,对应的矩阵 ATA\pmb{A^TA}ATAATCA\pmb{A^TCA}ATCA 则是不可逆的:两端自由 Free-free 的例子未知数 u0,u1,u2, Δx=0.5ATA=[1−10−12−10−11]ATCA=[c0−c0−c0c0+c1−c1−c1c1]\begin{array}{l}\pmb{两端自由\,\textrm{Free-free}\,的例子}\\\pmb{未知数\,u_0,u_1,u_2,\,\Delta x=0.5}\end{array}\kern 15ptA^TA=\begin{bmatrix}\kern 7pt\pmb1&-1&\kern 7pt0\\-1&\kern 7pt2&-1\\\kern 7pt0&-1&\kern 7pt\pmb1\end{bmatrix}\kern 15ptA^TCA=\begin{bmatrix}\pmb{c_0}&-c_0\\-c_0&c_0+c_1&-c_1\\&-c_1&\pmb{c_1}\end{bmatrix}两端自由Free-free的例子未知数u0,u1,u2,Δx=0.5ATA= 110121011 ATCA= c0c0c0c0+c1c1c1c1 其中 A=[−1100−11]A=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}A=[101101],这是因为两端自由缺少了条件,所以 AAA 是向前差分矩阵,缺少了一行。向量 (1,1,1)(1,1,1)(1,1,1) 在上述矩阵的零空间中,这与连续模型问题 u(x)=1u(x)=1u(x)=1 的解相吻合。但是对于有外力作用的情形,两端自由问题的方程 ATAu=fA^TA\boldsymbol u=\boldsymbol fATAu=fATCAu=fA^TCA\boldsymbol u=\boldsymbol fATCAu=f 通常是不可解的。
在解释更多的物理例子之前,先给出下面的六个矩阵。三对角矩阵 K0K_0K0 我们以前经常见到,现在我们看到了它的应用。这些矩阵都是对称的,并且前四个矩阵还是正定的:K0=A0TA0=[2−1−12−1−12]A0TC0A0=[c1+c2−c2−c2c2+c3−c3−c3c3+c4]两端固定 Fixed-fixed包含弹性系数 Spring constants includedK1=A1TA1=[2−1−12−1−11]A1TC1A1=[c1+c2−c2−c2c2+c3−c3−c3c3]固定−自由 Fiexd-free包含弹性系数 Spring constants includedKsingular=[1−1−12−1−11]Kcircular=[2−1−1−12−1−1−12]两端自由 Free-free周期性 Periodic u(0)=u(1)\begin{array}{rr}K_0=A_0^TA_0=\begin{bmatrix}\kern 7pt\pmb2&-1\\-1&\kern 7pt2&-1\\&-1&\kern 7pt\pmb2\end{bmatrix}&A_0^TC_0A_0=\begin{bmatrix}c_1+c_2&-c_2\\-c_2&c_2+c_3&-c_3\\&-c_3&c_3+c_4\end{bmatrix}\\[3.3ex]\pmb{两端固定\,\textrm{Fixed-fixed}}&\pmb{包含弹性系数\,\textrm{Spring constants included}}\\[1.0ex]K_1=A_1^TA_1=\begin{bmatrix}\kern 7pt\pmb2&-1\\-1&\kern 7pt2&-1\\&-1&\kern 7pt\pmb1\end{bmatrix}&A_1^TC_1A_1=\begin{bmatrix}c_1+c_2&-c_2\\-c_2&c_2+c_3&-c_3\\&-c_3&c_3\end{bmatrix}\\[3.3ex]\pmb{固定-自由\,\textrm{Fiexd-free}}&\pmb{包含弹性系数\,\textrm{Spring constants included}}\\[1ex]K_{\pmb{\textrm{singular}}}=\begin{bmatrix}\kern 7pt\pmb1&-1\\-1&\kern 7pt2&-1\\&-1&\kern 7pt\pmb1\end{bmatrix}&K_{\pmb{\textrm{circular}}}=\begin{bmatrix}\kern 7pt2&-1&\pmb{-1}\\-1&\kern 7pt2&-1\\\pmb{-1}&-1&\kern 7pt2\end{bmatrix}\\[3.3ex]\pmb{两端自由\,\textrm{Free-free}}&\pmb{周期性\,\textrm{Periodic}\,u(0)=u(1)}\end{array}K0=A0TA0= 2112112 两端固定Fixed-fixedK1=A1TA1= 2112111 固定自由Fiexd-freeKsingular= 1112111 两端自由Free-freeA0TC0A0= c1+c2c2c2c2+c3c3c3c3+c4 包含弹性系数Spring constants includedA1TC1A1= c1+c2c2c2c2+c3c3c3c3 包含弹性系数Spring constants includedKcircular= 211121112 周期性Periodicu(0)=u(1)矩阵 K0,K1,KsingularK_0,K_1,K_{\textrm{\pmb {singular}}}K0,K1,KsingularKcircularK_{\pmb{\textrm{circular}}}Kcircular 均包含简单的系数矩阵 C=IC=IC=I,这表明所有的 “弹性系数” 都是 ci=1c_i=1ci=1. 而 A0TC0A0A_0^TC_0A_0A0TC0A0A1TC1A1A_1^TC_1A_1A1TC1A1 含有弹性系数,这些是为了展示弹性系数如何影响矩阵中的元素,但是不改变其正定性。后面会在其它的工程问题中看到这些刚度矩阵(stiffness matrices).

六、一列弹簧和质点

Figure 10.4 展示了由一列弹簧(a line of spring:忽略质量)连接起来的三个质点(masses),质量分别是 m1,m2,m3m_1,m_2,m_3m1,m2,m3. 两端固定的情形有四个弹簧,其顶部和底部都固定,这可以导出 K0K_0K0A0TC0A0A_0^TC_0A_0A0TC0A0. 而固定-自由的情形只有三个弹簧,最下面的质点处于自由悬挂状态,这可以导出 K1K_1K1A1TC1A1A_1^TC_1A_1A1TC1A1. 两端自由的问题会导出矩阵 KsingularK_{\textrm{\pmb{s}ingular}}Ksingular.
我们希望得出质点的位移 u\boldsymbol uu 和弹簧张力 y\boldsymbol yy 的方程:u=(u1,u2,u3) 表示 每个质点的位移 movements of masses(向下为正)y=(y1,y2,y3,y4) 或 (y1,y2,y3) 表示 弹簧的张力 tensions in the springs\begin{array}{l}\boldsymbol u=(u_1,u_2,u_3)\,表示\,\pmb{每个质点的位移\,\textrm{movements of masses}}(向下为正)\\\boldsymbol y=(y_1,y_2,y_3,y_4)\,或\,(y_1,y_2,y_3)\,表示\,\pmb{弹簧的张力\,\textrm{tensions in the springs}}\end{array}u=(u1,u2,u3)表示每个质点的位移movements of masses(向下为正)y=(y1,y2,y3,y4)(y1,y2,y3)表示弹簧的张力tensions in the springs在这里插入图片描述当质点向下运动时,它的位移为正(uj>0u_j>0uj>0),其中 u0u_0u0u4u_4u4 表示固定端的位移,由于是固定的,所以有 u0=u4=0u_0=u_4=0u0=u4=0. 对于弹簧,当其伸长时,弹簧的张力会将质点向内拉,张力为正(yi>0y_i>0yi>0),压缩时,弹簧的张力会将质点向外推,张力为负(yi<0y_i<0yi<0). 每个弹簧都满足其自身的胡克定律(Hooke’s Law)y=cey=cey=ce:向量形式为:y=ce\boldsymbol y=\boldsymbol c\boldsymbol ey=ce,其中 y\boldsymbol yy 表示的是弹力(stretching force),c\boldsymbol cc 是弹性系数(spring constant),e\boldsymbol ee 是伸缩距离(stretching distance).
我们的工作就是要将单个弹簧的方程 y=cey=cey=ce 放到整个系统的向量方程 Ku=fK\boldsymbol u=\boldsymbol fKu=f 中。表示外力的向量 f\boldsymbol ff 来自于重力,重力加速度常数 ggg 乘上每个质点的质量得到向下的力 f=(m1g,m2g,m3g)\boldsymbol f=(m_1g,m_2g,m_3g)f=(m1g,m2g,m3g).
问题的关键是要找到刚度矩阵(两端固定固定-自由这两种情形的)。构造矩阵 KKK 最好是分成三步,不要一步到位。不要一上来就要建立位移 uiu_iui 和力 fif_ifi 之间的关系,将每个向量按下面的顺序分别和其下面的向量建立联系要更好一些:u=(u1,u2,⋯ ,un)表示 n 个质点的位移 Movementse=(e1,e2,⋯ ,em)表示 m 个弹簧的伸缩距离 Elongationsy=(y1,y2,⋯ ,ym)表示 m 个弹簧的内部力 Internal forces(即张力)f=(f1,f2,⋯ ,fn)表示 n 个质点受到的外力 External forces\begin{array}{llll}\color{blue}\boldsymbol u&\color{blue}=&(u_1,u_2,\cdots,u_n)&表示\,n\,个质点的\color{blue}{位移\,\textrm{Movements}}\\\color{blue}\boldsymbol e&\color{blue}=&(e_1,e_2,\cdots,e_m)&表示\,m\,个弹簧的\color{blue}{伸缩距离\,\textrm{Elongations}}\\\color{blue}\boldsymbol y&\color{blue}=&(y_1,y_2,\cdots,y_m)&表示\,m\,个弹簧的\color{blue}内部力\,\textrm{Internal forces}(即张力)\\\color{blue}\boldsymbol f&\color{blue}=&(f_1,f_2,\cdots,f_n)&表示\,n\,个质点受到的\color{blue}外力\,\textrm{External forces}\end{array}ueyf====(u1,u2,,un)(e1,e2,,em)(y1,y2,,ym)(f1,f2,,fn)表示n个质点的位移Movements表示m个弹簧的伸缩距离Elongations表示m个弹簧的内部力Internal forces(即张力)表示n个质点受到的外力External forces应用数学中会用一个框图将 u,e,y,f\boldsymbol u,\boldsymbol e,\boldsymbol y,\boldsymbol fu,e,y,f 联系起来,于是得到 ATCAu=fA^TCA\boldsymbol u=\boldsymbol fATCAu=f
在这里插入图片描述
后面将给出这两个例子中的 A,CA,CA,CATA^TAT. 首先考虑两端固定的情形,然后再考虑上端固定,下端自由的情形。这些矩阵虽然比较简单,但是它们的形式很重要,尤其是 AAAATA^TAT 会同时出现。
两端固定情形:e\boldsymbol ee 表示的是伸缩距离 —— 弹簧的伸缩量。若这个系统是平躺在桌面上时,则弹簧没有伸缩;当垂直放置时,重力就会起作用,质点将会分别下移 u1,u2,u3u_1,u_2,u_3u1,u2,u3,每个弹簧的伸缩距离为 ei=ui−ui−1e_i=u_i-u_{i-1}ei=uiui1,即是两个端点的位移差:每个弹簧的伸缩距离Stretching of each spring第一个弹簧:e1=u1(顶端固定,所以 u0=0)第二个弹簧:e2=u2−u1第三个弹簧:e3=u3−u2第四个弹簧:e4=− u3(底端固定,所以 u4=0)\begin{array}{l}\pmb{每个弹簧的伸缩距离}\\\pmb{\textrm{Stretching of each spring}}\end{array}\kern 10pt\begin{array}{ll}第一个弹簧:&\pmb{e_1=u_1}&(顶端固定,所以\,u_0=0)\\第二个弹簧:&\pmb{e_2=u_2-u_1}\\第三个弹簧:&\pmb{e_3=u_3-u_2}\\第四个弹簧:&\pmb{e_4=\kern 13pt-\,u_3}&(底端固定,所以\,u_4=0)\end{array}每个弹簧的伸缩距离Stretching of each spring第一个弹簧:第二个弹簧:第三个弹簧:第四个弹簧:e1=u1e2=u2u1e3=u3u2e4=u3(顶端固定,所以u0=0)(底端固定,所以u4=0)如果弹簧的两端都移动相同的距离,那么这个弹簧没有发生伸缩,此时 uj=uj−1u_j=u_{j-1}uj=uj1,则 ej=0e_j=0ej=0. 上面四个方程得到一个 4×34\times34×3 的差分矩阵 AAA,且有 e=Au\boldsymbol e=A\boldsymbol ue=Au伸缩距离e=Au即是[e1e2e3e4]=[100−1100−1100−1][u1u2u3u4](10.2.9)\pmb{伸缩距离}\kern 15pt\boldsymbol e=A\boldsymbol u\kern 5pt即是\kern 5pt\begin{bmatrix}e_1\\e_2\\e_3\\e_4\end{bmatrix}=\begin{bmatrix}\kern 7pt1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\\\kern 7pt0&\kern 7pt0&-1\end{bmatrix}\begin{bmatrix}u_1\\u_2\\u_3\\u_4\end{bmatrix}\kern 15pt(10.2.9)伸缩距离e=Au即是 e1e2e3e4 = 110001100011 u1u2u3u4 (10.2.9)下面一个方程 y=Ce\boldsymbol y=C\boldsymbol ey=Ce 将弹簧的伸缩距离 e\boldsymbol ee 和张力 y\boldsymbol yy 联系了起来,这里对每个弹簧使用了胡克定律 yi=cieiy_i=c_ie_iyi=ciei. 胡克定律是与弹簧材料有关的 “本构定律 constitutive law”,软弹簧的弹性系数 ccc 较小,因此强度不大的力 yyy 即可产生比较大的伸缩距离 eee. 只要弹簧没有因为被过度拉伸而破坏结构,胡克定律对于弹簧的线性关系是准确的。
因为每个弹簧都遵循自己的定律,所以方程 y=Ce\boldsymbol y=C\boldsymbol ey=Ce 中的系数矩阵 CCC 是一个对角矩阵:胡克定律 Hooke’s Lawy=Cey1=c1e1y2=c2e2y3=c3e3y4=c4e4即是[y1y2y3y4]=[c1c2c3c4][e1e2e3e4](10.2.10)\begin{array}{c}\pmb{胡克定律\,\textrm{Hooke's Law}}\\\boldsymbol y=C\boldsymbol e\end{array}\kern 10pt\begin{array}{l}y_1=c_1e_1\\y_2=c_2e_2\\y_3=c_3e_3\\y_4=c_4e_4\end{array}\kern 5pt即是\kern 5pt\begin{bmatrix}y_1\\y_2\\y_3\\y_4\end{bmatrix}=\begin{bmatrix}c_1\\&c_2\\&&c_3\\&&&c_4\end{bmatrix}\begin{bmatrix}e_1\\e_2\\e_3\\e_4\end{bmatrix}\kern 10pt(10.2.10)胡克定律Hooke’s Lawy=Cey1=c1e1y2=c2e2y3=c3e3y4=c4e4即是 y1y2y3y4 = c1c2c3c4 e1e2e3e4 (10.2.10)将方程 e=Au\boldsymbol e=A\boldsymbol ue=Auy=Ce\boldsymbol y=C\boldsymbol ey=Ce 结合起来,可以得到弹簧的张力 y=CAu\boldsymbol y=CA\boldsymbol uy=CAu.
最后是平衡方程,这是应用数学中最基本的定律。 弹簧张力产生的内部力和质点受到的外力达到平衡。每个质点向上的力来自于其上方弹簧的张力 yjy_jyj,向下的力是它下方弹簧的张力 yj+1y_{j+1}yj+1 加上自身的重力 fjf_jfj. 因此 yj=yj+1+fjy_j=y_{j+1}+f_jyj=yj+1+fjfj=yj−yj+1f_j=y_j-y_{j+1}fj=yjyj+1受力平衡 Force balancef=ATyf1=y1−y2f2=y2−y3f3=y3−y4即是[f1f2f3]=[1−10001−10001−1](10.2.11)\begin{array}{c}\pmb{受力平衡\,\textrm{Force balance}}\\\boldsymbol f=A^T\boldsymbol y\end{array}\kern 10pt\begin{array}{l} f_1=y_1-y_2\\f_2=y_2-y_3\\f_3=y_3-y_4\end{array}\kern 5pt即是\kern 5pt\begin{bmatrix}f_1\\f_2\\f_3\end{bmatrix}=\begin{bmatrix}1&-1&\kern 7pt0&\kern 7pt0\\0&\kern 7pt1&-1&\kern 7pt0\\0&\kern 7pt0&\kern 7pt1&-1\end{bmatrix}\kern 10pt(10.2.11)受力平衡Force balancef=ATyf1=y1y2f2=y2y3f3=y3y4即是 f1f2f3 = 100110011001 (10.2.11)这个系数矩阵是 ATA^TAT!受力平衡方程是 f=ATy\boldsymbol f=A^T\boldsymbol yf=ATy,将联系 e−u\boldsymbol e-\boldsymbol ueu 的系数矩阵转置后可以得到联系 f−y\boldsymbol f-\boldsymbol yfy 的系数矩阵。这个就是框图的美妙之处,ATA^TATAAA 同时出现了。将这上述的三个方程结合起来就得到 Ku=fK\boldsymbol u=\boldsymbol fKu=f.{e=Auy=Cef=ATy}组合成ATCAu=f或Ku=fK=ATCA 是 刚度矩阵 stiffness matrix(力学)K=ATCA 是 传导矩阵 conductance matrix(网络)\left\{\begin{array}{l}\boldsymbol e=A\boldsymbol u\\\boldsymbol y=C\boldsymbol e\\\boldsymbol f=A^T\boldsymbol y\end{array}\right\}\kern 10pt\begin{array}{l}组合成\kern 5ptA^TCA\boldsymbol u=\boldsymbol f\kern 5pt或\kern 5ptK\boldsymbol u=\boldsymbol f\\K=A^TCA\,是\,\pmb{刚度矩阵\,\textrm{stiffness matrix}(力学)}\\K=A^TCA\,是\,\pmb{传导矩阵\,\textrm{conductance matrix}(网络)}\end{array} e=Auy=Cef=ATy 组合成ATCAu=fKu=fK=ATCA刚度矩阵stiffness matrix(力学)K=ATCA传导矩阵conductance matrix(网络)有限元方法(Finite element programs)将需要求解的问题分成多个部分,然后再联系各部分的系数矩阵导出 K=ATCAK=A^TCAK=ATCA. 我们将 ATA^TAT 左乘 CACACA 就可以得到上述四个弹簧(两端固定)问题的矩阵 KKK[1−10001−10001−1][c1c2c3c4][100−1100−1100−1]=[c1+c2−c20−c2c2+c3−c30−c3c3+c4]\begin{bmatrix}1&-1&\kern 7pt0&\kern 7pt0\\0&\kern 7pt1&-1&\kern 7pt0\\0&\kern 7pt0&\kern 7pt1&-1\end{bmatrix}\begin{bmatrix}c_1\\&c_2\\&&c_3\\&&&c_4\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\\\kern 7pt0&\kern 7pt0&-1\end{bmatrix}=\begin{bmatrix}c_1+c_2&-c_2&0\\-c_2&c_2+c_3&-c_3\\0&-c_3&c_3+c_4\end{bmatrix} 100110011001 c1c2c3c4 110001100011 = c1+c2c20c2c2+c3c30c3c3+c4 如果所有的弹簧都相同且 c1=c2=c3=c4=1c_1=c_2=c_3=c_4=1c1=c2=c3=c4=1,那么 C=IC=IC=I. 则刚度矩阵 KKK 简化为了 ATAA^TAATA,它就变成了特殊的 −1,2,−1-1,2,-11,2,1 三对角矩阵 K0K_0K0 了。
注意区分工程中的 ATAA^TAATA 和线性代数中的 LULULU. 对于四个弹簧的情形矩阵 AAA4×34\times34×3 的,而消元法中的三角形矩阵是方阵。刚度矩阵 KKK 是由 ATAA^TAATA 得到的,它可以分解成 LULULU. 前一步是应用数学中的内容,而后一步是计算数学中的内容。应用数学中每个 KKK 都是由长方阵构造的,后面再分解成方阵的乘积。
下面列出 K=ATCAK=A^TCAK=ATCA 的一些性质:

  1. KKK三对角矩阵,因为质点 333 和质点 111 不相连;
  2. KKK对称矩阵,因为 CCC 是对称矩阵并且 ATA^TAT 是由 AAA 的转置得来的;
  3. KKK正定矩阵,因为 ci>0c_i>0ci>0AAA 具有线性无关的列向量组
  4. K−1K^{-1}K1稠密矩阵(不是稀疏矩阵),并且它所有的元素都是正数

性质 4 揭示了 u=K−1f\boldsymbol u=K^{-1}\boldsymbol fu=K1f 的一个重要事实:如果所有的力都向下作用(fj>0f_j>0fj>0),则所有的位移都是向下的(uj>0u_j>0uj>0). 注意 “矩阵元素为正” 与 “矩阵正定” 是不同的。K−1K^{-1}K1 的所有元素都为正,但是 KKK 不是,它们都是正定矩阵。

例1】假设所有的 ci=cc_i=cci=cmj=mm_j=mmj=m,求位移 u\boldsymbol uu 和张力 y\boldsymbol yy.
解: 所有的弹簧都相同,并且所有的质点也相同,但是位移、伸缩距离和张力不会相同。由于 ATCAA^TCAATCA 含有 ccc,所以 K−1K^{-1}K1 含有 1c\dfrac{1}{c}c1位移u=K−1f=14c[321242123][mgmgmg]=mgc[3/223/2]\pmb{位移}\kern 15pt\boldsymbol u=K^{-1}\boldsymbol f=\dfrac{1}{4c}\begin{bmatrix}3&2&1\\2&4&2\\1&2&3\end{bmatrix}\begin{bmatrix}mg\\mg\\mg\end{bmatrix}=\dfrac{mg}{c}\begin{bmatrix}\pmb{3/2}\\\pmb{2}\\\pmb{3/2}\end{bmatrix}位移u=K1f=4c1 321242123 mgmgmg =cmg 3/223/2 由上式可知,中间质点的位移 u2u_2u2 要比 u1u_1u1u3u_3u3 要大。单位也是正确的:力 mgmgmg(单位:N\textrm NN)除以弹性系数 ccc(单位:N/m\textrm{N/m}N/m),得到 uuu(单位:m\textrm mm). 则伸缩长度e=Au=[100−1100−1100−1]mgc[3/223/2]=mgc[3/21/2−1/2−3/2]\pmb{伸缩长度}\kern 13pt\boldsymbol e=A\boldsymbol u=\begin{bmatrix}\kern 7pt1&\kern 7pt0&\kern 7pt0\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\\\kern 7pt0&\kern 7pt0&-1\end{bmatrix}\dfrac{mg}{c}\begin{bmatrix}3/2\\2\\3/2\end{bmatrix}=\dfrac{mg}{c}\begin{bmatrix}\kern 7pt\pmb{3/2}\\\kern 7pt\pmb{1/2}\\\pmb{-1/2}\\\pmb{-3/2}\end{bmatrix}伸缩长度e=Au= 110001100011 cmg 3/223/2 =cmg 3/21/21/23/2 警告:通常不能写成K−1=A−1C−1(AT)−1\boxed{\pmb{警告:}通常不能写成\kern 10ptK^{-1}=A^{-1}C^{-1}(A^T)^{-1}}警告:通常不能写成K1=A1C1(AT)1组成 ATCAA^TCAATCA 的三个矩阵紧密联系在一起,不太容易能分开。通常,ATy=fA^T\boldsymbol y=\boldsymbol fATy=f 有无穷多解,而这四个方程 Au=eA\boldsymbol u=\boldsymbol eAu=e 含有三个未知数一般情况下无解。但是在整个系统下,ATCAA^TCAATCA 可以得到这三个方程的解。当且仅当 m=nm=nm=n 时,这些矩阵都是方阵,我们可以逐步求解 y=(AT)−1f\boldsymbol y=(A^T)^{-1}\boldsymbol fy=(AT)1fe=C−1y\boldsymbol e=C^{-1}\boldsymbol ye=C1yu=A−1e\boldsymbol u=A^{-1}\boldsymbol eu=A1e. 下面就是这种情形。

七、固定-自由端

移去第四个弹簧,则所有矩阵都会变成 3×33\times33×3 的方阵,但是系统建模的思路不变!此时矩阵 AAA 不再有第四行,同时 ATA^TAT 也不再有第四列。新的刚度矩阵 K1K_1K1 就是方阵的乘积:A1TC1A1=[1−1001−1001][c1c2c3][100−1100−11]A_1^TC_1A_1=\begin{bmatrix}1&-1&\kern 7pt0\\0&\kern 7pt1&-1\\0&\kern 7pt0&\kern 7pt1\end{bmatrix}\begin{bmatrix}c_1\\&c_2\\&&c_3\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&0\\-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}A1TC1A1= 100110011 c1c2c3 110011001 ATA^TAT 丢去的列和 AAA 丢去的行都乘了 c4c_4c4,所以最快得到新矩阵 A1TC1A1A_1^TC_1A_1A1TC1A1 的方法就是在旧的矩阵中令 c4=0c_4=0c4=0固定−自由端A1TC1A1=[c1+c2−c20−c2c2+c3−c30−c3c3](10.2.12)\pmb{固定-自由端}\kern 15ptA_1^TC_1A_1=\begin{bmatrix}c_1+c_2&-c_2&0\\-c_2&c_2+c_3&-c_3\\0&-c_3&c_3\end{bmatrix}\kern 20pt(10.2.12)固定自由端A1TC1A1= c1+c2c20c2c2+c3c30c3c3 (10.2.12)例2】如果 c1=c2=c3=1c_1=c_2=c_3=1c1=c2=c3=1,则 C=IC=IC=I,那么此时矩阵 K1K_1K1 就是类似于 “−1,2,1-1,2,11,2,1” 的三对角矩阵,由于弹簧的底部没有固定,所以 K_1 最后一个元素是 111 而不是 222. 设所有的 mj=mm_j=mmj=m,弹性系数均为 ccc固定−自由端u=K1−1f=1c[111122123][mgmgmg]=mgc[356]\pmb{固定-自由端}\kern 15pt\boldsymbol u=K_1^{-1}\boldsymbol f=\dfrac{1}{c}\begin{bmatrix}1&1&1\\1&2&2\\1&2&3\end{bmatrix}\begin{bmatrix}mg\\mg\\mg\end{bmatrix}=\dfrac{mg}{c}\begin{bmatrix}3\\5\\6\end{bmatrix}固定自由端u=K11f=c1 111122123 mgmgmg =cmg 356 这些位移要比两端固定的情况更大。u1\boldsymbol u_1u1 的值是 3mgc\dfrac{3mg}{c}c3mg 是因为三个质点都将第一个弹簧往下拉;第二个质点的位移是第一个质点的位移 3mgc\dfrac{3mg}{c}c3mg 再额外加上下面的两个质点将第二个弹簧拉长的距离 2mgc\dfrac{2mg}{c}c2mg;第三个质点下降的最多,其位移是 3mgc+2mgc+mgc\dfrac{3mg}{c}+\dfrac{2mg}{c}+\dfrac{mg}{c}c3mg+c2mg+cmg. 弹簧的伸缩距离 e=Au\boldsymbol e=A\boldsymbol ue=Au,可得其包含了数字 3,2,13,2,13,2,1e=[100−1100−11]mgc[356]=mgc[321]\boldsymbol e=\begin{bmatrix}\kern 7pt1&\kern 7pt0&0\\-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}\dfrac{mg}{c}\begin{bmatrix}3\\5\\6\end{bmatrix}=\dfrac{mg}{c}\begin{bmatrix}3\\2\\1\end{bmatrix}e= 110011001 cmg 356 =cmg 321

八、两个自由端:K 是奇异的

如果两端都是自由的,我们会遇到麻烦。因为这整个系统可以移动,此时 AAA2×32\times32×3 的矩阵:两端自由e=Au[e1e2]=[u2−u1u3−u2]=[−1100−11][u1u2u3](10.2.13)\begin{array}{l}\pmb{两端自由}\\\pmb{e=A\boldsymbol u}\end{array}\kern 20pt\begin{bmatrix}e_1\\e_2\end{bmatrix}=\begin{bmatrix}u_2-u_1\\u_3-u_2\end{bmatrix}=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}\begin{bmatrix}u_1\\u_2\\u_3\end{bmatrix}\kern 20pt(10.2.13)两端自由e=Au[e1e2]=[u2u1u3u2]=[101101] u1u2u3 (10.2.13)此时 Au=0A\boldsymbol u=\boldsymbol 0Au=0 有一个非零解,质点可以在弹簧不伸缩的情况下运动。如,质点可以移动 u=(1,1,1)\boldsymbol u=(1,1,1)u=(1,1,1),而此时的 e=(0,0)\boldsymbol e=(0,0)e=(0,0)Au=[−1100−11][111]=[00],此时没有伸缩(10.2.14)A\boldsymbol u=\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}\begin{bmatrix}1\\1\\1\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix},\pmb{此时没有伸缩}\kern 25pt(10.2.14)Au=[101101] 111 =[00]此时没有伸缩(10.2.14)Au=0A\boldsymbol u=\boldsymbol 0Au=0 会使得 ATCAu=0A^TCA\boldsymbol u=\boldsymbol 0ATCAu=0,矩阵 ATCAA^TCAATCA 中没有 c1c_1c1c4c_4c4,它只是一个半正定的矩阵,主元是 c2c_2c2c3c_3c3,没有第三个主元了,秩为 222[−101−101][c2c3][−1100−11]=[c2−c20−c2c2+c3−c30−c3c3](10.2.15)\begin{bmatrix}-1&\kern 7pt0\\\kern 7pt1&-1\\\kern 7pt0&\kern 7pt1\end{bmatrix}\begin{bmatrix}c_2\\&c_3\end{bmatrix}\begin{bmatrix}-1&\kern 7pt1&0\\\kern 7pt0&-1&1\end{bmatrix}=\begin{bmatrix}c_2&-c_2&0\\-c_2&c_2+c_3&-c_3\\0&-c_3&c_3\end{bmatrix}\kern 20pt(10.2.15) 110011 [c2c3][101101]= c2c20c2c2+c3c30c3c3 (10.2.15)这个矩阵的两个特征值为正,但是 x=(1,1,1)\boldsymbol x=(1,1,1)x=(1,1,1) 是特征值 λ=0\lambda=0λ=0 的一个特征向量。我们只能针对一些特殊的向量 f\boldsymbol ff 才能够求解 ATCA=fA^TCA=\boldsymbol fATCA=f,外力要满足 f1+f2+f3=0f_1+f_2+f_3=0f1+f2+f3=0,否则整个系统(两个端点自由)将会一直向上或向下运动。

九、弹簧圈

两端自由的情形,再加上第三个弹簧,将质点 333 和质点 111 连接起来可以形成一个圈,这就是一个弹簧圈(circle of springs). 此时的矩阵 KKK 仍然是不可逆矩阵 —— 刚度矩阵 KcircularK_{\textrm{circular}}Kcircular 仍然是奇异的:AcircularTAcircular=[1−1001−1−101][10−1−1100−11]=[2−1−1−12−1−1−12](10.2.16)A^T_{\pmb{\textrm{circular}}}A_{\pmb{\textrm{circular}}}=\begin{bmatrix}\kern 7pt1&-1&\kern 7pt0\\\kern 7pt0&\kern 7pt1&-1\\-1&\kern 7pt0&\kern 7pt1\end{bmatrix}\begin{bmatrix}\kern 7pt1&\kern 7pt0&-1\\-1&\kern 7pt1&\kern 7pt0\\\kern 7pt0&-1&\kern 7pt1\end{bmatrix}=\begin{bmatrix}\kern 7pt2&-1&-1\\-1&\kern 7pt2&-1\\-1&-1&\kern 7pt2\end{bmatrix}\kern 15pt(10.2.16)AcircularTAcircular= 101110011 110011101 = 211121112 (10.2.16)这个矩阵只有两个主元 22232\dfrac{3}{2}23,特征值是 3,33,33,3000,行列式为零。零空间仍然包含 x=(1,1,1)\boldsymbol x=(1,1,1)x=(1,1,1),说明所有的质点会一起移动。 位移向量 (1,1,1)(1,1,1)(1,1,1) 在矩阵 AcircularA_{\textrm {\pmb{circular}}}AcircularKcircular=ATCAK_{\textrm{\pmb{circular}}}=A^TCAKcircular=ATCA 的零空间中。

下面是对本节的总结: 用差分方程近似求解微分方程,将线性代数和微积分联系在了一起。如果所取的步长 Δx\Delta xΔx 足够小,那么就可以获得让自己足够满意的解。方程−ddx(c(x)dudx)=f(x) 满足 u(0)=0 且 u(1)=0  或  dudx(1)=0\pmb{方程}\kern 18pt-\dfrac{\textrm d}{\textrm dx}\Big(c(x)\dfrac{\textrm du}{\textrm dx}\Big)=f(x)\,\pmb{满足}\, u(0)=0\,\pmb 且\,u(1)=0\,\,\pmb或\,\,\dfrac{\textrm du}{\textrm dx}(1)=0方程dxd(c(x)dxdu)=f(x)满足u(0)=0u(1)=0dxdu(1)=0将区间 [0,1][0,1][0,1] 分成 NNN 分,每分区间长度为 Δx\Delta xΔx,用 AuA\boldsymbol uAu 代替 dudx\dfrac{\textrm du}{\textrm dx}dxduATyA^T\boldsymbol yATy 代替 −dydx-\dfrac{\textrm dy}{\textrm dx}dxdy(其中 y=c(x)dydxy=c(x)\dfrac{\textrm dy}{\textrm dx}y=c(x)dxdy). 则此时 AAAATA^TAT 中的元素都含有 1Δx\dfrac{1}{\Delta x}Δx1. 边值条件是 u0=0u_0=0u0=0uN=0u_N=0uN=0yN=0y_N=0yN=0. 这三步 −ddx,c(x)-\dfrac{\textrm d}{\textrm dx},c(x)dxd,c(x)ddx\dfrac{\textrm d}{\textrm dx}dxd 对应的矩阵分别是 AT,CA^T,CAT,CAAAf=ATy,y=Ce,e=Au得到ATCA=f\boldsymbol f=A^T\boldsymbol y,\kern 5pt\boldsymbol y=C\boldsymbol e,\kern 5pt\boldsymbol e=A\boldsymbol u\kern 5pt得到\kern 6ptA^TCA=\boldsymbol ff=ATy,y=Ce,e=Au得到ATCA=f这是计算科学可工程中的一个基本的例子,实际建模和求解的步骤如下:

  1. 用微分方程描述实际问题;
  2. 将微分方程离散成差分方程;
  3. 求解差分方程(利用边值条件);
  4. 解释解的含义,绘制图形,必要时要重新建模。

数值模拟已经成为了科学领域的第三个分支,另外两个是实验和理论。比如在计算机上设计波音 777777777 要比风洞实验成本要低得多。


网站公告

今日签到

点亮在社区的每一天
去签到