İçeriğe atla

Tridiagonal matris algoritması

Tridiagonal matris algoritması (b.b.d. TDMA), Thomas algoritması olarak da bilinmektedir (Llewellyn Thomas ardından isimlendirilmiştir), sayısal lineer cebirde tridiagonal denklem sistemlerini çözmek için kullanılan basitleştirilmiş bir Gauss eleme yöntemidir.

n bilinmeyenli bir tridiagonal sistem şöyle yazılabilir:

ve 'dır.

Bu algoritma köşegen olarak baskın (b.b.d. "diagonally dominant") sistemlere uygulanabilir. Bu sistem matris formunda aşağıdaki gibi belirtilebilir:

Bu tür sistemler için çözüm, mertebesinde aşama sayısı ile mertebesinde aşama sayısı gerektiren Gauss eleme yöntemi kullanılmadan elde edilebilir. İlk aşamada bütün 'ler elenir ve ardından geriye doğru yerine koyma yöntemi ile sonuca ulaşılır. Bu tip matrislerle çoğunlukla bir boyutlu Poisson denkleminin ayrıklaştırılmasında (ör. bir boyutlu difüzyon problemi) ve kübik eğri interpolasyonunda karşılaşılır.

Yöntem

İlk aşama matris katsayılarının aşağıdaki gibi düzenlenmesinden oluşur. Düzenlenmiş yeni katsayılar ayraç ile işaretlenmiştir:

ve:

Bu aşama ileri süpürme (b.b.d. "forward sweep") olarak adlandırılır. Çözüm ise geriye doğru yerine koyma yöntemi ile elde edilir:

C içinde uygulaması

void solveMatrix (int n, double *a, double *b, double *c, double *v, double *x)
{
	/**
	 * n - number of equations
	 * a - sub-diagonal (means it is the diagonal below the main diagonal) -- indexed from 1..n-1
	 * b - the main diagonal
	 * c - sup-diagonal (means it is the diagonal above the main diagonal) -- indexed from 0..n-2
	 * v - right part
	 * x - the answer
	 */
	for (int i = 1; i < n; i++)
	{
		double m = a[i]/b[i-1];
                b[i] = b[i] - m * c[i - 1];
		v[i] = v[i] - m*v[i-1];
	}

	x[n-1] = v[n-1]/b[n-1];

	for (int i = n - 2; i >= 0; --i)
		x[i] = (v[i] - c[i] * x[i+1]) / b[i];
}

MATLAB içinde uygulaması

function x = TDMAsolver(a,b,c,d)
%a, b, c are the column vectors for the compressed tridiagonal matrix, d is the right vector
n = length(b); % n is the number of rows
 
% Modify the first-row coefficients
c(1) = c(1) / b(1);    % Division by zero risk.
d(1) = d(1) / b(1);    % Division by zero would imply a singular matrix.
 
for i = 2:n-1
    temp = b(i) - a(i) * c(i-1);
    c(i) = c(i) / temp;
    d(i) = (d(i) - a(i) * d(i-1))/temp;
end

d(n) = (d(n) - a(n) * d(n-1))/( b(n) - a(n) * c(n-1));
 
% Now back substitute.
x(n) = d(n);
for i = n-1:-1:1
    x(i) = d(i) - c(i) * x(i + 1);
end
end

Fortran 90 içinde uygulaması

      subroutine solve_tridiag(a,b,c,v,x,n)
      implicit none
!	 a - sub-diagonal (means it is the diagonal below the main diagonal)
!	 b - the main diagonal
!	 c - sup-diagonal (means it is the diagonal above the main diagonal)
!	 v - right part
!	 x - the answer
!	 n - number of equations

        integer,intent(in) :: n
        real(8),dimension(n),intent(in) :: a,b,c,v
        real(8),dimension(n),intent(out) :: x
        real(8),dimension(n) :: bp,vp
        real(8) :: m
        integer i

! Make copies of the b and v variables so that they are unaltered by this sub
        bp(1) = b(1)
        vp(1) = v(1)

        !The first pass (setting coefficients):
firstpass: do i = 2,n
         m = a(i)/bp(i-1)
         bp(i) = b(i) - m*c(i-1)
         vp(i) = v(i) - m*vp(i-1)
        end do firstpass

         x(n) = vp(n)/bp(n)
        !The second pass (back-substition)
