Privacy Policy Cookie Policy Terms and Conditions Bairstow-Verfahren - Wikipedia

Bairstow-Verfahren

aus Wikipedia, der freien Enzyklopädie

Das Bairstow-Verfahren ist ein Iterationsverfahren der numerischen Mathematik und dient dazu, die Nullstellen eines Polynoms zu bestimmen. Genauer bestimmt dieses Verfahren einen reellen quadratischen Faktor eines Polynoms mit reellen Koeffizienten. Die reellen oder komplexen Nullstellen dieses quadratischen Faktors können dann mit der bekannten Formel zum Lösen quadratischer Gleichungen bestimmt werden. Weitere Nullstellen können aus dem verbleibenden Polynom nach Abspalten des quadratischen Faktors gewonnen werden.

Wie jedes iterative Verfahren hängt der Erfolg und die schnelle Konvergenz von der Wahl eines guten Startpunktes, d.h. initialen quadratischen Faktors ab, der schon fast ein Faktor des Polynoms ist. Im Falle eines zufällige gewählten Startpunktes ergibt sich ein Verhalten, wie es im Newton-Fraktal visualisiert wird. Hat das zu lösende Polynom mehrfache Nullstellen oder dicht beeinanderliegende Cluster von Nullstellen, so kann dieses Verfahren daran scheitern, diese zu finden.

Inhaltsverzeichnis

[Bearbeiten] Merkmale des Verfahrens

Polynome mit reellen Koeffizienten wie z.B. x2 + 1 können auch komplexe Nullstellen haben. Mit Verfahren wie der Regula Falsi und dem Newton-Verfahren, die nur eine Nullstelle finden, ist es nicht möglich, komplexe Nullstellen zu finden, ohne dass auch die Berechnung im Komplexen mit komplexer Arithmetik ausgeführt wird. Das Bairstow-Verfahren nutzt die Eigenschaft von Polynomen mit reellen Koeffizienten, die besagt, dass komplexe Nullstellen immer paarweise konjugiert auftreten. Das Verfahren findet die Nullstellen als Paar und liefert eine quadratische Gleichung mit reellen Koeffizienten, die das Nullstellenpaar liefert.

Die Merkmale des Verfahrens in der Zusammenfassung:

  • Bei einem Polynom mit reellen Koeffizienten arbeitet das Bairstow-Verfahren vollständig im Reellen und
  • findet auch eventuell auftretende, paarweise konjugiert komplexen Nullstellen (a+bi und a-bi).
  • Die Nullstellenberechnung wird auch Programmen zugänglich, die mit komplexer Arithmetik nicht umgehen können
  • Eine Iteration in reeller Arithmetik ist erheblich schneller als eine Iteration in komplexer Arithmetik.

Das Bairstow-Verfahren ist aus dem Newton-Verfahren abgeleitet und konvergiert wie dieses mit 2. Ordnung.

[Bearbeiten] Beschreibung des Verfahrens

Gegeben sei ein Polynom n-ten Grades, dessen Nullstellen gesucht werden:

f(x) = f_n \cdot x^n + f_{n-1} \cdot x^{n-1} + ... + f_1 \cdot x + f_0.

Die Koeffizienten des Polynoms sind sämtlich reelle Zahlen. Würde man nun in einer direkten Anwendung des Newton-Verfahrens auf die Gleichung f(x) = 0 mit einem reellen Startwert beginnen, so wären alle Glieder der Iterationsfolge wieder reell. Um auch komplexe Nullstellen zu finden, müsste die Rechnung mit komplexen Zahlen durchgeführt werden. Das war bei älteren Programmiersprachen nicht ohne größeren Aufwand möglich.

Jedoch haben Polynome f(x) mit reellen Koeffizienten die Eigenschaft, dass komplexe Nullstellen immer in konjugiert komplexen Paaren auftreten, ist z=u+i\,v eine Nullstelle, so auch \bar z=u-i\,v. Das quadratische Polynom

a(x)=(x-z)(x-\bar z)=(x-u)^2+v^2=x^2-2ux+(u^2+v^2),

welches die Nullstellen z,\bar z hat, ist auch ein Faktor des Polynoms f(x) und hat ebenfalls nur reelle Koeffizienten. Statt also direkt Nullstellen zu bestimmen, werden zunächst quadratische Faktoren gesucht.

Ist a(x) = x2 + a1x + a0 ein quadratischer Faktor von f(x), so gibt es einen weiteren Faktor b(x) vom Grad n-2. Betrachtet man die Koeffizienten von a und b als Unbestimmte, so ist die Gleichung f(x)=a(x)b(x) zu lösen. Nach einem Koeffizientenvergleich ergibt sich ein System quadratischer Gleichungen in den Koeffizienten

\begin{matrix}   f_n&=&b_{n-2}\\   f_{n-1}&=&b_{n-3}+a_1b_{n-2}\\   f_{n-2}&=&b_{n-4}+a_1b_{n-3}+a_0b_{n-2}\\     &\vdots&\\   f_j&=&b_{j-2}+a_1b_{j-1}+a_0b_j\\     &\vdots&\\   f_2&=&b_0+a_1b_1+a_0b_2\\   f_1&=&a_1b_0+a_0b_1\\   f_0&=&a_0b_0 \end{matrix}

Aus den oberen Gleichungen lassen sich die Koeffizienten von b(x) aus denen von a(x) und f(x) bestimmen, aus den letzten zwei Gleichungen ergibt sich dann das System, welches mittels des Newton-Verfahrens gelöst werden soll.

Die notwendige Bestimmung auch der Ableitungen des Gleichungssystems kann mit algebraischen Mitteln vereinfacht werden.

[Bearbeiten] Mathematische Begründung

Es wird eine Faktorisierung f(x) = a(x)b(x) mit einem quadratischen Faktor a(x) und einem verbleibenden Faktor b(x) gesucht. Ist jedoch a(x) nur ein näherungsweiser Faktor, so hinterlässt die Division mit Rest von f(x) durch a(x) mit Ergebnis b(x) einen Rest r(x),

p(x) = a(x)b(x) + r(x).

Da a(x) quadratisch ist, ist r(x) linear oder konstant. Es wird nun ein lineares Polynom Δa(x) gesucht, so dass a(x) + Δa(x) eine bessere Näherung für einen Faktor von f(x) ist. Ist das verbesserte Polynom sogar ein exakter Faktor, so gibt es ein Polynom Δb(x) vom Grad n-3 mit

f(x)=\left(a(x)+\Delta a(x)\right)\cdot\left(b(x)+\Delta b(x)\right)

Im Newton-Verfahren werden nur Terme erster Ordnung in den Koordinaten des Änderungsvektors betrachtet, alle höhergradigen Ausdrücke werden vernachlässigt. In erster Ordnung ergibt unter Kombination beider Gleichungen

r(x)=f(x)-a(x)b(x)=a(x)\cdot\Delta b(x)+\Delta a(x)\cdot b(x).

Diese Gleichung kann in ein lineares Gleichungssystem für die Koeffizienten von Δa(x) und Δb(x) umgewandelt werden. Sie kann jedoch mit algebraischen Mitteln weiter vereinfacht werden, so dass das schließlich zu lösende lineare System zwei Variable und genausoviele Gleichungen hat.

Da degΔa(x) < dega(x) gilt, ist das Polynom Δa(x) der Vertreter kleinsten Grades in seiner Restklasse modulo a(x). Da a(xb(x) in der Restklasse der Null liegt, muss

r(x)\equiv \Delta a(x)\,b(x)\mod a(x)

gelten. Nun kann auch das Polynom b(x) modulo a(x) reduziert werden, nach einer weiteren Division mit Rest ergeben sich ein Quotient q(x) und ein linearer Rest p(x) mit b(x) = q(x)a(x) + p(x). Es ergibt sich

r(x)\equiv \Delta a(x)p(x)\mod a(x) bzw. r(x)=\Delta a(x)p(x)-p_1\Delta a_1\cdot a(x).

Als Gleichungssystem ausgeschrieben bedeutet dies

\begin{pmatrix}r_0\\r_1\end{pmatrix}   =\begin{pmatrix}p_0 & -p_1a_0\\ p_1 & p_0-p_1a_1\end{pmatrix}      \cdot\begin{pmatrix}\Delta a_0\\\Delta a_1\end{pmatrix}.

Die Determinante der Systemmatrix ist D=p_0^2+p_1(a_0p_1-a_1p_0). Ist diese von Null verschieden, so ergibt sich die Lösung des Systems und damit die Änderung des quadratischen Faktors g(x) als

\begin{pmatrix}\Delta a_0\\\Delta a_1\end{pmatrix}   =\frac1D\begin{pmatrix}p_0-p_1a_1 & p_1a_0\\ -p_1 & p_0\end{pmatrix}      \cdot\begin{pmatrix}r_0\\r_1\end{pmatrix} =\begin{pmatrix}p_0r_0+p_1(a_0r_1-a_1r_0)\\p_0r_1-p_1r_0\end{pmatrix}.

Für den nächsten Schritt wird a(x) durch a(x) + Δa(x) ersetzt und von vorn begonnen. Man kann abbrechen, wenn die Koeffizienten des Rests r(x) sämtlich eine vorher gesetzte Schranke unterschreiten.


[Bearbeiten] Grundzüge

Das Verfahren beruht auf folgenden Schritten:

  1. Aus den Startwerten der Iteration für zwei Nullstellen wird ein quadratisches Polynom konstruiert.
  2. Das Polynom n-ten Grades wird durch dieses quadratische Polynom dividiert
  3. Das bei der Division entstehende Polynom (n − 2)-ten Grades wird erneut durch das quadratische Polynom dividiert
  4. Bei der Division entstehen Divisionsreste
  5. Aus den Divisionsresten wird ein verbessertes quadratisches Polynom bestimmt
  6. Wenn bei der Polynomdivision kein Rest mehr bleibt, sind die Nullstellen des quadratischen Polynoms auch Nullstellen des Polynoms n-ten Grades.


[Bearbeiten] Iteration

a(x) = x^2 + a_1 \cdot x + a_0
erhält man ein Polynom (n-2)-ten Grades:
b(x) = b_{n-2} \cdot x^{n-2} + b_{n-3} \cdot x^{n-3} + ... + b_1 \cdot x + b_0
Die Koeffizienten des zugehörigen beiden Divisionsrests r(x) = r0 + r1x = pab können mit der folgenden Rekursionsformel zur Bestimmung von \, b_i berechnet werden:
bn = bn − 1 = 0;
b_j = p_{i+2} - a_1 \cdot b_{j+1} - a_0 \cdot b_{j+2}; \qquad  \qquad  j=n-2, n-3, \dots, 0,-1,-2;
r1 = b − 1 und
r0 = b − 2 + a1b − 1;
  • Erneute Division von b(x) durch a(x) ergibt ein neues Polynom q(x) und dessen Divisionsrest p(x)=p_1 x+p_0\!, wobei eine analoge Rekursionsformel zum Einsatz kommt, es gelten wieder p1 = q − 1 und p0 = q − 2 + a1q − 1;
  • Mit den Divisionsresten r_0,\ r_1,\ p_0,\ p_1 verbessert man die Koeffizienten des quadratischen Polynoms a(x):
M = -a_0 \cdot q_{-1} - a_1 \cdot q_{-2} ; \qquad D = q_{-2}^2 - M \cdot q_{-1}
\Delta a_1 = \frac{q_{-1} \cdot b_{-2} - q_{-2} \cdot b_{-1}}{D}; \qquad   \Delta a_0 = \frac{M \cdot b_{-1} - q_{-2} \cdot b_{-2}}{D}
  • Die verbesserten Startwerte ergeben sich aus
a_1^{neu} = a_1^{alt} - \Delta a_1 \,
a_0^{neu} = a_0^{alt} - \Delta a_0 \,

[Bearbeiten] Anmerkungen zum Ablauf

  • Die Bestimmung von \Delta a_0,\ \Delta a_1 kann als Lösung des folgenden Gleichungssystems aufgefasst werden:
\begin{pmatrix} q_{-2} & q_{-1} \\ M & q_{-2} \end{pmatrix}     \cdot \begin{pmatrix}  \Delta a_1 \\ \Delta a_0 \end{pmatrix}   = \begin{pmatrix} - b_{-1} \\ - b_{-2} \end{pmatrix}
  • Das Verfahren lässt sich numerisch relativ einfach, schnell und speichergünstig umsetzen, wenn man nicht erst \, b(x) berechnet und speichert, sondern im Schritt j die \, b_j,b_{j+1},b_{j+2} sofort dazu verwendet, auch den Koeffizienten \, q_j=b_{j+2}-a_1q_{j+1}-a_0q_{j+2} zu berechnen.
  • Als Startwerte für die Iteration kann man beispielsweise p = \frac{a_{n-1}}{a_n}; \quad q = \frac{a_{n-2}}{a_n} wählen. Wenn Näherungen für zwei Nullstellen \tilde x_1, \ \tilde x_2 vorliegen, kann auch alternativ p = - \tilde x_1 - \tilde x_2; \quad q = \tilde x_1 \cdot \tilde x_2 wählen.
  • Die Iteration kann abgebrochen werden, wenn \, r_0 = r_1 = 0 bzw. \, b_{-1}=b_{-2}=0 in der gewünschten Ergebnisgenauigkeit, dann wurden passende Nullstellen gefunden und \, a(x) ist ein Teiler von \, f(x). In diesem Fall lohnt es sich, alle Koeffizienten von \, b(x) zu bestimmen und dann mit \, b(x) die nächsten Nullstellen zu suchen. Denn wenn man von \, f(x) die Linearfaktoren zu den Nullstellen abdividiert, erhält man \, b(x).

[Bearbeiten] Algorithmus

Das Programmbeispiel in Pseudocode beschreibt einen einzelnen Iterationsschritt, bei dem die Koeffizienten a0 und a1 des quadratischen Polynoms durch zwei Korrekturen da0 und da1 verbessert werden. Das Feld (Array) f() enthält das Polynom, wobei in f(n) der Koeffizient von xn steht. Die Bezeichnungen der Variablen wurden sonst wie in den Formeln gewählt.

In der Schleife der doppelten Polynomdivision stehen die Programmvariablen b0,b1,b2 im Schritt j für die Koeffizienten \, b_{j-2},b_{j-1},b_j und entsprechend q0,q1,q2 für \, q_{j-2},q_{j-1},q_j. Beim Übergang von Schritt j zu Schritt j-1 müssen die Programmvariablen einen Koeffizientenindex weiter geschoben werden, b2<--b1<--b0 und q2<--q1<--q0.

   j=n
   b0 = f(n)
   b1 = 0
   q0 = 0
   q1 = 0
   
   For j = n - 1 To 0 Step -1
       b2 = b1
       b1 = b0
       b0 = f(j) - a1 * b1 - a0 * b2
 
       q2 = q1
       q1 = q0
       q0 = b2   - a1 * q1 - a0 * q2
   Next j
   
   M  =  -a0 * q1 - a1  * q0
   D  =  q0 * q0 - M  * q1
   da1 = (b0 * q1 - b1 * q0) / D
   da0 = (b1 * M  - b0 * q0) / D
   
   a1  = a1 - da1
   a0  = a0 - da0

Im Ergebnis des Iterationsschritts enthalten die Programmvariablen a0 und a1 verbesserte Werte für die Koeffizienten von \, a(x)=x^2+a_1x+a_0

[Bearbeiten] Beispiel

Es sollen die Nullstellen des folgenden Polynoms bestimmt werden:

f(x) = 6 \cdot x^5 + 11 \cdot x^4 - 33 \cdot x^3 - 33 \cdot x^2 + 11 \cdot x + 6.

Die Startwerte der Iteration bestimmt man beispielsweise aus der Empfehlung

a1 = \frac{f_{n-1}}{f_n} = \frac{11}{6} ; \quad a0 = \frac{f_{n-2}}{f_n} = - \frac{33}{6}

Die Iteration liefert folgende Werte:

 Nr          a1                   a0
 
  0   1,83333333333333   -5,50000000000000
  1   2,97902606854572   -0,03989678443826
  2   3,63530605309108    1,90069300994740
  3   3,06493803975823    0,19353087552890
  4   3,46183419123714    1,38567973111800
  5   3,32624438656387    0,97874292718913
  6   3,33334090935105    1,00002270114662
  7   3,33333333333992    1,00000000001968
  8   3,33333333333333    1,00000000000000

Nach der 8. Iteration wurden a1 und a0 des Näherungspolynoms im Rahmen der Rechengenauigkeit exakt bestimmt. Die Lösung ergibt sich dann aus dem Polynom

a(x)=x^2 + \frac{10}{3} \cdot x + 1 = 0

Die Lösungen dieser quadratischen Gleichung sind auch Lösungen des Polynoms f(x) \,:

x_1 = -\frac{1}{3} \qquad x_2 = -3

Wenn man nun diese beiden Nullstellen dem Polynom f(x) \, abdividiert, kann das quadratische Polynom gleich als Startwert für die nächste Iteration verwendet werden.

 für
vergrößern
{}_{a(x)=(Z-x)^2+|y|\cdot y} für {}_{(x,y)\in[-3,3]^2}

Im allgemeinen kann man die Konvergenz dieses Verfahrens jedoch nicht garantieren, wie sich an den schwarzen Flächen des nebenstehenden Bildes ablesen lässt. Für diese findet die Iteration in den ersten 100 Schritten keinen Faktor hinreichender Genauigkeit. In den weißen Gebieten wird ein guter Faktor schon im ersten Iterationsschritt erreicht, die farbigen Punkte liefern Startwerte, deren Iteration zu dem entsprechend gefärbten Bassin um einen der Faktoren führt.

[Bearbeiten] Siehe auch

Andere Sprachen
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu