|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
W naszym serwisie jest nowszy artykuł o obliczaniu pierwiastków funkcji: "Metody numeryczne".
| SPIS TREŚCI |
| Podrozdziały |
Układ równań liniowych z dwoma niewiadomymi ma następującą postać:

Wyrazy a, b, c, ..., f nazywamy współczynnikami (ang. coefficients), a x i y nazywamy niewiadomymi (ang. variables). Rozwiązaniem takiego układu równań są takie wartości x i y, dla których równanie jest prawdziwe (spełnione).
Przykład:
Rozwiązaniem dla poniższego układu równań:

są dwie liczby: x = 1 oraz y = 2, ponieważ:

Układ równań z dwoma niewiadomymi możemy rozwiązać analitycznie. Oto jeden ze sposobów (nie jedyny i nie najlepszy!). Z pierwszego równania wyznaczamy niewiadomą y:

Wyliczonym wyrażeniem zastępujemy niewiadomą y w drugim równaniu i wyliczamy niewiadomą x:

Otrzymany wzór pozwala wyliczyć niewiadomą x. Wyrażenie to wstawiamy w miejsce x w równaniu pierwszym i wyliczamy y:

Otrzymaliśmy wzory, które pozwalają obliczyć wartość niewiadomych dla danego układu równań liniowych:
![]() |
i |
![]() |
Warunkiem istnienia jednoznacznego rozwiązania układu równań jest niezerowy
mianownik w obu wyznaczonych ułamkach. Zatem wyrażenie

Jeśli warunek powyższy będzie prawdziwy, to układ równań nie będzie posiadał jednoznacznego rozwiązania (o takich równaniach mówimy, iż są sprzeczne lub liniowo zależne). W przeciwnym razie rozwiązanie takie istnieje i wyliczamy je zgodnie z podanymi wzorami.
| a,b,c,d,e,f | – współczynniki układu równań, a,b,c,d,e,f ∈ R |
| x,y | – wartości niewiadomych, x,y ∈ R lub informacja, iż układ równań nie posiada rozwiązania. |
| ε | – dokładność porównania z zerem, ε ∈ R, ε = 0.0000000001 |
| m | – mianownik wspólnego wyrażenia we wzorach na x i y. m ∈ R |
| K01: | Czytaj a,b,c,d,e,f |
| K02: | m ← db - ea |
| K03: | Jeśli |
m | <
ε, to idź do kroku K08 |
| K04: | ![]() |
| K05: | ![]() |
| K06: | Pisz x, y |
| K07: | Zakończ |
| K08: | Pisz "Brak rozwiązania" |
| K09: | Zakończ |

