FreeMat
Obsah 4. kapitoly
4. Riešenie rovníc
4.1. Základy práce s mnohočlenmi
4.2. Riešenie lineárnych algebraických rovníc
4.3. Riešenie obyčajných diferenciálnych rovníc
4. Riešenie rovníc
4.1. Základy práce s mnohočlenmi
4.2. Riešenie lineárnych algebraických rovníc
-
metódy priame = hľadanie presného riešenia bez zaokrúhľovania rôzne varianty Gaussovej eliminačnej metódy)
-
metódy iteračné = výsledkom je istá aproximácia riešenia po konečnom počte iterácií
\begin{equation} R * I = U_b \end{equation} \begin{equation} G * U = I_b \end{equation}
I - je vektor hľadaného riešenia (hľadané prúdy resp. napätia)
Ub – vektor známych pravých strán (budiace napätia resp. prúdy)
Je daný obvod na obr.25. Vypočítajte I1 - červená šípka, I2 – zelená šípka a I3 – modrá šípka. U1 = U2 = 5 V, R1 = 10 Ω, R2 = 50 Ω.
-
Zostavíme si obvodové rovnice pre jednotlivé slučky:
\begin{equation} I_1 + I_2 - I_3 = 0 \end{equation} \begin{equation} (R_1 + R_2) * I_1 - R_1 * I_2 = U_1 \end{equation} \begin{equation} R_1 * I_2 + (R_1 + R_2) * I_3 = U_2 \end{equation} -
Teda nám vzniknú tri matice:
-
Zadefinujeme matice vo FreeMat-e a keďže platí A*x=b a x=A\b (viď príkazy pre prácu s maticami v predošlej kapitole), tak v našom prípade I = R\U, pričom I, R, U predstavujú príslušné matice (obr.26).
\begin{equation} \begin{pmatrix} 1 & 1 & -1 \\ 60 & 10 & 0 \\ 0 & 10 & 60 \end{pmatrix} * \begin{pmatrix} I_1 \\ I_2 \\ I_3 \end{pmatrix} = \begin{pmatrix} 0 \\ 5 \\ 5 \end{pmatrix}\end{equation}
4.3. Riešenie obyčajných diferenciálnych rovníc
\begin{equation} y^{(n)} = f(t,y,y',y'',y''', ... , y^{(n - 1)}) \end{equation}
\begin{equation} y_1^' = y_2 \end{equation} \begin{equation} y_2^' = y_3 \end{equation} \begin{equation} \vdots \end{equation} \begin{equation} y_n^' = f(t, y_1, y_2, ... , y_n)\end{equation}
-
vytvorenie m-súboru, v ktorom bude zápis vlastnej diferenciálnej rovnice, vždy vo formáte sústavy obyčajných diferenciálnych rovníc prvého rádu
-
riešenie metódou ODE45, teda Runge – Kutta metódou, a zápis syntaxe príkazu
-
vykreslenie výsledku riešenia
Sériový rezonančný obvod je v čase t=0 pripojený na zdroj jednosmerného napätia. Počiatočné
\begin{equation} i_1'' + 10^3 * i_1' + 10^9 * i_1 = 0\end{equation}
-
Do Command Window napíšeme príkaz „edit“, čím spustíme editor zdrojových kódov
-
Zapíšeme do súboru text ako je na obr. 27.
-
Z ponuky menu v hornej lište vyberieme File/Save as... (Súbor/uložiť ako...) a uložíme súbor ako RLC.m (najlepšie do priečinku Work). Je nutné si uvvedomiť, že v RLC.m je diferenciálna rovnica napísaná ako sústava dvoch rovníc:
-
Vytvoríme ďalší skript príkazov (je možné písať aj priamo do Command Window, ale pre názornosť postupnosti príkazov je použitý skript) napíšeme príkazy ako na obr. 28.
-
Dostaneme výsledok v podobe grafu (obr.29)
\begin{equation} i_1' = i_2\end{equation} \begin{equation} i_2' = - 10^3 * i_2 - 10^9 * i_1\end{equation}
'AbsTol' – Absolútna tolerancia, prednastavené je 1e-6.
'RelTol' – Relatívna tolerancia, prednastavené je 1e-3.
'MaxStep' – maximálna veľkosť kroku, prednastavené je časová oblasť/10.
'InitialStep' – Veľkosť počiatočného kroku, prednastavené je MaxStep/100.
'Stepper' – Obídenie Fehlbergovho integrátora.
'Events' – Zabezpečenie funkcie pri nejakej udalosti.
'Projection' – Zabezpečenie projekčnej funkcie.
- prečítané 4277x