Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 4402 razy

Drodzy Czytelnicy, nie chodzi o to, abyście rozwiązywali ręcznie układy równań liniowych, ale o to abyście wiedzieli jak je można rozwiązywać. W przypadku więc, gdy przed wami stanie zadanie rozwiązania jakiegoś dość złożonego układu równań, warto wiedzieć jak ułatwić sobie życie i rozwiązać nie ręcznie ale za pomocą odpowiednich do tego celu przeznaczonych narzędzi.

Rozwiązywanie układów równań za pomocą programu wxMaxima

Weźmy więc układ równań z zadania 1 ze strony Matematyka → Równania liniowe → Rozwiązywanie układów równań liniowych - zadania:

Równanie [1] [1]

Zapis wyrażenia w formacie TeX-a:

\begin{cases} m+z+(g-6)=zg \\ z=\cfrac{1}{2}\cdot g \\ m=2\cdot (g-6) \\ m+z=\cfrac{4}{5}\cdotzg\end{cases}

Układ równań [1] można w najłatwiejszy sposób rozwiązać korzystając z niekomercyjnego programu jakim jest wxMaxima dostępny w wersji na każdy z dostępnych na rynku systemie. Do rozwiązania układów równań służy funkcja algsys([r1, r2, ..., rn],[x1, x2, ..., xn]), która jako argumenty przyjmuje dwie listy: listę równań r1, r2, ..., rn; oraz listę niewiadomych x1, x2, ..., xn. Dla układu równań [1] wystarczy więc napisać taki kod:

algsys([m+z+(g-6)=zg, z=1/2*g, m=2*(g-6), m+z=4/5*zg], [m, z, g,zg]);

aby po chwili program wypluł rozwiązanie:

[[m=4,z=4,g=8,zg=10]]

Z powyższego kodu wynika jednoznacznie, że nie trzeba tutaj nawet się wysilać i podawać odpowiednio przekształconych równań, program sam przekształci te równania i znajdzie rozwiązanie.

Rozwiązywanie układów równań liniowych za pomocą programu pakietu LibreOffice zawierającego moduł arkuszy kalkulacyjnych Calc

Powyższa metoda jest bardzo przyjemna i prosta w użyciu, ale zawsze znajdzie się jakiś gagatek, który zapyta czy w takim arkuszu kalkulacyjnym się da to policzyć? No ludziska kochani, jak ręcznie się da policzyć to i w arkuszu kalkulacyjnym da się policzyć, tylko trzeba wiedzieć jak. Po pierwsze układ równań [1] trzeba przekształcić do postaci następującej:

Równanie [2] [2]

Zapis wyrażenia w formacie TeX-a:

\begin{cases} m+z+g-zg=6 \\ z-\cfrac{1}{2}\cdot g=0 \\ m-2\cdot g=-12 \\ m+z-\cfrac{4}{5}\cdot zg=0\end{cases}

a po drugie trzeba stworzyć tabelkę macierzy, która będzie wyglądała następująco:

ABCDEF
1mzgzgww
2Równanie I11 1-16
3Równanie II01-0,500
4Równanie III10-20-12
5Równanie IV110-0,80

W powyższej tabelce pierwszy wiersz to adresy kolumn, natomiast pierwsza kolumna zwiera adresy wierszy, do których należy wpisać zadane wartości w arkuszu kalkulacyjnym. Oznaczenie ww użyte w tabelce oznacza kolumnę wyrazów wolnych.

Teraz tworzymy w arkuszu kalkulacyjnym macierz główną M w następujący sposób:

A B C D E
7 m z g zg
8 M= =B2 =C2 =D2 =E2
9 =B3 =C3 =D3 =E3
10 =B4 =C4 =D4 =E4
11 =B5 =C5 =D5 =E5

Oczywistym wydaje się fakt, że komórki A8:A11 powinny zostać scalone, natomiast niektóre komórki odwołują się poprzez adresowanie do wcześniej utworzonej tabelki.

Czym prędzej przystąpmy do utworzenia macierzy Mm niewiadomej m:

A B C D E
13 ww z g zg
14 Mm= =F2 =C2 =D2 =E2
15 =F3 =C3 =D3 =E3
16 =F4 =C4 =D4 =E4
17 =F5 =C5 =D5 =E5

Następnie macierz Mz:

