Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Równania

Równanie kwadratowe

SPIS TREŚCI

Algorytm i program

Funkcja kwadratowa ( ang. quadratic function ) jest wielomianem stopnia drugiego:

Współczynniki a, b i c są liczbami rzeczywistymi.

Wykresem funkcji kwadratowej jest parabola:

obrazek

Równanie kwadratowe ( ang. quadratic equation ) powstaje, gdy przyrównamy funkcję kwadratową do zera:

Matematycy już od czasów starożytnych badali równanie kwadratowe, ponieważ często pojawia się ono przy rozwiązywaniu różnych problemów praktycznych.

W zależności od położenia paraboli względem osi OX, mamy następujące przypadki:

  1. Parabola leży ponad osią OX lub poniżej osi OX: równanie nie posiada pierwiastków rzeczywistych:
        obrazek
     
  2. Parabola jest styczna do osi OX, równanie posiada tzw. pierwiastek podwójny:
        obrazek
     
  3. Parabola przecina oś OX, równanie posiada dwa różne pierwiastki:
    obrazek

Równanie kwadratowe rozwiązujemy następująco:

Formalnie rozwiązanie wygląda następująco:

Jeśli współczynnik a jest równy 0, to równanie kwadratowe redukuje się do równania liniowego:

Równanie to rozwiązujemy wg metody opisanej w poprzednim rozdziale.

Jeśli a jest różne od zera, to wyliczamy tzw. wyróżnik delta ( ang. delta discriminant ):

Pierwiastki równania możemy teraz zapisać jako:

W zależności od wartości wyróżnika delta mamy następujące przypadki:

  1. Wyróżnik delta mniejszy od zera, brak pierwiastków rzeczywistych, są dwa pierwiastki zespolone:
       
     
  2. Wyróżnik delta równy zero, pierwiastek podwójny:
       
     
  3. Wyróżnik delta większy od zera, dwa różne pierwiastki rzeczywiste:
        

Zwróć uwagę, że równanie wielomianowe ma zawsze tyle pierwiastków, ile wynosi stopień wielomianu. Jest to własność równań wielomianowych udowodniona przez matematyków. Stąd równanie kwadratowe będące równaniem wielomianowym stopnia drugiego ma zawsze dwa pierwiastki.

Algorytm rozwiązywania równania kwadratowego

Dane wejściowe:

ε dokładność przyrównania do zera
a,b,c współczynniki

Dane wyjściowe

x1, x2 rozwiązania

Zmienne pomocnicze

delta wyróżnik równania

Lista kroków

K01: Jeśli |a| > ε,
to idź do kroku K04
Sprawdzamy, czy a jest różne od zera
K02: Rozwiąż równanie liniowe bx + c = 0 Wykorzystujemy algorytm z poprzedniego rozdziału
K03: Zakończ  
K04: Obliczamy wyróżnik delta
K05: Jeśli |delta| < ε, to

Zakończ
delta = 0? Pierwiastek podwójny
K06: Jeśli delta < 0, to

Zakończ
delta < 0? Dwa pierwiastki zespolone
K07: Dwa pierwiastki rzeczywiste
K08: Zakończ  

Przykładowy program rozwiązuje kilka równań, a algorytm został w nim zaimplementowany w postaci funkcji.

Brak pierwiastków rzeczywistych:

Pierwiastek podwójny:

Dwa pierwiastki rzeczywiste:

Przykładowy program w języku C++
// Równanie kwadratowe
// (C)2019 mgr Jerzy Wałaszek
// Metody numeryczne
//---------------------------

#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

// Tutaj definiujemy dane wejściowe
//----------------------------------
double eps = 1e-12;  // Dokładność porównania z zerem

// Funkcja rozwiązująca równanie kwadratowe
// a,b,c - współczynniki wielomianu
//-----------------------------------------
void qe(double a, double b, double c)
{
    double delta,x1,x2,xre,xim;

    cout << endl;
    cout << "Równanie: " << a << " * x^2 + " << b << " * x + " << c << " = 0" << endl;

    // Jeśli a = 0, to mamy równanie liniowe

    if(fabs(a) < eps)
    {
        cout << "Równanie redukuje się do równania liniowego." << endl;
        if(fabs(b) <= eps)
        {
            cout << "Równanie jest ";
            if(fabs(c) <= eps) cout << " nieoznaczone";
            else               cout << " sprzeczne";
        }
        else
        {
            x1 = - c / b;
            cout << "Wynik x = " << x1;
        }
    }
    else
    {
        // Obliczamy wyróżnik

        delta = b * b - 4 * a * c;

        // W zależności od wartości wyróżnika mamy 3 różne przypadki

        if(fabs(delta) < eps) // 1. delta = 0
        {
            x1 = - b / 2 / a;
            cout << "PIERWIASTEK PODWÓJNY:" << endl
                 << "x1 = x2 = " << x1;
        }
        else if (delta < 0)   // 2. delta < 0
        {
            xre = - b / 2 / a;          // Część rzeczywista
            xim = sqrt(-delta) / 2 / a; // Część urojona
            cout << "PIERWIASTKI ZESPOLONE:" << endl
                 << "x1 = " << xre << " + " << xim << "i" << endl
                 << "x2 = " << xre << " + " << -xim << "i";
        }
        else                  // 3. delta > 0
        {
            delta = sqrt(delta);
            x1 = (- b - delta) / 2 / a;
            x2 = (- b + delta) / 2 / a;
            cout << "PIERWIASTKI RZECZYWISTE:" << endl
                 << "x1 = " << x1 << endl
                 << "x2 = " << x2;
        }
    }
    cout << endl;
}

// Program główny
//---------------

int main()
{
    setlocale(LC_ALL,"");

    cout << fixed;
    cout << "Równania kwadratowe" << endl
         << "-------------------" << endl;

    qe(3,12,15);
    qe(9,12,4);
    qe(1,-1,-2);

    cout << endl;

    return 0;
}
Wynik
Równania kwadratowe
-------------------

Równanie: 3.000000 * x^2 + 12.000000 * x + 15.000000 = 0
PIERWIASTKI ZESPOLONE:
x1 = -2.000000 + 1.000000i
x2 = -2.000000 + -1.000000i

Równanie: 9.000000 * x^2 + 12.000000 * x + 4.000000 = 0
PIERWIASTEK PODWÓJNY:
x1 = x2 = -0.666667

Równanie: 1.000000 * x^2 + -1.000000 * x + -2.000000 = 0
PIERWIASTKI RZECZYWISTE:
x1 = -1.000000
x2 = 2.000000

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.