backsub:do i = n-1, 1, -1
          x(i) = (vp(i) - c(i)*x(i+1))/bp(i)
        end do backsub

    end subroutine solve_tridiag

Kaynakça

  • Conte, S.D., and deBoor, C. (1972). Elementary Numerical Analysis. McGraw-Hill, New York. 
  • Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), "Section 2.4", Numerical Recipes: The Art of Scientific Computing (3.3yayımcı=Cambridge University Press bas.), New York, ISBN 978-0-521-88068-8 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Vektör</span> büyüklüğü (veya uzunluğu) ve yönü olan geometrik nesne

Matematik, fizik ve mühendislikte, Öklid vektörü veya kısaca vektör sayısal büyüklüğü ve yönü olan geometrik bir objedir. Vektör, genellikle bir doğru parçası ile özdeşleştirilir. Bir başlangıç noktası A ile bir uç noktası B'yi birleştiren bir ok şeklinde görselleştirilir ve ile belirtilir.

<span class="mw-page-title-main">Matris (matematik)</span>

Matematikte matris veya dizey, dikdörtgen bir sayılar tablosu veya daha genel bir açıklamayla, toplanabilir veya çarpılabilir soyut miktarlar tablosudur. Dizeyler daha çok doğrusal denklemleri tanımlamak, doğrusal dönüşümlerde çarpanların takibi ve iki parametreye bağlı verilerin kaydedilmesi amacıyla kullanılırlar. Dizeylerin toplanabilir, çıkartılabilir, çarpılabilir, bölünebilir ve ayrıştırılabilir olmaları, doğrusal cebir ve dizey kuramının temel kavramı olmalarını sağlamıştır.

Olasılık kuramı ve istatistik bilim kollarında, çokdeğişirli normal dağılım veya çokdeğişirli Gauss-tipi dağılım, tek değişirli bir dağılım olan normal dağılımın çoklu değişirli hallere genelleştirilmesidir.

<span class="mw-page-title-main">Doğrusal denklem dizgesi</span>

Doğrusal denklem dizgesi, birkaç tane aynı tip değişkenleri içeren birkaç tane doğrusal denklemlerin oluşturduğu topluluktur. Örneğin:

Determinant kare bir matris ile ilişkili özel bir sayıdır.

Vektör otoregresyon (VAR), tek değişkenli AR modellerini genelleştiren, çoklu zaman serileri arasındaki gelişimi ve karşılıklı bağımlılığı veren ekonometrik bir modeldir. Bir VAR'daki tüm değişkenler, modeldeki değişkenin kendi gecikmeleri ve diğer tüm değişkenlerin gecikmelerine bağlı olarak değişkenin gelişimini açıklayarak her bir değişken için bir denklem ile simetrik olarak ele alır. Bu özellik sebebiyle Christopher Sims, ekonomik ilişkilerin tahmininde teoriden bağımsız bir metot olarak VAR modelleri kullanımını, böylelikle yapısal modellerin "inanılmaz tanımlama kısıtlamalarına" bir alternatif olarak destekler.

<span class="mw-page-title-main">Çevrel çember</span>

Çevrel çember, geometride, bir çokgenin tüm köşelerinden geçen çember. Bu çemberin merkezi çevrel özek olarak isimlendirilir.

Doğrusal cebirde, bir A dizeyinin tersçaprazı (transpose) AT şeklinde ifade edilir. Bir dizeyin tersçaprazı aşağıdaki şekillerde elde edilebilir:

<span class="mw-page-title-main">Boşuzay</span>

Doğrusal cebirde, bir matrisinin boşuzayı (kernel, null space) bağıntısını sağlayan tüm vektörlerinin oluşturduğu kümedir. Bir matrisinin 'boşuzay' boyutu, matrisine çarpıldığında sıfır sonucunu veren birbirinden bağımsız yöneylerine göre hesaplanır.

Fizikte, Lorentz dönüşümü adını Hollandalı fizikçi Hendrik Lorentz'den almıştır. Lorentz ve diğerlerinin referans çerçevesinden bağımsız ışık hızının nasıl gözlemleneceğini açıklama ve elektromanyetizma yasalarının simetrisini anlama girişimlerinin sonucudur. Lorentz dönüşümü, özel görelilik ile uyum içerisindedir. Ancak özel görelilikten daha önce ortaya atılmıştır.

<span class="mw-page-title-main">Kare matris</span>