Na początku algorytmu odczytujemy kolejne współczynniki układu równań oraz obliczamy mianownik m, który jest wykorzystywany we wzorach na niewiadome x i y. Dzięki temu zaoszczędzimy nieco na obliczeniach.
Sprawdzamy, czy mianownik m jest w dostatecznie bliskim otoczeniu zera. Jeśli tak, to układ równań nie posiada rozwiązania. Wypisujemy to i kończymy algorytm.
W przeciwnym razie obliczamy niewiadome x i y wg wyprowadzonych wzorów i wypisujemy je. Po tej operacji kończymy algorytm.
Zwróć uwagę, iż koncepcyjnie podany algorytm jest identyczny z algorytmem z poprzedniego rozdziału.
W celu uruchomienia przykładów zastosuj projekt aplikacji konsoli (ang. Console Application).
C++// Program rozwiązuje układ dwóch równań liniowych
// ax + by + c = 0
// dx + ey + f = 0
//------------------------------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// im. Kazimierza Brodzińskiego
// w Tarnowie
//------------------------------------------------
#include <iostream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
using namespace std;
int main()
{
const double EPS = 0.0000000001;
double a,b,c,d,e,f,m,x,y;
cout << setprecision(4) // 4 cyfry po przecinku
<< fixed; // format stałoprzecinkowy
cout << "Rozwiazywanie ukladu rownan liniowych:\n"
"ax + by + c = 0\n"
"dx + ey + f = 0\n"
"--------------------------------------\n"
"(C)2006 mgr J.Walaszek I LO w Tarnowie\n\n"
"Wpisz wartosci wspolczynnikow:\n\n"
"a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "c = "; cin >> c;
cout << "d = "; cin >> d;
cout << "e = "; cin >> e;
cout << "f = "; cin >> f;
cout << "\n--------------------------------------\n"
"WYNIKI\n\n";
m = d * b - e * a;
if(fabs(m) < EPS)
cout << "Brak rozwiazania\n";
else
{
x = (e * c - f * b) / m;
y = (f * a - d * c) / m;
cout << "x = " << setw(10) << x << "\n\ny = " << setw(10) << y << endl;
}
cout << "\n--------------------------------------\n\n";
system("pause");
return 0;
}
|
Pascal// Program rozwiązuje układ dwóch równań liniowych
// ax + by + c = 0
// dx + ey + f = 0
//------------------------------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// im. Kazimierza Brodzińskiego
// w Tarnowie
//------------------------------------------------
program mzfl2;
const
EPS = 0.0000000001; // dokładność porównania z zerem
var
a,b,c,d,e,f,m,x,y : couble;
begin
writeln('Rozwiazywanie ukladu rownan liniowych:');
writeln('ax + by + c = 0');
writeln('dx + ey + f = 0');
writeln('--------------------------------------');
writeln('(C)2006 mgr J.Walaszek I LO w Tarnowie');
writeln;
writeln('Wpisz wartosci wspolczynnikow:');
writeln;
write('a = '); readln(a);
write('b = '); readln(b);
write('c = '); readln(c);
write('d = '); readln(d);
write('e = '); readln(e);
write('f = '); readln(f);
writeln;
writeln('--------------------------------------');
writeln('WYNIKI');
writeln;
m := d * b - e * a;
if abs(m) < EPS then
writeln('Brak rozwiazania')
else
begin
x := (e * c - f * b) / m;
y := (f * a - d * c) / m;
writeln('x = ',x:10:4);
writeln;
writeln('y = ',y:10:4);
end;
writeln;
writeln('--------------------------------------');
writeln('Koniec. Nacisnij klawisz Enter...');
readln;
end.
|
Basic' Program rozwiązuje układ dwóch równań liniowych ' ax + by + c = 0 ' dx + ey + f = 0 '------------------------------------------------ ' (C)2006 mgr Jerzy Wałaszek ' I Liceum Ogólnokształcące ' im. Kazimierza Brodzińskiego ' w Tarnowie '------------------------------------------------ const EPS As Double = 0.0000000001 ' dokładność porównania z zerem Dim As double a,b,c,d,e,f,m,x,y Print "Rozwiazywanie ukladu rownan liniowych:" Print "ax + by + c = 0" Print "dx + ey + f = 0" Print "--------------------------------------" Print "(C)2006 mgr J.Walaszek I LO w Tarnowie" Print Print "Wpisz wartosci wspolczynnikow:" Print Input "a = ",a Input "b = ",b Input "c = ",c Input "d = ",d Input "e = ",e Input "f = ",f Print Print "--------------------------------------" Print "WYNIKI" Print m = d * b - e * a If abs(m) < EPS then Print "Brak rozwiazania" Else x = (e * c - f * b) / m y = (f * a - d * c) / m Print Using "x = #####.####";x Print Print Using "y = #####.####";y End If Print Print "--------------------------------------" Print "Koniec. Nacisnij klawisz Enter..." Sleep End |
JavaScript<html>
<head>
</head>
<body>
<div align="center">
<form style="BORDER-RIGHT: #ff9933 1px outset;
PADDING-RIGHT: 4px;
BORDER-TOP: #ff9933 1px outset;
PADDING-LEFT: 4px;
PADDING-BOTTOM: 1px;
BORDER-LEFT: #ff9933 1px outset;
PADDING-TOP: 1px;
BORDER-BOTTOM: #ff9933 1px outset;
BACKGROUND-COLOR: #ffcc66" name="frmprg">
<h3 style="TEXT-ALIGN: center">
Rozwiązywanie układu równań liniowych
</h3>
<p style="TEXT-ALIGN: center">
<i>ax + by + c = 0<br>
dx + ey + f = 0</i>
</p>
<p style="TEXT-ALIGN: center">
(C)2006 mgr Jerzy Wałaszek I LO w Tarnowie
</p>
<hr>
<p style="TEXT-ALIGN: center">
Podaj wartości współczynników:
</p>
<div align="center">
<table border="0" cellpadding="4"
style="border-collapse: collapse">
<tr>
<td align="right">
<i>a</i> = <input type="text" name="inp_a"
size="20" value="2"
style="text-align: right">
</td>
<td align="right">
<i>b</i> = <input type="text" name="inp_b"
size="20" value="3"
style="text-align: right">
</td>
<td align="right">
<i>c</i> = <input type="text" name="inp_c"
size="20" value="-8"
style="text-align: right">
</td>
</tr>
<tr>
<td align="right">
<i>d</i> = <input type="text" name="inp_d"
size="20" value="4"
style="text-align: right">
</td>
<td align="right">
<i>e</i> = <input type="text" name="inp_e"
size="20" value="-3"
style="text-align: right">
</td>
<td align="right">
<i>f</i> = <input type="text" name="inp_f"
size="20" value="2"
style="text-align: right">
</td>
</tr>
</table>
</div>
<p style="TEXT-ALIGN: center">
<input type="button" value="Rozwiąż układ równań"
name="B1" onclick="main()">
</p>
<hr>
<p style="TEXT-ALIGN: center">
<b>WYNIKI:</b>
</p>
<p style="TEXT-ALIGN: center" id="t_out">.</p>
</form>
<script language=javascript>
// Program rozwiązuje układ dwóch równań liniowych
// ax + by + c = 0
// dx + ey + f = 0
//------------------------------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// im. Kazimierza Brodzińskiego
// w Tarnowie
//------------------------------------------------
function main()
{
var EPS = 0.0000000001;
var a,b,c,d,e,f,m,x,y,t;
a = parseFloat(document.frmprg.inp_a.value);
b = parseFloat(document.frmprg.inp_b.value);
c = parseFloat(document.frmprg.inp_c.value);
d = parseFloat(document.frmprg.inp_d.value);
e = parseFloat(document.frmprg.inp_e.value);
f = parseFloat(document.frmprg.inp_f.value);
if(isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(f))
t = "<b><font color=red>Nieprawidłowe współczynniki</font></b>";
else
{
m = d * b - e * a;
if(Math.abs(m) < EPS)
t = "<b><font color=red>Brak rozwiazania</font></b>";
else
{
x = (e * c - f * b) / m;
y = (f * a - d * c) / m;
t = "x = " + x + ", y = " + y;
}
}
document.getElementById("t_out").innerHTML = t;
}
</script>
</div>
</body>
</html>
|
| Wynik: |
| Rozwiązywanie układu równań
liniowych: ax + by + c = 0 dx + ey + f = 0 -------------------------------------- (C)2006 mgr J.Wałaszek I LO w Tarnowie Wpisz wartości współczynników: a = 2 b = 3 c = -8 d = 4 e = -3 f = 2 -------------------------------------- WYNIKI x = 1,0000 y = 2,0000 -------------------------------------- Koniec. Naciśnij klawisz Enter... |
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.