Polynomin juurien laskin

Etsi polynomin kaikki reaaliset ja kompleksiset juuret aukikirjoitetusta lausekkeesta tai kertoimista jäännöstarkistuksineen.

Polynomi

Syötä polynomi muodossa
Käytä yhtä muuttujaa ja ei-negatiivisia kokonaislukupotensseja valmiiksi aukikirjoitettuna. Termit voivat olla yhtäsuuruusmerkin kummalla puolella tahansa.

Sallittu alue: aste 1–20, |kerroin| ≤ 1e100, murtoluvut sallittu ja 4–12 näytettävää desimaalia.

Suurempi desimaalien määrä tiukentaa lopetuskriteeriä; se ei voi palauttaa kertoimissa menetettyä tarkkuutta.
Kokeile polynomia

Juuret

Juuret ilmestyvät tähän

Syötä polynomi aukikirjoitetussa muodossa tai sen kertoimet ja etsi sitten kaikki juuret.

Aloita syöttämällä polynomi.

Polynomisi ja kaikki laskutoimitukset pysyvät tässä selaimessa, eikä niitä koskaan lähetetä palvelimelle.

UKK

Miten korkeamman asteen juuret löydetään?

Ratkaisin aloittaa useista deterministisistä kompleksisista alkuarvoista ja parantaa kaikkia arvioita samanaikaisesti Ehrlich–Aberth-iteraatiolla. Hornerin menetelmä laskee polynomin ja sen derivaatan arvot tehokkaasti, ja jokainen saatu juuri sijoitetaan takaisin alkuperäiseen polynomiin mittakaavasta riippumatonta jäännöstarkistusta varten.

Ovatko nämä tarkkoja juuria?

Ei. Lineaarista yhtälöä lukuun ottamatta näytetyt juuret ovat numeerisia approksimaatioita. Yli 4. asteen yhtälöille ei ole yleistä ratkaisukaavaa juurilausekkeina, ja alemmanasteisetkin kaavat voivat menettää tarkkuuttaan vaikeilla kertoimilla. Arvioi approksimaatiota jäännöksen ja herkkyysvaroituksen avulla; käytä toisen asteen yhtälön laskinta, kun tarvitset tarkkoja murtolukuja tai juurilausekkeita 2. asteen yhtälölle.

Miksi moninkertaiset juuret ovat epästabiilimpia?

Moninkertaisessa juuressa sekä polynomi että sen derivaatta ovat nollia. Tämä heikentää korjausvaihetta, jolloin pienetkin muutokset kertoimissa voivat jakaa yhden moninkertaisen juuren useiksi lähekkäisiksi juuriksi. Ratkaisin ryhmittelee juuret vain silloin, kun niiden numeeriset arvot ovat erittäin lähellä toisiaan, ja pitää kertaluvun näkyvissä.

Mitä voin syöttää?

Käytä reaalisia, yksiköttömiä kertoimia ja yhtä muuttujaa, jonka kokonaislukupotenssit ovat enintään 20. Lausekkeen on oltava valmiiksi aukikirjoitettu, mutta termit voivat olla epäjärjestyksessä tai yhtäsuuruusmerkin molemmin puolin. Kertoimet luetellaan korkeimmasta potenssista vakiotermiin, ja puuttuvien potenssien kohdalle on merkittävä nolla.

Polynomiyhtälöiden numeerinen ja algebrallinen ratkaiseminen

Tämä työkalu etsii kaikki reaaliset, kompleksiset ja moninkertaiset juuret polynomeille, joiden aste on 1–20. Työkalu laskee juuret numeerisesti, suorittaa jäännös- ja suppenemistarkistukset sekä näyttää tulokset yhdessä kompleksitason kuvaajan ja algoritmin suorituksen välivaiheiden kanssa.

Ehrlich–Aberth-iteraatio ja juurien samanaikainen päivitys

Kun polynomin aste on suurempi kuin 1, suoran lineaarisen ratkaisun sijaan käytetään iteratiivista menetelmää. Tämä työkalu hyödyntää Ehrlich–Aberth-iteraatiota, joka päivittää kaikki juurien arviot samanaikaisesti kompleksitasossa.

Ehrlich–Aberth-iteraatiossa käytetään seuraavaa kaavaa juuriarvioiden päivittämiseen:

"Samanaikainen juurien päivitys"