Doğrusal cebirde, kare matris, satır ve sütun sayıları eşit olan bir matrisdir. n ye n lik bir matris, boyutu n olan bir kare matris olarak bilinir. Aynı boyuta sahip herhangi iki matriste, toplama ve çarpma işlemleri yapılabilir.

Doğrusal cebirde, satır vektör veya satır matris, 1 × m matrisidir. Örneğin; tek bir m sütunundan oluşan bir matris şöyle ifade edilir;

Doğrusal cebirde veya daha genel ifade ile matematikte matris çarpımı, bir matris çiftinde yapılan ve başka bir matris üreten ikili işlemdir. Reel veya karmaşık sayılar gibi sayılarda temel aritmetiğe uygun olarak çarpma yapılabilir. Başka bir ifade ile matrisler, sayı dizileridir. Bu yüzden, matris çarpımını ifade eden tek bir yöntem yoktur. "Matris çarpımı" terimi çoğunlukla, matris çarpımının farklı yöntemlerini ifade eder. Matris çarpımının anahtar özellikleri şunlardır: Asıl matrislerin satır ve sütun sayıları, ve matrislerin girişlerinin nasıl yeni bir matris oluşturacağıdır.

Doğrusal cebirde veya daha genel ifade ile matematikte matris toplamı, iki matrisin ilgili girişlerinin eklenmesi işlemidir. Matrisler için diğer bir toplama işlemi türü doğrudan toplamdır.

Successive Over-Relaxation (SOR) lineer denklem sistemlerini çözmek ve sonuca daha hızlı yakınsamak için sayısal lineer cebirde kullanılan bir çeşit Gauss-Seidel metodudur. Daha yavaş yakınsamalar içinse benzer bir metot olan iterative metot kullanılır.

Jacobi metodu, sayısal lineer cebirde lineer denklemlerin diyagonal olarak baskın sistemlerin çözümlerinin belirlenmesi için oluşturulmuş bir algoritmadır. Her diyagonal eleman tek tek çözülür ve yaklaşık bir değer olarak alınır. Bu aşama onlar yakınsayana kadar tekrarlanır. Bu algoritma matris köşegenleştirilmesi Jacobi dönüşüm metodunun sadeleştirilmiş şeklidir. Bu metot daha sonra Carl Gustav Jacob Jacobi olarak isimlendirilmiştir.

Cabbibo-Kobayashi-Maskawa matrisi ya da kısaca CKM matrisi veya diğer adıyla kuark karışım matrisi, kısaca KM matrisi,parçacık fiziğinin Standart Model'inde, çeşni değiştiren zayıf bozunumların güç bilgisini içeren bir üniter matristir. Teknik olarak, kuarkların serbest halde ilerlerken ve zayıf etkileşimlerde rol alırlarkenki kuantum durumlarının uyumsuzluğunu belirtir. CP ihlalinin anlaşılmasında önemli yer tutar. Bu matris Makoto Kobayashi ve Toshihide Maskawa tarafından kuarkların üç ailesi için önerilmiş, matrise diğer bir ailenin eklenmesi fikri ise Nicola Cabibbo tarafından sunulmuştur. Bu matris ayrıca şu anki üç kuark ailesinin ikisini içeren GIM mekanizmasının bir uzantısıdır.

Diğer bir adı sabitlerin değişimi olarak bilinir. Bu teknik homojen olmayan lineer diferansiyel denklemlerde partiküler (özel) çözümü bulmak için kullanılır.

<span class="mw-page-title-main">Birim matris</span> asal köşegendeki sayıları bir, diğer sayıları sıfır olan kare matris

Lineer cebirde, n boyutlu birim matris, ana köşegeni birlerden ve diğer elemanları sıfırlardan oluşan n × n boyutlu bir kare matristir. In ya da sadece I ile gösterilir. Kuantum mekaniği gibi bazı alanlarda, birim matris kalın bir rakamı 1 ile de gösterilir. Nadiren, bazı kitaplarda İngilizce ve Almanca kelimelerin baş harfleri olan U ya da E ile gösterildiği olur.

Lineer cebirde, özdeğer ayrışımı ya da eigen ayrışımı, bir matrisin özdeğerleri ve özvektörleri cinsinden ifade edilen daha basit matrislere ayrıştırılmasıdır. Sadece kare matrisler özdeğerlerine ayrıştırılabilir.