Hurwitzov kriterij

Ovo je moj pokušaj da implementiram Hurwitzov kriterij u mom programskom jeziku, AEC-u, i compiliram ga tako da se može pokrenuti u internetskom pregledniku, pomoću svog compilera koji prevodi AEC na WebAssembly. S obzirom na to da WebAssembly kôd koji ispisuje moj compiler pretpostavlja da je naredba WebAssembly.Global dostupna, ovo će raditi samo u najnovijim internetskim preglednicima.
Hurwitzov kriterij je, u biti, algoritam da odredimo koliko se korijena nekog polinoma nalazi desno od imaginarne osi (da im je realni dio pozitivan) bez potrebe da se ti korijeni izračunaju. To je korisno jer se za polinome velikog stupnja korijeni, u principu, ne mogu izračunati, a, da bismo odredili je li neki linearni vremenski nepromjenjivi sustav stabilan, dovoljno je dokazati da nazivnik njegove prijenosne funkcije nema korijene (zvani polovi) desno od imaginarne osi. Naime, sustav je stabilan ako za svaku moguću pobudu ima ograničen (ne beskonačan) odziv, a kompleksna frekvencija stvarne pobude nikada ne može imati negativan realni dio. Ako svi polovi sustava imaju negativan realni dio, to znači da amplituda odziva u nazivniku nikad ne može imati nulu (da bude beskonačna), bez obzira na pobudu.

Broj korijena desno od imaginarne osi je: .

Možete vidjeti i izvorni kôd programa pisanog u AEC-u.