Skip to content

Ushughulikiaji wa Hali za Mpaka za Kijiometri

Mlinganyo wa mstari \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) unaotatuliwa katika kila iteration ya Mbinu ya Newton-Raphson bado haujajumuisha hali za mpaka za kijiometri (vizuizi vya uhamisho). Sura hii inaonyesha jinsi ya kurekebisha matriki ya ugumu \(\boldsymbol{K}\) na vekta ya residual \(\boldsymbol{R}\) kwa degree of freedom zilizopewa kizuizi cha uhamisho \(\boldsymbol{u} = \bar{\boldsymbol{u}}\), ili uhamisho baada ya iteration ufikie thamani iliyowekwa. Vizuizi vya pointi nyingi (MPC) na vizuizi visivyo vya mstari vinavyohusiana na mgusano hushughulikiwa kwa utaratibu tofauti; tazama Vizuizi vya Pointi Nyingi na Mgusano.

Sera ya Kuacha Vizuizi vya Uhamisho kama Vigezo Visivyojulikana

Uhamisho wa nodi iliyopewa hali ya mpaka ya kijiometri si kigezo kisichojulikana tena, bali hufungwa kwenye thamani iliyowekwa \(\bar{u}_i\). Degree of freedom hizi zinaweza kuchukuliwa kama konstanti na kuondolewa kutoka mlinganyo wa mstari \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\); hata hivyo, FrontISTR hutekeleza kizuizi kwa kuandika upya \(\boldsymbol{K}\) na \(\boldsymbol{R}\) huku degree of freedom zilizofungwa zikibaki ndani ya vekta ya marekebisho \(d\boldsymbol{u}\) kama degree of freedom nyingine.

Kwa njia hii, ukubwa wa matriki ya coefficients na mpangilio wa degree of freedom haubadiliki kulingana na kuwepo au kutokuwepo kwa vizuizi, hivyo hakuna haja ya kuondoa vigezo na kupanga upya mistari na safu zilizoachwa wazi. Kwa utekelezaji unaohifadhi matriki ya coefficients katika umbizo la sparse matrix, upangaji huu upya ni mgumu; kwa hiyo FrontISTR hutumia njia ya pili, ambayo hutekeleza vizuizi kwa kusasisha matriki ya coefficients na upande wa kulia pekee.

Thamani Lengwa ya Marekebisho ya Newton-Raphson

Kwa degree of freedom \(i\) yenye kizuizi cha uhamisho, rekebisha \(\boldsymbol{K}\) na \(\boldsymbol{R}\) ili marekebisho \(du_i\) yanayotafutwa katika iteration ya Newton-Raphson yawe

\[ du_i = d\bar{u}_i \equiv \begin{cases} \bar{u}_i & (\text{iteration ya 1}) \\ 0 & (\text{iteration ya 2 na kuendelea}) \end{cases} \]

Kwa kufanya hivyo, katika iteration ya kwanza ongezeko la uhamisho hufikia thamani ya kizuizi \(\bar{u}_i\), na kuanzia iteration ya pili marekebisho huwa \(0\), hivyo thamani ya kizuizi hudumishwa.

Utaratibu wa Kubadilisha Matriki na Vekta ya Residual

Thamani lengwa katika sehemu iliyotangulia hupatikana kwa mabadiliko mawili yafuatayo huku umbo la mlinganyo wa mstari \(\boldsymbol{K} d\boldsymbol{u} = \boldsymbol{R}\) likihifadhiwa.

  1. Kufanya mstari \(i\) kuwa diagonal: Badilisha term ya diagonal \(K_{ii}\), ambayo ni coefficient ya \(du_i\), kuwa \(1\), badilisha coefficients nyingine zote \(K_{ij}\ (j \not= i)\) kuwa \(0\), na uweke upande wa kulia kuwa \(R_i \to d\bar{u}_i\). Hivyo mlinganyo wa mstari \(i\) huwa \(du_i = d\bar{u}_i\).
  2. Kuhamisha kutoka mistari \(j(\not= i)\): Kwa kila mstari \(j(\not= i)\), ikiwa \(K_{ji} \not= 0\), hamisha term \(K_{ji} du_i = K_{ji} d\bar{u}_i\) kwenda upande wa kulia. Yaani, toa \(K_{ji} d\bar{u}_i\) kutoka upande wa kulia na uweke coefficient \(K_{ji}\) ya \(du_i\) kuwa \(0\).

