|
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 |
Funkcja liniowa posiada następujący przepis:
|
|
Nazwa funkcji liniowej pochodzi stąd, iż jej wykres jest linią prostą.
Miejsce zerowe xo funkcji liniowej obliczamy analitycznie:

Jeśli współczynnik a jest równy 0, to na wartość funkcji nie mają wpływu jej argumenty - mówimy wtedy, iż jest to funkcja stała. Jej wykresem będzie linia prosta równoległa do osi OX. Odległość tej prostej od osi OX jest równa współczynnikowi b. Jeśli współczynnik b jest również równy 0, to funkcja przyjmuje wartość 0 dla wszystkich swoich argumentów - rozwiązaniem jest cały zbiór liczb rzeczywistych, czyli brak jednoznacznego rozwiązania. Jeśli b jest różne od 0, to funkcja nie posiada miejsca zerowego. gdyż dla żadnego swojego argumentu nie przyjmuje wartości 0.
Jeśli współczynnik a jest różny od 0, miejsce zerowe wyznaczamy zgodnie z wyprowadzonym wzorem.
Ponieważ współczynnik a mógł być uzyskany na drodze wcześniejszych obliczeń numerycznych i może zawierać błędy zaokrągleń, to przy porównaniu z zerem musimy zastosować podane we wstępie zasady. Otóż zamiast zwykłego sprawdzania, czy:

zastosujemy test:

gdzie ε jest wybraną dokładnością przyrównania do 0. Sądzę, iż ε = 0.0000000001 powinno być w większości typowych przypadków wystarczająco dokładne (jeśli nie, to należy je odpowiednio dostosować).
| a,b | – współczynniki, a,b ∈ R |
| x0 | – miejsce zerowe, x0 ∈ R |
| ε | – dokładność porównania z zerem, ε ∈ R, ε = 0.0000000001 |
| K01: | Czytaj a i b |
| K02: | Jeśli
|
a | < ε
, to idź do kroku K06 |
| K03: |
![]() |
| K04: | Pisz x0 |
| K05: | Zakończ |
| K06: | Pisz "Brak miejsca zerowego" |
| K07: | Zakończ |

Wykonanie algorytmu
rozpoczynamy od odczytania współczynników
a i b wchodzących w skład
przepisu funkcji liniowej:

Następnie sprawdzamy, czy współczynnik a jest równy (dostatecznie bliski) zeru.
Jeśli nie, to wyznaczamy miejsce zerowe xo i wypisujemy je kończąc algorytm.
Jeśli tak, to funkcja f(x) nie posiada jednoznacznego miejsca zerowego (dla b różnego od 0 miejsce takie nie istnieje). Wypisujemy odpowiedni tekst i kończymy algorytm.
W celu uruchomienia przykładów zastosuj projekt aplikacji konsoli (ang. Console Application).
C++// Program oblicza miejsce zerowe dla funkcji liniowej
// f(x) = ax + b
//----------------------------------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// im. Kazimierza Brodzińskiego
// w Tarnowie
//----------------------------------------------------
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
const double EPS = 0.0000000001;
double a,b,x0;
cout << setprecision(4) // 4 cyfry po przecinku
<< fixed; // format stałoprzecinkowy
cout << "Znajdowanie miejsca zerowego dla f(x) = ax + b\n"
"----------------------------------------------\n"
"(C)2006 mgr Jerzy Walaszek I LO w Tarnowie\n\n"
"Podaj wspolczynniki a i b\n\n"
"a = ";
cin >> a;
cout << "\n\nb = ";
cin >> b;
cout << "\n\n----------------------------------------------\n"
"WYNIK\n\n";
if(fabs(a) < EPS)
cout << "Brak miejsca zerowego\n";
else
{
x0 = - b / a;
cout << "x0 = " << setw(10) << x0 << endl;
}
cout << "\n----------------------------------------------\n\n";
system("pause");
return 0;
}
|
Pascal// Program oblicza miejsce zerowe dla funkcji liniowej
// f(x) = ax + b
//----------------------------------------------------
// (C)2006 mgr Jerzy Wałaszek
// I Liceum Ogólnokształcące
// im. Kazimierza Brodzińskiego
// w Tarnowie
//----------------------------------------------------
program mzfl1;
const
EPS = 0.0000000001; // dokładność porównania z zerem
var
a,b,x0 : double;
begin
writeln('Znajdowanie miejsca zerowego dla f(x) = ax + b');
writeln('----------------------------------------------');
writeln('(C)2006 mgr Jerzy Walaszek I LO w Tarnowie');
writeln;
writeln('Podaj wspolczynniki a i b');
writeln;
write('a = '); readln(a);
writeln;
write('b = '); readln(b);
writeln;
writeln('----------------------------------------------');
writeln('WYNIK');
writeln;
if abs(a) < EPS then
writeln('Brak miejsca zerowego')
else
begin
x0 := - b / a;
writeln('x0 = ',x0:10:4);
end;
writeln;
writeln('----------------------------------------------');
writeln('Koniec. Nacisnij klawisz Enter...');
readln;
end.
|
Basic' Program oblicza miejsce zerowe dla funkcji liniowej ' f(x) = ax + b '---------------------------------------------------- ' (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,x0 print "Znajdowanie miejsca zerowego dla f(x) = ax + b" print "----------------------------------------------" Print "(C)2006 mgr Jerzy Walaszek I LO w Tarnowie" Print print "Podaj wspolczynniki a i b" Print Input "a = ", a Print Input "b = ", b Print print "----------------------------------------------" print "WYNIK" Print if abs(a) < EPS then Print "Brak miejsca zerowego" Else x0 = - b / a print Using "x0 = #####.####";x0 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 id="out_t" style="TEXT-ALIGN: center">
Znajdowanie miejsca zerowego dla <i>f(x) = ax + b</i>
</h3>
<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 <i>a</i> i <i>b</i>:
</p>
<p style="TEXT-ALIGN: center">
<i>a</i> =
<input type="text" name="inp_a" size="20" value="25" style="text-align: right">
<i>b</i> =
<input type="text" name="inp_b" size="20" value="-5" style="text-align: right">
</p>
<p style="TEXT-ALIGN: center">
<input type="button" value="Oblicz miejsce zerowe" name="B1" onclick="main()">
</p>
<hr>
<p style="TEXT-ALIGN: center">
<b>WYNIK:</b>
</p>
<p style="TEXT-ALIGN: center" id="t_out">.</p>
</form>
<script language=javascript>
// Program oblicza miejsce zerowe dla funkcji liniowej
// f(x) = ax + b
//----------------------------------------------------
// (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,x0,t;
a = parseFloat(document.frmprg.inp_a.value);
b = parseFloat(document.frmprg.inp_b.value);
if(isNaN(a) || isNaN(b))
t = "<b><font color=red>Złe współczynniki</font></b>";
else
{
if(Math.abs(a) < EPS)
t = "<b><font color=red>Brak miejsca zerowego</font></b>";
else
{
x0 = - b / a;
t = "x<sub>o</sub> = " + x0;
}
}
document.getElementById("t_out").innerHTML = t;
}
</script>
</div>
</body>
</html>
|
| Wynik: |
| Znajdowanie miejsca zerowego
dla f(x) = ax + b ---------------------------------------------- (C)2006 mgr Jerzy Wałaszek I LO w Tarnowie Podaj współczynniki a i b a = 12 b = -3 ---------------------------------------------- WYNIK x0 = 0,2500 ---------------------------------------------- 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.