Algoritmi aloittaa laskennan deterministisistä kompleksisista alkuarvoista, jotka on sijoitettu sopivalle etäisyydelle kompleksitasossa. Jokaisessa iteraatiovaiheessa korjaustermiä lasketaan hyödyntämällä Hornerin menetelmää. Hornerin menetelmä on laskennallisesti tehokas tapa arvioida polynomin ja sen derivaatan arvoja tietyssä pisteessä.

Algoritmin vaiheet ja skaalaus

Laskentaprosessi etenee järjestelmällisesti viiden vaiheen kautta, jotta numeerinen vakaus ja tarkkuus voidaan varmistaa:

  1. Kerää termit normaalimuotoon: ‹polynomial›. Syötetty lauseke puretaan ja järjestetään vakiomuotoon korkeimmasta potenssista alkaen.
  2. Jaa jokainen kerroin korkeimman asteen kertoimella ‹leading›. Tämä normalisointi tekee polynomista pääpolynomin, jolloin korkeimman asteen termin kertoimeksi tulee 1.
  3. Skaalaa juurien etsintää kertoimella R = ‹scale›, jotta alkuarviot pysyvät vakaalla alueella. Skaalauksella varmistetaan, etteivät erittäin suuret tai pienet kertoimet aiheuta numeerista ylivuotoa tai alivuotoa laskennan alkuvaiheessa.
  4. Päivitä kaikkia juuriarvioita yhdessä, kunnes korjaus on alle ‹tolerance›; tässä ajossa käytettiin ‹iterations› iteraatiota. Iteraatiota jatketaan, kunnes juuriarvioiden muutokset alittavat asetetun tarkkuusrajan.
  5. Sijoita jokainen juuri takaisin polynomiin; suurin normalisoitu jäännös on ‹residual›. Tämä vaihe varmistaa, että löydetyt arvot todella ovat polynomin nollakohtia.

Polynomin herkkyys ja moninkertaiset juuret

Numeerisessa juurenetsinnässä kohdataan usein tilanteita, joissa juuret ovat erittäin herkkiä kertoimien pienille muutoksille. Tämä ilmiö korostuu erityisesti silloin, kun polynomilla on moninkertaisia juuria tai useita juuria hyvin lähellä toisiaan.

Moninkertaisessa juuressa sekä polynomin arvo että sen derivaatan arvo ovat nollia. Koska derivaatta lähestyy nollaa juuren lähellä, numeerisen korjausvaiheen jakaja pienenee huomattavasti, mikä heikentää suppenemisen vakautta. Pienikin pyöristysvirhe kertoimissa voi aiheuttaa sen, että yksi moninkertainen juuri jakautuu kompleksitasossa useaksi erilliseksi juureksi. Jos laskenta havaitsee tällaisen tilanteen, se antaa varoituksen: "Juuret löytyivät, mutta moninkertaiset tai erittäin lähekkäiset juuret tekevät osasta näytetyistä numeroista herkkiä pienille kertoimien muutoksille."

Juurten esittäminen kompleksitasossa

Koska polynomin juuret voivat olla reaalisia tai kompleksisia, ne voidaan visualisoida kaksiulotteisella tasolla. Kompleksiluku esitetään muodossa a + bi, missä a on reaaliosa (vaaka-akseli) ja b on imaginaariosa (pystyakseli).

Työkalun osio "Juuret kompleksitasossa" kartoittaa kaikki löydetyt juuret graafisesti. Tämä auttaa hahmottamaan juurten symmetrian: reaaliertoimisilla polynomeilla kompleksiset juuret esiintyvät aina liittolukupareina eli konjugaatteina (a + bi ja a - bi), jolloin ne ovat peilikuvia vaaka-akselin suhteen.

Syötteiden määrittely ja rajoitukset

Työkalua käytettäessä käyttäjä voi valita kahden eri syöttötavan välillä kohdassa "Syötä polynomi muodossa":

  • Aukikirjoitettu lauseke: Yhden muuttujan yhtälö tai lauseke, jossa termit voivat olla yhtäsuuruusmerkin kummalla puolella tahansa.
  • Kertoimet: Lista yksiköttömistä reaaliluvuista, jotka on erotettu pilkuilla, välilyönneillä tai rivinvaihdoilla, alkaen korkeimmasta potenssista vakiotermiin. Puuttuvien potenssien kohdalle on merkittävä 0.

Laskentaa rajoittavat seuraavat matemaattiset ja tekniset säännöt:

  • Polynomin asteen on oltava väliltä 1–20.
  • Kertoimien on oltava reaalisia ja niiden itseisarvon on oltava enintään 1e100 (|kerroin| ≤ 1e100). Murtoluvut ovat sallittuja kertoimina.
  • Syötteen pituus saa olla enintään 600 merkkiä.
  • Näytettävien desimaalien määräksi voidaan valita 4–12. Suurempi tarkkuusasetus tiukentaa laskennan lopetuskriteeriä, mutta se ei voi korjata kertoimien pyöristyksessä jo menetettyä tarkkuutta.

