Másodfokú egyenlet

Egy másodfokú függvény grafikonja:
y = x2 - x - 2 = (x+1)(x-2).
Azok a pontok, ahol a grafikon az x-tengelyt metszi, az x = -1 és x = 2, az x2 - x - 2 = 0 másodfokú egyenlet megoldásai.

A matematikában a másodfokú egyenlet egy olyan egyenlet, amely ekvivalens algebrai átalakításokkal olyan egyenlet alakjára hozható, melynek egyik oldalán másodfokú polinom szerepel, tehát az ismeretlen (x) legmagasabb hatványa a négyzet – a másik oldalán nulla (redukált alak). A másodfokú egyenlet általános kanonikus alakja tehát:

a x 2 + b x + c = 0  , ahol  a 0 {\displaystyle ax^{2}+bx+c=0{\mbox{ , ahol }}a\neq 0\,}

Az a {\displaystyle a\,\!} , b {\displaystyle b\,\!} és c {\displaystyle c\,\!} betűket együtthatóknak nevezzük: a {\displaystyle a\,\!} az x 2 {\displaystyle x^{2}\,\!} együtthatója, b {\displaystyle b\,\!} az x {\displaystyle x\,\!} együtthatója, és c {\displaystyle c\,\!} a konstans együttható.

Megoldása

A valós vagy komplex együtthatójú másodfokú egyenletnek két komplex gyöke van, amelyeket általában x 1 {\displaystyle x_{1}\,\!} és x 2 {\displaystyle x_{2}\,\!} jelöl, noha ezek akár egyezőek is lehetnek. A gyökök kiszámítására a másodfokú egyenlet megoldóképletét használjuk.

x = b ± b 2 4 a c   2 a {\displaystyle x={\frac {-b\pm {\sqrt {b^{2}-4ac\ }}}{2a}}}

A másodfokú egyenlet megoldóképletében a gyökjel alatti kifejezést az egyenlet diszkriminánsának nevezzük: D   = b 2 4 a c {\displaystyle D\ =b^{2}-4ac\,\!} .

Ha valós együtthatós az egyenlet, akkor

  • D > 0 esetén két különböző valós gyöke van,
  • D = 0 esetén két egyenlő (kettős gyöke) van,
  • D < 0 esetén nincs megoldása a valós számok között.

Megoldóképlet levezetése teljes négyzetté alakítással

A másodfokú egyenlet megoldóképletét a teljes négyzetté való kiegészítéssel vezethetjük le.

a x 2 + b x + c = 0 {\displaystyle ax^{2}+bx+c=0\,\!}

Elosztva a másodfokú egyenletet a {\displaystyle a\,\!} -val (ami megengedett, mivel a 0 {\displaystyle a\neq 0\,} ).

x 2 + b a x + c a = 0 {\displaystyle x^{2}+{\frac {b}{a}}x+{\frac {c}{a}}=0}

ami átrendezve

x 2 + b a x = c a {\displaystyle x^{2}+{\frac {b}{a}}x=-{\frac {c}{a}}}

Az egyenletnek ebben a formájában a bal oldalt teljes négyzetté alakítjuk. Egy konstanst adunk az egyenlőség bal oldalához, amely x 2 + 2 x y + y 2 {\displaystyle x^{2}+2xy+y^{2}\,\!} alakú teljes négyzetté egészíti ki. Mivel 2 x y {\displaystyle 2xy\,\!} ebben az esetben b a x {\displaystyle {\frac {b}{a}}x} , ezért y = b 2 a {\displaystyle y={\frac {b}{2a}}} , így b 2 a {\displaystyle {\frac {b}{2a}}} négyzetét adva mindkét oldalhoz azt kapjuk, hogy

x 2 + b a x + b 2 4 a 2 = c a + b 2 4 a 2 {\displaystyle x^{2}+{\frac {b}{a}}x+{\frac {b^{2}}{4a^{2}}}=-{\frac {c}{a}}+{\frac {b^{2}}{4a^{2}}}}

A bal oldal most ( x + b 2 a ) {\displaystyle \left(x+{\frac {b}{2a}}\right)} teljes négyzete. A jobb oldalt egyszerű törtként írhatjuk fel, a közös nevező 4 a 2 {\displaystyle 4a^{2}\,\!} .