Kwa uandishi wa vipengele, milinganyo kabla na baada ya mabadiliko inahusiana kama ifuatavyo.

\[ \begin{bmatrix} K_{11} & K_{12} & \cdots & K_{1i} & \cdots & K_{1N} \\ K_{21} & K_{22} & \cdots & K_{2i} & \cdots & K_{2N} \\ \vdots & \vdots & \ddots & \vdots & & \vdots \\ K_{i1} & K_{i2} & \cdots & K_{ii} & \cdots & K_{iN} \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ K_{N1} & K_{N2} & \cdots & K_{Ni} & \cdots & K_{NN} \\ \end{bmatrix} \begin{bmatrix} du_1 \\ du_2 \\ \vdots \\ du_i \\ \vdots \\ du_N \end{bmatrix} = \begin{bmatrix} R_1 \\ R_2 \\ \vdots \\ R_i \\ \vdots \\ R_N \end{bmatrix} \]
\[ \Longrightarrow \quad \begin{bmatrix} K_{11} & K_{12} & \cdots & 0 & \cdots & K_{1N} \\ K_{21} & K_{22} & \cdots & 0 & \cdots & K_{2N} \\ \vdots & \vdots & \ddots & \vdots & & \vdots \\ 0 & 0 & \cdots & 1 & \cdots & 0 \\ \vdots & \vdots & & \vdots & \ddots & \vdots \\ K_{N1} & K_{N2} & \cdots & 0 & \cdots & K_{NN} \\ \end{bmatrix} \begin{bmatrix} du_1 \\ du_2 \\ \vdots \\ du_i \\ \vdots \\ du_N \end{bmatrix} = \begin{bmatrix} R_1 - K_{1i} d\bar{u}_i \\ R_2 - K_{2i} d\bar{u}_i \\ \vdots \\ d\bar{u}_i \\ \vdots \\ R_N - K_{Ni} d\bar{u}_i \\ \end{bmatrix} \]

Tukiandika matriki ya coefficients na upande wa kulia baada ya mabadiliko kama \(\tilde{\boldsymbol{K}}\) na \(\tilde{\boldsymbol{R}}\), mtawalia, mlinganyo wa mstari unaopaswa kutatuliwa mwishowe ni

\[ \tilde{\boldsymbol{K}}\, d\boldsymbol{u} = \tilde{\boldsymbol{R}} \]

Ikiwa kuna degree of freedom nyingi zilizofungwa, mabadiliko 1 na 2 hapo juu hutumika kwa mfululizo kwa kila degree of freedom \(i\) iliyofungwa.

Eneo la Uchakataji katika Utekelezaji wa Sparse Matrix

Katika utekelezaji, matriki ya coefficients \(\boldsymbol{K}\) huhifadhiwa katika umbizo la sparse matrix, hivyo uchakataji wa mstari \(j(\not= i)\) katika hatua ya 2 ya sehemu iliyotangulia hufanywa tu kwa mistari yenye vipengele visivyo sifuri katika safu \(i\), yaani degree of freedom za nodi zilizounganishwa kupitia elementi na degree of freedom \(i\) iliyofungwa. Kwa degree of freedom zisizounganishwa, \(K_{ji} = 0\), hivyo kuhamisha term hakubadilishi upande wa kulia. Kizuizi hiki huruhusu uchakataji wa hali ya mpaka kukamilika kwa operesheni za eneo dogo tu ukilinganisha na jumla ya idadi ya nodi.

Mada Zinazohusiana

AI-assisted translation May contain errors Official docs Status