Jos syötteessä on virheitä, työkalu näyttää jonkin seuraavista virheilmoituksista:

  • Jos kenttä on tyhjä: "Syötä polynomi tai kertoimet."
  • Jos pituus ylittyy: "Pidä syöte alle 600 merkin pituisena."
  • Jos syntaksi on virheellinen: "Tämä ei ole aukikirjoitettu yhden muuttujan polynomi. Kokeile muotoa x^5 - x = 0 tai syötä kertoimet."
  • Jos syötteessä on sulkeita: "Poista sulkeet ensin, jotta jokaisella potenssilla on selkeä kerroin."
  • Jos muuttujia on useita: "Käytä vain yhtä muuttujaa."
  • Jos potenssit ovat virheellisiä: "Käytä kokonaislukupotensseja väliltä 0–20."
  • Jos kerroin ei ole kelvollinen: "Jokaisen kertoimen on oltava reaaliluku, kuten −2.5, 3/4 tai 1e-6."
  • Jos nimittäjänä on nolla: "Murtoluvun nimittäjä ei voi olla 0."
  • Jos arvot ovat liian suuria: "Kerroin tai välivaiheen skaalaus on tuetun äärellisen alueen ulkopuolella. Skaalaa polynomi uudelleen ja yritä uudelleen."
  • Jos desimaaliasetus on virheellinen: "Valitse 4–12 desimaalin väliltä."

Erikoistapauksissa työkalu ilmoittaa seuraavasti:

  • Jos syötteenä on nollasta poikkeava vakio: "Nollasta poikkeava vakio ei ole koskaan 0, joten tällä polynomilla ei ole juuria."
  • Jos syötteenä on nollapolynomi: "Jokainen kompleksiluku on nollapolynomin juuri."

Tietosuoja ja suorituskyky

Kaikki laskutoimitukset ja syötetyt polynomit käsitellään paikallisesti suoraan käyttäjän selaimessa. Tietoja ei lähetetä ulkoisille palvelimille, mikä varmistaa, että syötetyt tiedot pysyvät laitteellasi.


Usein kysytyt kysymykset

Ovatko nämä tarkkoja juuria?
Ei. Lineaarista yhtälöä lukuun ottamatta näytetyt juuret ovat numeerisia approksimaatioita. Yli 4. asteen yhtälöille ei ole yleistä ratkaisukaavaa juurilausekkeina, ja alemmanasteisetkin kaavat voivat menettää tarkkuuttaan vaikeilla kertoimilla. Arvioi approksimaatiota jäännöksen ja herkkyysvaroituksen avulla; käytä toisen asteen yhtälön laskinta, kun tarvitset tarkkoja murtolukuja tai juurilausekkeita 2. asteen yhtälölle.

Mitä voin syöttää?
Käytä reaalisia, yksiköttömiä kertoimia ja yhtä muuttujaa, jonka kokonaislukupotenssit ovat enintään 20. Lausekkeen on oltava valmiiksi aukikirjoitettu, mutta termit voivat olla epäjärjestyksessä tai yhtäsuuruusmerkin molemmin puolin. Kertoimet luetellaan korkeimmasta potenssista vakiotermiin, ja puuttuvien potenssien kohdalle on merkittävä nolla.

Miten korkeamman asteen juuret löydetään?
Ratkaisin aloittaa useista deterministisistä kompleksisista alkuarvoista ja parantaa kaikkia arvioita samanaikaisesti Ehrlich–Aberth-iteraatiolla. Hornerin menetelmä laskee polynomin ja sen derivaatan arvot tehokkaasti, ja jokainen saatu juuri sijoitetaan takaisin alkuperäiseen polynomiin mittakaavasta riippumatonta jäännöstarkistusta varten.

Miksi moninkertaiset juuret ovat epästabiilimpia?
Moninkertaisessa juuressa sekä polynomi että sen derivaatta ovat nollia. Tämä heikentää korjausvaihetta, jolloin pienetkin muutokset kertoimissa voivat jakaa yhden moninkertaisen juuren useiksi lähekkäisiksi juuriksi. Ratkaisin ryhmittelee juuret vain silloin, kun niiden numeeriset arvot ovat erittäin lähellä toisiaan, ja pitää kertaluvun näkyvissä.