2660


Metody numeryczne - laboratoria 7 (Rozwiązywanie układów równań liniowych - metody dokładne)

  1. Problem - rozwiązać układ równań

0x01 graphic

  1. Układ zapisany w postaci macierzowej:

Ax = b

0x01 graphic

  1. Proste warianty - z macierzą trójkątna dolną i trójkątną górną

  1. z macierzą trójkątną dolną

0x01 graphic

x1=b1/l11

xi=(bi-0x01 graphic
)/lii i = 2…n

  1. z macierzą trójkątną górną

0x01 graphic

xn=bn/unn

xi=(bi-0x01 graphic
)/uii i = n-1…1

Koszt obliczenia wartości xi - kwadratowy (O(n2))

  1. Metoda eliminacji Gaussa - zalgorytmizowana typowa metoda rozwiązywania równań liniowych za pomocą dodawania i odejmowania równań, oraz mnożenia równań przez pewną stałą.

0x01 graphic
li1 = ai1/a11, a11 ≠ 0

0x01 graphic
li2 = ai2/a22, a22 ≠ 0

0x01 graphic

Algorytm:

Dla k = 1…n-1

Dla i = k + 1 …n

lik = aik(k)/akk(k), aij(k+1)=aij(k) - likakj(k) dla j = k…n

bi(k+1) = b(k) - likbk(k)

Złożoność algorytmu rzędu n3 (O(n3))

Otrzymujemy macierz trójkątną górną - którą rozwiązujemy z wykorzystaniem wcześniej przedstawionych metod.

  1. Rozkład LU macierzy

Każdy krok rozkładu Gaussa można przedstawić jako iloczyn macierzy:

A(k+1) = L(k) A(k)

0x01 graphic

U = A(n) = L(n-1)A(n-1) = L(n-1)…L(1) A, stąd

A = (L(1))-1…(L(n-1))-1U

(odwracanie macierzy L(i) - zmienia się tylko znak elementów lij na przeciwny)

L = (L(1))-1…(L(n-1))-1U

0x01 graphic

A = LU

Wtedy rozwiązanie układu równań można wykonać:

LUx = b ->

Ly = b i Ux = y

(oczywiście L - jest trójkątna dolna, U - trójkątna górna)

W przypadku, gdy w przypadku serii równań zmienia się tylko wektor b, warto używać rozkładu LU - bo po pojedynczym wykonaniu rozkładu za każdym razem mamy tylko do rozwiązania 2 razy macierz trójkątną (złożoność kwadratowa).

  1. Wybór elementu głównego

Eliminacja Gaussa w najprostszym wariancie nie zawsze działa - przykład - macierz:

0x01 graphic
a11 = 0 (dzielenie przez 0!)

poza tym - nie zawsze najlepsze własności numeryczne, zwykle zależy nam na tym by dzielić przez największą co do modułu liczbę.

  1. wybór częściowy elementu głównego

W każdym kroku algorytmu wyszukujemy element największy (co do modułu) w aktualnie przetwarzanej kolumnie (kolumnie k - dla ustalenia uwagi, w zasadzie tylko w dół od elementu akk włącznie):

0x01 graphic

i zamieniamy wierszy k i p w macierzy A, oraz w wektorze b

(odpowiada to zmianie kolejności równań w układzie równań)

  1. pełny wybór elementu głównego

Różni się od wyboru częściowego tym, że elementu poszukujemy we fragmencie macierzy w dół i prawo od elementu akk włącznie.

W przypadku tego rodzaju wyboru zmieniamy również kolejność kolumn w macierzy A. W takim przypadku zmienia się również kolejność zmiennych w wektorze x (trzeba te zmiany zapamiętywać w trakcie obliczeń).

  1. Zadanie 1 - wygenerowanie przykładów do testowanie rozkładu Gaussa:

- stworzenie pewnej macierzy A oraz wektora x i wygenerowanie za pomocą odpowiedniej procedury mnożenia - wektora b.

  1. Zadanie 2 - użycie wygenerowanych przykładów do rozwiązania układu równań (zastosowanie wyboru częściowego i rozwiązania macierzy trójkątnej górnej).



Wyszukiwarka

Podobne podstrony:
2660
2660
2660
2660
2660
2660
01 Siły przekrojowe w ustrojach prętowychid 2660 pptx

więcej podobnych podstron