|
Serwis Edukacyjny Nauczycieli 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),
Przykład:
Rozwiązaniem dla poniższego układu równań:

są dwie liczby:

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

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

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

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
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
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
// 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)
<< fixed;
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";
cout << "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 = "
<< x
<< "\n\ny = "
<< 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
// w Tarnowie
program mzfl2;
const
EPS = 0.0000000001;
var
a,b,c,d,e,f,m,x,y : double;
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:0:4);
writeln;
writeln('y = ',y:0: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
' w Tarnowie
const EPS As Double = 0.0000000001
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
|
Python
(dodatek)# Program rozwiązuje układ
# dwóch równań liniowych
# ax + by + c = 0
# dx + ey + f = 0
#-------------------------
# (C)2026 mgr Jerzy Wałaszek
# I Liceum Ogólnokształcące
# w Tarnowie
eps = 0.0000000001
print("Rozwiązywanie układu " + \
"równań liniowych:")
print("ax + by + c = 0")
print("dx + ey + f = 0")
print("---------------------" + \
"-----------------")
print("(C)2026 mgr J.Wałaszek " + \
"I LO w Tarnowie")
print()
print("Wpisz wartości " + \
"współczynników:")
print()
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
d = float(input("d = "))
e = float(input("e = "))
f = float(input("f = "))
print("---------------------" + \
"-----------------")
print("WYNIKI")
print()
m = d * b - e * a
if abs(m) < eps:
print("Brak rozwiązania")
else:
x = (e * c - f * b) / m
y = (f * a - d * c) / m
print("x = %.4f" % x)
print()
print("y = %.4f" % y)
print()
input("Naciśnij Enter...")
|
| Wynik: |
Rozwiązywanie układu równań liniowych: ax + by + c = 0 dx + ey + f = 0 -------------------------------------- (C)2026 mgr J.Wałaszek I LO w Tarnowie Wpisz wartości współczynników: a = 1 b = 2 c = 3 d = 3 e = -2 f = 2 -------------------------------------- WYNIKI x = -1.2500 y = -0.8750 Naciśnij Enter... |
JavaScript<html>
<head>
</head>
<body>
<div style="overflow-x: auto;"
align="center">
<table
border="0"
cellpadding="4"
style="border-collapse:
collapse">
<tr>
<td nowrap>
<form
name="frmbincode"
style="text-align: center;
background-color:
#E7E7DA" class="nomargin">
<big><b>
Rozwiązywanie układu<br>
równań liniowych
</b></big><br>
<br>
ax + by + c = 0<br>
dx + ey + f = 0<br>
<br>
(C)2026
mgr Jerzy Wałaszek
I LO w Tarnowie
<hr>
Wartości współczynników:<br>
<br>
a = <input
type="text"
name="inp_a"
size="16" value="2"
style="text-align: right">
<br>
b = <input
type="text"
name="inp_b"
size="16"
value="3"
style="text-align: right">
<br>
c = <input
type="text"
name="inp_c"
size="16"
value="-8"
style="text-align: right">
<br>
<br>
d = <input
type="text"
name="inp_d"
size="16"
value="4"
style="text-align: right">
<br>
e = <input
type="text"
name="inp_e"
size="16"
value="-3"
style="text-align: right">
<br>
f = <input
type="text"
name="inp_f"
size="16"
value="2"
style="text-align: right">
<hr>
<input
type="button"
value="Rozwiąż układ"
name="B1"
onclick="main()">
<hr>
<b>Wyniki:</b>
<div id="out">.</div>
</form>
</td>
</tr>
</table>
</div>
<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
.frmbincode.inp_a.value)
b = parseFloat(document
.frmbincode.inp_b.value)
c = parseFloat(document
.frmbincode.inp_c.value)
d = parseFloat(document
.frmbincode.inp_d.value)
e = parseFloat(document
.frmbincode.inp_e.value)
f = parseFloat(document
.frmbincode.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 rozwiązania" +
"</font></b>"
else
{
x = (e * c - f * b) / m
y = (f * a - d * c) / m
t = "x = " + x + "<br>" +
"y = " + y;
}
}
document.getElementById("out")
.innerHTML = t;
}
</script>
</body>
</html> |
![]() |
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.