( x + b 2 a ) 2 = b 2 4 a c 4 a 2 {\displaystyle \left(x+{\frac {b}{2a}}\right)^{2}={\frac {b^{2}-4ac}{4a^{2}}}}

Négyzetgyököt vonva mindkét oldalból

| x + b 2 a | = b 2 4 a c   | 2 a | {\displaystyle \left|x+{\frac {b}{2a}}\right|={\frac {\sqrt {b^{2}-4ac\ }}{|2a|}}\Leftrightarrow } x + b 2 a = ± b 2 4 a c   2 a {\displaystyle x+{\frac {b}{2a}}=\pm {\frac {\sqrt {b^{2}-4ac\ }}{2a}}}

Kivonva b 2 a {\displaystyle {\frac {b}{2a}}} -t mindkét oldalból megkapjuk a megoldóképletet:

x = b 2 a ± b 2 4 a c   2 a = b ± b 2 4 a c   2 a {\displaystyle x=-{\frac {b}{2a}}\pm {\frac {\sqrt {b^{2}-4ac\ }}{2a}}={\frac {-b\pm {\sqrt {b^{2}-4ac\ }}}{2a}}}

Szélsőérték helye: b 2 a {\displaystyle -{\frac {b}{2a}}}

Ha a diszkrimináns értéke negatív, a következőképpen kell számolni:

x = b 2 a ± ( 1 ) ( 4 a c b 2 )   2 a = b 2 a ± i 4 a c b 2   2 a {\displaystyle x=-{\frac {b}{2a}}\pm {\frac {\sqrt {\left(-1\right)\left(4ac-b^{2}\right)\ }}{2a}}=-{\frac {b}{2a}}\pm i{\frac {\sqrt {4ac-b^{2}\ }}{2a}}}

A megoldás ilyenkor egy komplex konjugált gyökpár lesz.

Alternatív módja a megoldóképlet levezetésének

Az előző levezetéssel szemben szinte törtmentesen is teljes négyzetté alakíthatunk, ha első lépésben beszorzunk 4 a {\displaystyle 4a} -val. Ekkor a következőképpen járhatunk el:

a x 2 + b x + c = 0 4 a 2 x 2 + 4 a x b + 4 a c = 0 4 a 2 x 2 + 4 a x b + b 2 + 4 a c = b 2 ( 2 a x ) 2 + 2 ( 2 a x ) ( b ) + b 2 + 4 a c = b 2 ( 2 a x + b ) 2 + 4 a c = b 2 ( 2 a x + b ) 2 = b 2 4 a c | 2 a x + b | = b 2 4 a c 2 a x + b = ± b 2 4 a c 2 a x = b ± b 2 4 a c {\displaystyle {\begin{aligned}ax^{2}+bx+c&=0\\4a^{2}x^{2}+4axb+4ac&=0\\4a^{2}x^{2}+4axb+b^{2}+4ac&=b^{2}\\(2ax)^{2}+2(2ax)(b)+b^{2}+4ac&=b^{2}\\(2ax+b)^{2}+4ac&=b^{2}\\(2ax+b)^{2}&=b^{2}-4ac\\|2ax+b|&={\sqrt {b^{2}-4ac}}\\2ax+b&=\pm {\sqrt {b^{2}-4ac}}\\2ax&=-b\pm {\sqrt {b^{2}-4ac}}\\\end{aligned}}}

Végeredményül pedig ugyanúgy eljutunk a közismert képlethez:

x = b ± b 2 4 a c 2 a {\displaystyle x={\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}}

Viète-formulák

A Viète-formulák egyszerű összefüggések a polinomok gyökei és együtthatói között. A másodfokú egyenlet esetében a következő formájúak:

