Másodfokú egyenlet

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez
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 a változó (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:

Az , és betűket együtthatóknak nevezzük: az együtthatója, az együtthatója, és a konstans együttható.

Megoldása[szerkesztés]

A valós vagy komplex együtthatójú másodfokú egyenletnek két komplex gyöke van ( azon értékei, melyekre ), amelyeket általában és 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.

A másodfokú egyenlet megoldóképletében a gyökjel alatti részt az egyenlet diszkriminánsának nevezzük:
Ha valós együtthatós az egyenlet, akkor D>0 esetén 2 valós, D=0 esetén egy valós (kettős gyök), D<0 esetén pedig 2 nem valós, komplex gyöke van.

Megoldóképlet levezetése teljes négyzetté alakítással[szerkesztés]

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

Elosztva a másodfokú egyenletet -val (ami megengedett, mivel )

ami átrendezve

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 alakú teljes négyzetté egészíti ki. Mivel ebben az esetben , ezért , így négyzetét adva mindkét oldalhoz azt kapjuk, hogy

A bal oldal most teljes négyzete. A jobb oldalt egyszerű törtként írhatjuk fel, a közös nevező .

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

Kivonva -t mindkét oldalból megkapjuk a megoldóképletet:

Szélsőérték helye:

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

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

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

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

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

Viète-formulák[szerkesztés]

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:

Kódok[szerkesztés]

HTML(JavaScript)[szerkesztés]

//Ez meg tudja oldani komplex gyökök is
<html>
   <body>
      <form id='page' name='page'>
         <center>
            <input name='a' size=4> * x<sup>2</sup> + <input name='b' size=4> *x + <input name='c' size=4> = 0
            <br>
            <input type='button' value='Root' onclick=' root(); '> 
            <hr>
            x<sub>1</sub> = <input name='x1' size=16 readonly> + <input name='x1i' size=16 readonly> i <br>
            x<sub>2</sub> = <input name='x2' size=16 readonly> + <input name='x2i' size=16 readonly> i <br>
         </center>
      </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("The coefficient of x^2 can not be 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++[szerkesztés]

//Ez meg tudja oldani komplex gyökök 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[szerkesztés]

További információk[szerkesztés]