A B C D E
15 m ww g zg
16 Mz= =B2 =F2 =D2 =E2
17 =B3 =F3 =D3 =E3
18 =B4 =F4 =D4 =E4
19 =B5 =F5 =D5 =E5

Macierz Mg:

A B C D E
17 m z ww zg
18 Mg= =B2 =C2 =F2 =E2
19 =B3 =C3 =F3 =E3
20 =B4 =C4 =F4 =E4
21 =B5 =C5 =F5 =E5

I ostatnia macierz Mzg:

A B C D E
23 m z g ww
24 Mzg= =B2 =C2 =D2 =F2
25 =B3 =C3 =D3 =F3
26 =B4 =C4 =D4 =F4
27 =B5 =C5 =D5 =F5

Teraz scalić należy komórki G8:G11 oraz H8:H11 i w pierwszej z nich wpisać W= a w drugiej =WYZNACZNIK.MACIERZY(B8:E11). Teraz zaznaczyć komórkę B8 skopiować ctrl+c i wkleić ctrl+v w komórki: H14; H20; H26 i H32. W komórkach: G14 wpisać Wm=; G20 wpisać Wz=; G26 wpisać Wg= oraz do komórki G32 wpisać Wzg=.

Do komórek: J14 wpisać m=; J20 wpisać z=; J26 wpisać g=; J32 wpisać zg=.

W komórkę K14 wpisać =H14/$H$8 a następnie skopiować do komórek K20; K26 i K32.

Wynik będzie mniej więcej taki:

mzgzgww
Równanie I111-16
Równanie II01-0,500
Równanie III10-20-12
Równanie IV110-0,80
mzgzg
M=111-1W=0,3
01-0,50
10-20
110-0,8
wwzgzg
Mm=611-1Wm=1,2m=4
01-0,50
-120-20
010-0,8
mwwgzg
Mz=161-1Wz=1,2z=4
00-0,50
1-12-20
100-0,8
mzwwzg
Mg=116-1Wg=2,4g=8
0100
10-120
110-0,8
mzgww
Mzg=1116Wzg=3zg=10
01-0,50
10-2-12
1100

Rozwiązywanie układów równań za pomocą programu RównaniaLiniowe

Swego czasu napisałem program, który rozwiązuje układy równań liniowych (omawianej już wcześniej) metodą eliminacji Gaussa. Wystarczy wkleić następujący kod do programu:

4 1 1 1 -1 6 0 1 -0.5 0 0 1 0 -2 0 -12 1 1 0 -0.8 0

by ten po chwili wypluł na ekran rozwiązanie z rozpisanymi w następujący sposób etapami:

Przeliczanie macierzy do postaci macierzy jednostkowej: 1 1 1 -1 6 0 1 -0.5 0 0 1 0 -2 0 -12 1 1 0 -0.8 0 Etap 1: 1 1 1 -1 6 0 1 -0.5 0 0 1 0 -2 0 -12 1 1 0 -0.8 0 1 1 1 -1 6 0 1 -0.5 0 0 0 -1 -3 1 -18 0 0 -1 0.2 -6 Etap 2: 1 1 1 -1 6 0 1 -0.5 0 0 0 -1 -3 1 -18 0 0 -1 0.2 -6 1 0 1.5 -1 6 0 1 -0.5 0 0 0 0 -3.5 1 -18 0 0 -1 0.2 -6 Etap 3: 1 0 1.5 -1 6 0 1 -0.5 0 0 -0 -0 1 -0.2857142857 5.142857143 0 0 -1 0.2 -6 1 0 0 -0.5714285714 -1.714285714 0 1 0 -0.1428571429 2.571428571 -0 -0 1 -0.2857142857 5.142857143 0 0 0 -0.08571428571 -0.8571428571 Etap 4: 1 0 0 -0.5714285714 -1.714285714 0 1 0 -0.1428571429 2.571428571 -0 -0 1 -0.2857142857 5.142857143 -0 -0 -0 1 10 1 0 0 0 4 0 1 0 0 4 -0 -0 1 0 8 -0 -0 -0 1 10

Jak widać, program przekształcił to co miał przekształcić i zwrócił to co miał zwrócić, więc nadaje się on do rozwiązywania takich liniowych układów równań.

Załączniki:

Arkusz kalkulacyjny programu LibreOffice z przykładem rozwiązywania układów równań liniowych
Napisany przeze mnie program RownaniaLiniowe
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.