x 1 + x 2 = b + b 2 4 a c 2 a + b b 2 4 a c 2 a = 2 b + b 2 4 a c b 2 4 a c 2 a = 2 b 2 a = b a {\displaystyle x_{1}+x_{2}={\frac {-b+{\sqrt {b^{2}-4ac}}}{2a}}+{\frac {-b-{\sqrt {b^{2}-4ac}}}{2a}}={\frac {-2b+{\sqrt {b^{2}-4ac}}-{\sqrt {b^{2}-4ac}}}{2a}}={\frac {-2b}{2a}}=-{\frac {b}{a}}}
x 1 x 2 = b + b 2 4 a c 2 a b b 2 4 a c 2 a = ( b + b 2 4 a c ) ( b b 2 4 a c ) 4 a 2 = b 2 ( b 2 4 a c ) 4 a 2 = 4 a c 4 a 2 = c a {\displaystyle x_{1}\cdot x_{2}={\frac {-b+{\sqrt {b^{2}-4ac}}}{2a}}\cdot {\frac {-b-{\sqrt {b^{2}-4ac}}}{2a}}={\frac {(-b+{\sqrt {b^{2}-4ac}})(-b-{\sqrt {b^{2}-4ac}})}{4a^{2}}}={\frac {b^{2}-(b^{2}-4ac)}{4a^{2}}}={\frac {4ac}{4a^{2}}}={\frac {c}{a}}}

Kódok

HTML(JavaScript)

<!-- Ez meg tudja oldani a komplex gyököket is. -->
<html>
    <head>
        <title>Másodfokú egyenlet megoldó</title>
    </head>
    <body>
        <form id='page' name='page'>
            <div style="margin: 20px;">
                <h1>Másodfokú egyenlet megoldó</h1>
                <p><input name='a' size=4> * x<sup>2</sup> + <input name='b' size=4> * x + <input name='c' size=4> = 0
                <p><input type='button' value='Megold' onclick='root();'></p>
                <hr>
                <p>x<sub>1</sub> = <input name='x1' size=16 readonly> + <input name='x1i' size=16 readonly> i</p>
                <p>x<sub>2</sub> = <input name='x2' size=16 readonly> + <input name='x2i' size=16 readonly> i</p>
            </div>
        </form>
        <script>
         function root()
         {
            a = parseFloat(document.page.a.value);
            b = parseFloat(document.page.b.value);
            c = parseFloat(document.page.c.value);
            
            if (a == 0)
            {
                alert("Az x^2 együtthatója nem lehet 0.");
            }
            else
            {
                d = b * b - 4 * a * c;
                
                if (d >= 0)
                {
                    x1 = ((-b+Math.sqrt(d))/2/a);
                    x2 = ((-b-Math.sqrt(d))/2/a);
                    x1i = x2i = 0;
                }
                else
                {
                    x1 = x2 = (-b/2/a);
                    x1i = (Math.sqrt(-d)/2/a);
                    x2i = (-Math.sqrt(-d)/2/a);
                }
                
                document.page.x1.value = x1;
                document.page.x2.value = x2;
                document.page.x1i.value = x1i;
                document.page.x2i.value = x2i;
            }
         }
        </script>
    </body>
</html>

C++

// Ez meg tudja oldani a komplex gyököket is

#include <iostream>
#include <cmath>

using namespace std;

int main() {

  float a, b, c, x1, x2, d, realPart, imaginaryPart;
  cout << "Enter coefficients a, b and c: " << endl;
  cout << "a=";
  cin >> a;
  cout << "b=";
  cin >> b;
  cout << "c=";
  cin >> c;
  d = b * b - 4 * a * c;

  if (d > 0) {
    x1 = (-b + sqrt(d)) / (2 * a);
    x2 = (-b - sqrt(d)) / (2 * a);
    cout << "Roots are real and different." << endl;
    cout << "x1 = " << x1 << endl;
    cout << "x2 = " << x2 << endl;
  } else if (d == 0) {
    cout << "Roots are real and same." << endl;
    x1 = (-b + sqrt(d)) / (2 * a);
    cout << "x1 = x2 =" << x1 << endl;
  } else {
    realPart = -b / (2 * a);
    imaginaryPart = sqrt(-d) / (2 * a);
    cout << "Roots are complex and different." << endl;
    cout << "x1 = " << realPart << "+" << imaginaryPart << "i" << endl;
    cout << "x2 = " << realPart << "-" << imaginaryPart << "i" << endl;
  }

  return 0;
}

Források

  • Weisstein, Eric W.: Másodfokú egyenlet (angol nyelven). Wolfram MathWorld

További információk

  • A megalázott géniusz, YOUPROOF
  • Online kalkulátor, másodfokú egyenlet
  • Másodfokú egyenlet megoldó és számológép
  • matematika Matematikaportál • összefoglaló, színes tartalomajánló lap