IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Výpočet riešenie kvadratickej rovnice

V minulej lekcii, LU rozklad, vlastné čísla a definitnost matíc , sme sa naučili robiť LU rozklad, ukázali si jeho aplikácie a dozvedeli sa, čo sú to vlastné čísla a definitnost matíc.

Budeme riešiť kvadratickú rovnicu tvaru ax 2 + bx + c = 0 v obore reálnych čísel pomocou diskriminant.

Najskôr zadáme z klávesnice koeficienty a (kvadratický člen), b (lineárne člen), c (absolútny člen) a podmienkou ošetríme nasledujúce prípady:

  1. a = 0, b = 0, c = 0 (všetky koeficienty sú nulové)
  • Riešením je každé reálne číslo.
  1. a! = 0 (kvadratický člen je rôzny od nuly)

Ak sa b alebo c rovná nule, kvadratická rovnica je neúplná, ale možno ju spočítať. Rovnica má jedno, dve alebo žiadne riešenie. Počet riešenie vypočítame pomocou diskriminant a zanedbáme, že by to išlo v prípade nulových koeficientov bac málinko rýchlejšie (už takto je tam tých podmienok dosť :) Keby to niekomu vadilo, nie je problém upraviť)

d = b 2 - 4ac.

Ak je d> 0, rovnica má 2 riešenia:

  • x1 = (-b - sqrt (b 2 - 4ac)) / 2a
  • x2 = (-b + sqrt (b 2 - 4ac)) / 2a

Ak je d = 0, rovnica má jedno riešenie:

  • x = (-b + sqrt (b 2 - 4ac)) / 2a

V prípade d <0:

  • Rovnica nemá v obore reálnych čísel riešenia.
  1. a = 0 (kvadratický člen je nulový)

Bez kvadratického členovi sa nejedná o kvadratickú rovnicu. Môže ísť buď o rovnicu lineárne alebo to rovnica vôbec nie je.

3a) b! = 0 (b je rôzne od nuly)

Jedná sa o lineárny rovnicu a riešením je: x = -c / b

3b) b = 0 (b je nulové)

Nie je to rovnice, nie je potrebné riešiť.

Vývojový diagram

Vývojový diagram hľadanie riešení kvadratickej rovnice - Matematické algoritmy

Zdrojový kód [PASCAL]

uses crt;
var a,b,c,x1,x2,d : real;
                          { vyznam promennych : a,b,c . . . koeficienty
                                                x1,x2 . . . koreny rovnice
                                                d . . . . . diskriminant     }

begin
 clrscr;
 { ************************** zadavani koeficientu ************************* }
 writeln('Zadejte prosim koeficienty kvadraticke rovnice: ');
 write('a : ');
 readln(a);
 write('b : ');
 readln(b);
 write('c : ');
 readln(c);
 { *********************** osetreni koeficientu a vypocet ********************* }
 if (a = 0) and (b = 0) and (c = 0) then begin
  writeln('Toto neni kvadraticka rovnice');
  write('Vsechna realna cisla jsou resenim.');
 end else
 if (a = 0) then begin
  if (b <> 0) then
   write('Rovnice je linearni: x = ',-c/b);
    else
     write('Toto neni rovnice!');
 end else
 begin
  d:=sqr(b) - (4 * a * c);
  if (d > 0) then begin
   x1:=(-b - sqrt(sqr(b) -4 * a * c)) / (2 * a);
   x2:=(-b + sqrt(sqr(b) -4 * a * c)) / (2 * a);
   writeln('Rovnice ma dve reseni : x1 = ',x1);
   writeln('                        x2 = ',x2);
  end else
  if (d = 0) then begin
   x1:=(-b - sqrt(sqr(b) -4 * a * c)) / (2 * a);
   writeln('Rovnice ma jedno reseni : x = ',x1);
  end else
  writeln('Rovnice nema reseni v oboru realnych cisel');
 end;
end.

 

Predchádzajúci článok
LU rozklad, vlastné čísla a definitnost matíc
Všetky články v sekcii
Matematické algoritmy
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity