Tridiagonale-matrix-algoritme
Het tridiagonale-matrix-algoritme, kortweg TDMA genoemd, en ook bekend als het Thomas-algoritme, is een numerieke methode om een vierkant stelsel van lineaire vergelijkingen op te lossen dat wordt beschreven door een tridiagonale matrix. Dit is een matrix waarbij de elementen buiten de diagonaal en de twee nevendiagonalen alle gelijk aan nul zijn, zoals in onderstaande matrix. De methode is niets anders dan een toepassing van de Gauss-eliminatiemethode, met als doel de elementen onder de hoofddiagonaal nul te maken, waardoor het stelsel een geschikte vorm krijgt om te worden opgelost door achterwaartse substitutie.

Methode
Een tridiagonaal stelsel van  vergelijkingen en  onbekenden heeft als vorm:

waarin  en . In matrixvorm wordt dit:

De elementen  vormen hierbij samen de hoofdiagonaal of kortweg diagonaal. De elementen  en  bevinden zich op de zogenaamde nevendiagonalen, meer bepaald respectievelijk op de onderdiagonaal en de bovendiagonaal.

De oplossing van dergelijke stelsels kan worden uitgevoerd in  bewerkingen in plaats van de normale  bewerkingen van de Gauss-methode. In een eerste stap worden de coëfficiënten  weggewerkt, waarna via achterwaartse substitutie de oplossing wordt gevonden. Dit soort stelsels komt bijvoorbeeld voor bij de numerieke oplossing van de diffusievergelijking en bij het berekenen van natuurlijke splines.

In de eerste stap worden de coëfficiënten van het stelsel omgevormd, opdat alle elementen van de coëfficiëntenmatrix op de onderdiagonaal nul worden. De nieuwe coëfficiënten worden in onderstaande vergelijkingen met een accent aangeduid:

en:

Na deze voorwaartse stap volgt als tweede stap een achterwaartse substitutie die de oplossing levert:

.

Concrete implementaties
Het Engelstalige artikel over dit onderwerp bevat voorbeelden van implementaties in de programmeertalen C, Matlab en Fortran. Bij het programmeren dient men ermee rekening te houden dat de nummering van de elementen van een vector of een matrix in sommige programmeertalen loopt van 1 tot  en in andere van 0 tot  In het laatste geval dienen de uitdrukkingen in dit artikel aangepast te worden.

Afleiding
De afleiding van het tridiagonaal-matrix-algoritme is gebaseerd op Gauss-eliminatie, waarbij de elementen van de onderdiagonaal nul worden gemaakt door het uitvoeren van elementaire rijoperaties. Stel dat de onbekenden van het stelsel  zijn en de vergelijkingen:

Dan wordt de tweede vergelijking door middel van de eerste als volgt gewijzigd:

Het resultaat van deze elementaire rijoperatie is:

Op deze manier is  verwijderd uit de tweede vergelijking. Met behulp van de tweede vergelijking wordt dan de derde op analoge manier behandeld, zodat:

Dit systeem van rijoperaties wordt nu verder toegepast doorheen de matrix, waardoor alle elementen op de onderdiagonaal nul worden. Als gevolg hiervan bevat de n-de rij slechts één onbekende, namelijk , die dus direct kan gevonden worden. Vervolgens worden de andere onbekenden in volgorde van onder naar boven bepaald. Bij elke stap bevat de te behandelen vergelijking immers nog slechts één onbekende. De laatste onbekende die wordt bepaald is dus 

Indien de coëfficiënten van de gewijzigde vergelijkingen expliciet worden opgeschreven worden ze steeds ingewikkelder. Het is daarom beter de gewijzigde coëfficiënten, hieronder aangeduid met een tilde, recursief te definiëren.

Om de oplossing nog vlotter te laten verlopen kan men ook nog  wegdelen (indien niet deze niet nul zijn).  De aldus gewijzigde coëfficiënten, aangeduid met een asterisk, zijn:

Dit geeft het volgende stelsel, nog steeds in de oorspronkelijke onbekenden:

De oplossingen zijn, startend vanaf  en zo door achterwaartse substitutie naar :

.

Varianten
In bepaalde situaties, zoals in het geval van periodieke randvoorwaarden, komt een lichtjes andere vorm van een tridiagonaal stelsel voor:

In dat geval kan de formule van Sherlan-Morrison gebruikt worden om bijkomende bewerkingen tijdens de elementaire rijoperaties te vermijden.
In andere gevallen komt een stelsel voor dat in matrixvorm een blokmatrix geeft. Ook in dit geval bestaan er aangepaste methoden van de Gauss-eliminatiemethode.

Referenties

Externe links
 Example with VBA code

Bronnen
 

Lineaire algebra