MOKSLASplius.lt

Keturpoliai, jų matricos ir Fibonacci skaičiai

Keturpoliais vadinamos elektrinės grandinės, kurios turi po vieną įėjimą ir išėjimą. Angliškai keturpolis vadinamas twoport, nes port reiškia perdavimo kanalą arba laidų porą. Keturpolių, bendresniu atveju — daugiapolių, teorija yra plačiai taikoma radiotechnikoje, elektrotechnikoje, akustikoje, ryšių sistemose ir daugelyje kitų sričių, kur susiduriama su signalų perdavimu. Daugiapolių teorija — tai sudėtingų sistemų analizės metodas, kuriame dėmesys kreipiamas į daugiapolio sąveiką su kitais daugiapoliais, o ne į vidinę jų struktūrą. Daugiapolio savybės yra nusakomos matematinėmis matricomis, kurios yra savotiškas daugiapolio pasas. Čia mes modeliuosime keturpolius, sudarytus iš impedansų. Parodysime, kaip sudaroma keturpolio matrica ir kaip nuo impedansų matricos pereinama prie laidumo ir kitokio pavidalo matricų. Pailiustruosime, kaip naudojant keturpolio matricas apskaičiuojama nuosekliai sujungtų keturpolių išdavos matrica. Atskleisime gautos matricos ryšį su Fibonacci skaičiais.

Keturpolio matricos

Nubraižysime keturpolį kartu su signalais jo įvesties ir išvesties prievaduose (portuose).

Vaizdavimo parinktys:

  

Tokio keturpolio ryšys su išoriniu pasauliu, kaip rodo brėžinys, yra nusakomas keturiais parametrais — dviem srovėmis $ i_1 $, $ i_2 $ ir dviem įtampomis $ u_1 $, $ u_2 $. Visų jų kryptys parodytos brėžinyje. Nagrinėsime tiesinius, tai yra tokius keturpolius, kurių įėjimo ir išėjimo signalai proporcingi vienas kitam. Jei manysime, kad srovės yra žinomos, tada pačiu bendriausiu atveju įtampas galėsime apskaičiuoti iš tokios tiesinių lygčių sistemos:

\[ \bigg\{ {\arraycolsep=0.6\arraycolsep \begin{array}{rcl}     u_1&=&z_{11} i_1 + z_{12} i_2, \\     u_2&=&z_{21} i_1 + z_{22} i_2.   \end{array}} \tag{1} \]
Čia $ z_{ij} $ yra keturpolį nusakantys koeficientai. Jų dimensija (omai) sutampa su impedanso dimensija, todėl koeficientus dar vadinsime keturpolio impedansais. Koeficientų $ z_{ij} $ rinkinys yra savotiškas keturpolio pasas.

Gautas lygtis patogu perrašyti matriciniu pavidalu. Tuo tikslu įvesime srovių ir įtampų vektorius bei impedansų matricą $ Z $.

\boldmath\begin{eqnarray*}&&i={i1,i2};\qquad       u={u1,u2};\\&&(Z=\{\{z11,z12\},\{z21,z22\}\})//\mathrm{MatrixForm}\end{eqnarray*}

Priminsime, kad matricos ir vektoriaus sandauga žymima tašku (\boldmath$\mathrm{Dot}[~]$.Keturpolio lygčių sistemą Mathematica kalboje užrašysime tokiu būdu:

\boldmath\begin{eqnarray*}&&(lygciuSistemaU1U2=\mathrm{Thread}[\mathrm{Equal}[u,Z\, . i]])//\mathrm{TableForm}\end{eqnarray*}

Matrica $ Z $ visiškai nusako visas keturpolio savybes. Tačiau tai nereiškia, kad keturpolio srovės būtinai yra nepriklausomi, o įtampos — priklausomi kintamieji. Iš tikrųjų mūsų valia pasirinkti, kuriuos kintamuosius laikysime nepriklausomais. Jei nepriklausomais dydžiais pasirinksime įtampas, tada sroves rasime išsprendę tiesinių lygčių sistemą, kurios koeficientai $ y_{ij} $ yra keturpolio admitansai:

\[ \bigg\{ {\arraycolsep=0.6\arraycolsep \begin{array}{rcl}     i_1&=&y_{11} u_1 + y_{12} u_2, \\     i_2&=&y_{21} u_1 + y_{22} u_2   .   \end{array}} \tag{2} \]
Koks ryšis tarp keturpolio $ z_{ij} $ ir $ y_{ij} $ parametrų? Jį lengvai rasime, pirmosios tiesinių lygčių sistemos sprendinį įstatę į antrąją lygčių sistemą. Palyginę koeficientus prie tų pačių kintamųjų, keturpolio $ y_{ij} $ parametrus galėsime išreikšti per $ z_{ij} $. Daugiapolių atveju, kai polių skaičius viršija keturis, toks skaičiavimas reikalauja daug darbo. Pasinaudojus algebrinių lygčių sprendimo komanda \boldmath$\mathrm{Solve}[~]$, Mathematica jį atliks labai lengvai.
\boldmath\begin{eqnarray*}&&sistemosU1U2sprendinysI1I2=\mathrm{Flatten}[\mathrm{Solve}[lygciuSistemaU1U2,\{i1,i2\}]]\end{eqnarray*}

Įvedę admitanso matricą $ Y $, sudarysime tokią lygčių sistemą:

\boldmath\begin{eqnarray*}&&Y=\{\{y11,y12\},\{y21,y22\}\}; \\&&(lygciuSistemaI1I2=\mathrm{Thread}[\mathrm{Equal}[i,Y\, . u]])//\mathrm{TableForm}\end{eqnarray*}

Į ją įstatę anksčiau rastas sroves gausime:

\boldmath\begin{eqnarray*}&&sulyginimoLygtys1=lygciuSistemaI1I2/.sistemosU1U2sprendinysI1I2\end{eqnarray*}

Sulyginę koeficientus prie $ u_1 $ ir $ u_2 $

\boldmath\begin{eqnarray*}&&(koeficientaiY= \mathrm{Thread}/@\\&&\mathrm{Map}[\{\mathrm{Coefficient}[#1, u1],\mathrm{Coefficient}[#1,u2]\}\&,sulyginimoLygtys1,\{2\}])//\mathrm{TableForm}\end{eqnarray*}

matome, kad $ Y $ matricos koeficientai yra ne kas kita, kaip atvirkštinės matricos $ Z^{-1} $ elementai. Atvirkštinę matricą randame komanda \boldmath$\mathrm{Inverse}[~]$.

\boldmath\begin{eqnarray*}&&(YperZ=\mathrm{Inverse}[Z])//\mathrm{MatrixForm}\end{eqnarray*}

Nepriklausomais keturpolio kintamaisiais gali būti ir kitokios srovės ir įtampos kombinacijos. Pavyzdžiui, radiotechnikos žinynuose paplitusią $ h_{ij} $ parametrų sistemą, kuri nusako tranzistoriaus savybę stiprinti silpnus signalus (silpno signalo atžvilgiu tranzistorius elgiasi kaip tiesinis keturpolis), gausime, jei $ u_1 $ ir $ i_2 $ išreikšime per $ u_2 $ ir $ i_1 $. Skaičiuojame lygiai tokiu pat būdu.

\boldmath\begin{eqnarray*}&&H=\{\{h11,h12\},\{h21,h22\}\}; \\&&(lygciuSistemaU1I2=\mathrm{Thread}[\mathrm{Equal}[\{u1,i2\},H\, . \{u2,i1\}]]);\\&&sistemosU1U2sprendinysU1I2=\mathrm{Flatten}[\mathrm{Solve}[lygciuSistemaU1U2,\{u1,i2\}]]\end{eqnarray*}

Sudarome sulyginimo lygtis ir sulyginame daugiklius prie $ i_1 $ ir $ u_2 $.

\boldmath\begin{eqnarray*}&&sulyginimoLygtys2=lygciuSistemaU1I2/.sistemosU1U2sprendinysU1I2\\&&(koeficientaiH= \mathrm{Thread}/@\\&&\mathrm{Map}[\{\mathrm{Coefficient}[#1, u2],\mathrm{Coefficient}[#1,i1]\}\&,sulyginimoLygtys2,\{2\}])//\mathrm{TableForm}\end{eqnarray*}

Išsprendę šias lygtis $ h_{ij} $ koeficientų atžvilgiu

\boldmath\begin{eqnarray*}&&formalusHSprendinys=\mathrm{Flatten}[\mathrm{Solve}[\mathrm{Flatten}[              koeficientaiH],\{h11,h12,h21,h22\}]]\end{eqnarray*}

ir juos įstatę į formalią $ H $ matricą, gauname $ H $ matricą, išreikštą impedansų matricos elementais.

\boldmath\begin{eqnarray*}&&(HperZ=H /. formalusHSprendinys)//\mathrm{MatrixForm}\end{eqnarray*}

Visos aprašytos $ Z $, $ Y $ ir $ H $ matricos duoda vienodą informaciją apie keturpolio savybes, todėl yra ekvivalentiškos. Jas būtų galima palyginti su įrašais skirtingomis kalbomis to paties piliečio pase. Tuo atveju, kai keturpoliai yra jungiami nuosekliai, t.y. kai vieno išėjimas jungiamas su kito keturpolio įėjimu, patogiausia naudotis $ A $ matrica. Ją apibrėžiant, nepriklausomais kintamaisiais imama išėjimo įtampa $ u_2 $ ir srovė $ i_2 $. Matricos $ A $ elementus rasime iš tokių sprendinių:

\boldmath\begin{eqnarray*}&&A=\{\{a11,a12\},\{a21,a22\}\}; \\&&(lygciuSistemaU2I2=\mathrm{Thread}[\mathrm{Equal}[\{u1,i1\},A\, . \{u2,i2\}]]);\end{eqnarray*}

Toliau skaičiuojame jau žinomu būdu.

\boldmath\begin{eqnarray*}&&sistemosU1U2sprendinysU1I1=\mathrm{Flatten}[\mathrm{Solve}[lygciuSistemaU1U2,\{u1,i1\}]]\\&&sulyginimoLygtys3=lygciuSistemaU2I2/.sistemosU1U2sprendinysU1I1;\\&&(koeficientaiA= \mathrm{Thread}/@\\&&\mathrm{Map}[\{\mathrm{Coefficient}[#1, u2],\mathrm{Coefficient}[#1,i2]\}\&,sulyginimoLygtys3,\{2\}]);\\&&formalusASprendinys=\mathrm{Flatten}[\mathrm{Solve}[\mathrm{Flatten}[              koeficientaiA],\{a11,a12,a21,a22\}]]\end{eqnarray*}

Iš čia seka tokia $ a_{ij} $ parametrų matrica:
\boldmath\begin{eqnarray*}&&(AperZ=A /. formalusASprendinys)//\mathrm{MatrixForm}\end{eqnarray*}

Jei nuosekliai sujungtų keturpolių matricos yra $ A_1, A_2, A_3,\dotsc $, tada įvedus vektorius $ v_1=\{u_1,i_1\} $, $ v_2=\{u_2,i_2\} $, $ v_3=\{u_3,i_3\},\dotsc $ įėjimo ir išėjimo signalus galima užrašyti tokia matricinių lygčių grandinėle: $ v_1=A_1 v_2=A_1 A_2 v_3=A_1 A_2 A_3 v_4=\dotsc $ Iš čia matyti, kad nuoseklaus keturpolio išdavos matrica yra lygi atskirų keturpolių matricų sandaugai. Šia savybe mes dar pasinaudosime.

Jei nagrinėjame sudėtingesnius daugiapolius, perėjimas nuo vienų daugiapolį charakterizuojančių matricų prie kitų atliekamas labai panašiai, tik reikia įdėti žymiau daugiau darbo. Mathematica leidžia visus reikalingus skaičiavimus su matricomis atlikti labai greitai ir visą dėmesį sutelkti į sprendžiamą uždavinį, o ne į matricų aritmetiką. Daugiau žinių apie daugiapolius skaitytojas pasisems knygoje [Krivickas80]

Dvivaržis ir daugiavaržis keturpolis

Panagrinėsime konkretų pavyzdį. Tarkime, turime keturpolį, kuris susideda iš dviejų varžų $ R_1 $ ir $ R_2 $, kaip parodyta žemiau pavaizduotoje keturpolio schemoje.

Vaizdavimo parinktys:

  

Iš piešinio matyti, kad tarp srovių ir įtampų egzistuoja tokie ryšiai:

\[ \bigg\{ {\arraycolsep=0.6\arraycolsep \begin{array}{rl}      u_1&=\,i_1 R_1 + u_2, \\      u_2&=\,R_2 i_{R_2}\,=\,R_2 (i_1-i_2). \end{array}}\tag{3}  \]
Išsprendę lygčių sistemą $ u_1 $ir $ i_1 $ atžvilgiu turime
\boldmath\begin{eqnarray*}&&dvivarzisSprendinys = \mathrm{Simplify}[\mathrm{Flatten}[\mathrm{Solve}[{u1 == i1*R1 + u2, u2 == R2*(i1 - i2)}, {u1, i1}]]]\end{eqnarray*}

Palyginę gautas lygtis su $ a_{ij} $ sistema $ \bigg\{ \!\begin{array}{c}     u_1=a_{11} u_2 + a_{12} i_2 \\     i_1=a_{21} u_2 + a_{22} i_2   \end{array} $ matome, kad $ A $ matrica turi pavidalą

\boldmath\begin{eqnarray*}&&A2varzis = \{\{1 + \frac{R1}{R2}, R1\}, \{1/R2, 1\}\}\end{eqnarray*}

Dabar įsivaizduokime, kad turime ilgą tokių dvivaržių keturpolių grandinėlę, kaip parodyta brėžinyje žemiau.

Vaizdavimo parinktys:

  

Rasime, kam lygi nubraižytos grandinėlės įėjimo varža tarp gnybtų $ A $ ir $ B $, kai grandinėlė yra labai ilga, t.y. kai turime šimtą, tūkstantį ar daugiau nuosekliai sujungtų keturpolių. Paprastumo dėlei manysime, kad visos varžos vienodos: $ R_1=R_2=1\ \Omega $.

\boldmath$A2varzis = A2varzis/.\{R1\to $\boldmath$,R2\to $\boldmath$\}$

  

Sudauginkime gautas elementarias matricas, paėmę $ 3 $, $ 6 $, $ 20 $ ir $ 50 $ tokių dvivaržių grandinėlių.

\boldmath\begin{eqnarray*}&&grandineles = \{a3 = \mathrm{MatrixPower}[A2varzis, 3] . \{u4, u4\}, \\&&\quad a6 = \mathrm{MatrixPower}[A2varzis, 6] . \{u7, u7\}, \\&&\quad a20 = \mathrm{MatrixPower}[A2varzis, 20] . \{u21, u21\}, \\&&\quad a50 = \mathrm{MatrixPower}[A2varzis, 50] . \{u51, u51\}, \\[1pt]&&\quad a_{n} = \mathrm{MatrixPower}[A2varzis, \fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{\vbox to 5pt{}}\smash{n}$}] . \{u_{n+1}, u_{n+1}\}\}//\mathrm{MatrixForm}\end{eqnarray*}

Jūsų vertė \boldmath$n=$

  

Matricų $ A_i $ sandaugos atstojamoji matrica dauginama iš vektorių, kurių skaitmeninės vertės yra $ v_i=\{u_i,i_i\}=\{u_i,\frac{u_i}{R_i}\}=\{u_i,u_i\} $, nes $ R_i=1\ \Omega $. Pirmasis vektorių \boldmath$a3$, \boldmath$a6$ ir t.t. sandas yra įtampa, antrasis — srovė įėjimo gnybtuose $ A-B $, todėl įėjimo varžą omais rasime padaliję pirmajį sandą iš antrojo.

\boldmath$\mathrm{N}[(#[[1]]/#[[2]] \& ) /@ grandineles, $\boldmath$]$

  

Matome, kad įėjimo varža silpnai priklauso nuo elementarių grandinėlių skaičiaus. Ją nulemia jau kelios pirmosios varžos. Įdomiausia tai, kad didėjant grandinėlių skaičiui įėjimo varža artėja prie pastovaus dydžio, kuris, kaip tuojau pamatysime, lygus auksinio santykio pastoviajai ir yra susijęs su Fibonacci skaičiais.

Fibonacci skaičiai ir auksinis santykis

Galima parodyti, kad didėjant grandinėlių skaičiui įėjimo varža artėja prie skaičiaus $ (1+\sqrt{5})/2 $,

\boldmath$\mathrm{N}[\frac{1}{2} (1+\sqrt{5}),$\boldmath$]$

  

kuris viduramžiais buvo pavadintas auksiniu santykiu (lotyniškai proportio divina). Auksinis santykis yra glaudžiai susijęs su Fibonacci seka. Fibonacci (nuo Filius (=sūnus) Bonacci'o), kurio tikrasis vardas Leonardo Pisano, daug keliavo ir senatvę praleido Pizoje, kur 1202 metais išpausdino kūrinį Liber Abaci. Šis kūrinys pakeitė Europą — jo dėka europiečiai pradėjo naudotis arabiškais skaitmenimis ($ 1 $, $ 2 $, $ 3,\ldots $). Veikale yra pateiktas uždavinys apie triušius, kuris iki šiol suteikia įkvėpimo matematikams. Jis skamba taip. $ t=0 $ laiko momentu saloje atsirado triušių pora. Po mėnesio ji atsivedė porą triušiukų. Naujoji pora po mėnesio subrendo. Dar po mėnesio senoji ir naujoji poros vėl atsivedė po porą triušiukų ir t.t. Klausimas: kiek triušių porų saloje bus po $ n $ mėnesių, jei nė vienas triušis per tą laiką nenudvėsė? Taigi, Fibanocci seka apibrėžiama labai paprastai: kiekvienas tolimesnis jos narys lygus prieš tai einančių dviejų narių sumai. Tai nesunku aprašyti rekurentine lygtimi $ F_{n+1}=F_n+F_{n-1},\quad n\geq 1 $ su pradine sąlyga $ F_0=0;\,F_1=1 $, kurią formaliai galima išspręsti rekurentinių lygčių sprendimo komanda \boldmath$\mathrm{RSolve}[~]$. Ji apibrėžta to paties pavadinimo standartiniame pakete.

\boldmath\begin{eqnarray*}&&<<\mathrm{DiscreteMath}{}^\backprime \mathrm{RSolve}{}^\backprime\\&&sprFinobacci=\mathrm{RSolve}[\{F[n+1]==F[n]+F[n-1],F[0]==0,F[1]==1\},F[n],n]\end{eqnarray*}

Mathematica taip pat sugeba apskaičiuoti Fibonacci skaičius komanda \boldmath$\mathrm{Fibonacci}[~]$, nespręsdama šią seką apibrėžiančios lygties. Todėl porų skaičių po $ n $ mėnesių galime sužinoti, iš karto surinkę

\boldmath$\mathrm{Table}[\mathrm{Fibonacci}[n],\{n,$\boldmath$\}]$

  

Jei Fibonacci sekos $ n $-jį narį pažymėsime $ F(n) $, tai tokios sekos dviejų narių santykio riba ir yra auksinis santykis: $ \displaystyle\lim_{n\rightarrow \infty } F(n+1)/F(n)=(1+\sqrt{5})/2=1{,}6180334\ldots $. Tikslų rezultatą nesunku gauti, pasinaudojus rekurentinės lygties sprendiniu.

\boldmath\begin{eqnarray*}&&sant=\frac{F[n]/.\mathrm{First}[sprFinobacci]/.n\to n+1}{F[n]/.\mathrm{First}[sprFinobacci]};\\&&\mathrm{Limit}[sant, n\to \infty]\end{eqnarray*}

Pažiūrėkime, kaip keičiasi santykis $ F(n+1)\big/F(n) $, keičiant $ n $.

\boldmath\begin{eqnarray*}&&\mathrm{Plot}[\{\frac{F_{n+1}}{F_n},\frac{1}{2} (1+\sqrt{5})\},\{n,\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{n_{start}}$},\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{n_{end}}$}\},    AxesLabel\to \{n,\frac{F_{n+1}}{F_n}\},\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{parinktys}$}]\end{eqnarray*}

Piešti nuo \boldmath$n_{start}$= iki \boldmath$n_{end}$=
Piešimo parinktys:

  

Apytikslę skaičiaus $ (1+\sqrt{5})/2 $ vertę jau buvome gavę, nagrinėdami dvivaržę grandinėlę. Grandinėlės atstojamąją varžą taip pat galima išreikšti grandinine trupmena, kurią užrašysime tokiu rekursiniu algoritmu:

\boldmath\begin{eqnarray*}&&\\&&x[0]=\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{p_0}$};\\&&x[n\_]:=1+\frac{1}{x[n-1]}\end{eqnarray*}

Paėmę, pavyzdžiui, $ n=6 $, gausime:

\boldmath$p_0= $
\boldmath$x[$\boldmath$]$

  

Iš jos pavidalo nesunku įžiūrėti ryšį su varžų grandinėlės atstojamosios varžos skaičiavimo algoritmu. Jei paprastumo dėlei paimtume baigtinio ilgio varžų grandinėlę, jos atstojamąją varžą galėtume užrašyti grandinine trupmena — tam reikia kiekvieną kartą prie $ R_2^{-1} $ prisumuoti atstojamąjį laidumą, o prie $ R_1 $ — atstojamąją varžą. Baigus apskaičiavimą galutinė formulė įgis užrašytos grandininės trupmenos pavidalą. Varžų grandinėlės ryšį su Fibonacci skaičiais galėsime įžvelgti, jei pastebėsime, kad grandininę trupmeną ir Fibonacci skaičius, kai $ x(0)=1 $, sieja ryšys $ F(n+1)/F(n)=\boldsymbol{x[n-1]} $. Patikrinkime jį paėmę, pavyzdžiui, $ n=9 $.

\boldmath\begin{eqnarray*}&&\  \\&&\mathrm{N}[\{\mathrm{Fibonacci}[\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{n+1}$}]/\mathrm{Fibonacci}[\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{n}$}],x[\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{n-1}$}]/.p\to\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{p_0}$},\fcolorbox[rgb]{1,0,0}{1,1,1}{$\vphantom{v}\smash{tikslumas}$}\}]\end{eqnarray*}
\boldmath$n+1$=
\boldmath$n\hphantom{-1}$=
\boldmath$n-1$=
\boldmath$p_0$=
Skaitinio įvertinimo tikslumas

  

Taigi, sujungę ilgą vieno omo varžų grandinę ir išmatavę atstojamąją jos varžą, rasime skaitmeninę auksinio santykio vertę.

Literatūra

R. Krivickas ir A. Jočys, "Grandinių teorijos pagrindai", Vilnius , Mokslas, 1980

spausdinti