algorytm.org

Metoda Crouta

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Metoda Crouta
Ocena użytkowników:***** / 7
SłabyŚwietny 
Wpisany przez Tomasz Lubiński, 08 sierpnia 2005 21:48

Metoda Crouta pozwala rozwiązać układ n równań liniowych z n niewiadomymi, w którym macierz współczynników jest trójwstęgowa i diagonalnie dominująca tzn:
T = \begin{bmatrix} a_1 & b_1 & 0 & 0 & 0 &... & 0\\ c_2 & a_2 & b_2 & 0 & 0 & ... & 0\\ 0 & c_3 & a_3 & b_3 & 0 & ... & 0\\ ... & ... & ... & ... & ... & ... & ...\\ 0 & ... & 0 & 0 & 0 & c_n & a_n\\ \end{bmatrix}\\\\ |a_1| \geq |b_1|\\ |a_i| \geq |c_i| + |b_i| \text{, dla } i=2,3, ..., n-1\\ |a_n| \geq |c_n|
Metoda wyznaczania rozwiązania układu równań liniowych, metodą Crouta, polega na znalezieniu dla jego macierzy współczynników T macierzy dwuwstęgowej z wyrazami l na głównej przekątnej i wyrazami c pod nimi, oraz macierzy U również dwuwstęgowej z jedynkami na głównej przekątnej i wyrazami u nad nią. Tak by T=LU, wtedy Ly=d, Ux=y i Tx=d to LUx=d (d to wektor zawierający wyrazy wolne równania):
L = \begin{bmatrix} l_1 & 0 & 0 & 0 &... & 0\\ c_2 & l_2 & 0 & 0 & ... & 0\\ 0 & c_3 & l_3 & 0 & ... & 0\\ ... & ... & ... & ... & ... & ...\\ 0 & ... & 0 & 0 & c_n & l_n\\ \end{bmatrix} U = \begin{bmatrix} 1 & u_1 & 0 & 0 &... & 0\\ 0 & 1 & u_2 & 0 & ... & 0\\ 0 & 0 & 1 & u_3 & ... & 0\\ ... & ... & ... & ... & ... & ...\\ 0 & ... & 0 & 0 & 0 & 1\\ \end{bmatrix}
Obliczamy je z następujących wzorów: (wektor x zawiera ostateczne rozwiązanie układu):
u_1 = \frac{b_1}{a_1} \text{ następnie } u_i = \frac{b_i}{a_i - u_{i-1}c_i} \text{ dla } i=2,3,...,n-1\\\\ y_1 = \frac{d_1}{a_1} \text{ następnie } y_i = \frac{d_i - c_iy_{i-1}}{a_i - c_iu_{i-1}} \text{ dla } i=2,3,...,n\\\\ x_n = y_n \text{ następnie } x_i = y_i - u_ix_{i+1} \text{ dla } i=n-1,n-2,...,1

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Tomasz LubińskiDelphi/PascalBorland Delphi 5
.pas
.pas
***** / 3
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 23 września 2012 14:32
Dodaj komentarz