Ukl rown gaussa cramera jordana, PŚK, Metody Numeryczne

[ Pobierz całość w formacie PDF ]
//-->KATEDRA URZĄDZEŃ I SYSTEMÓW AUTOMATYKILABORATORIUMMETOD NUMERYCZYCHW TECHNICEUKŁADY RÓWNAŃ LINIOWYCHINSTRUKCJA LABORATORYJNA DO ĆWICZENIA NR 4.WERSJA ROBOCZAOPRACOWAŁ:mgr inż. Tomasz KWAŚNIEWSKIPOLITECHNIKA ŚWIĘTOKRZYSKAKIELCE 20131. WprowadzenieJednym z zadań algebry liniowej jest rozwiązanie układu równań liniowych [1, 3]=(1)gdzie:A– jest macierząm × nokreślonych współczynników,– wektoremmdanych liczb,– wektoremnniewiadomych.Układ równań opisany zależnością (1) może mieć nieskończenie wiele rozwiązań,jedno rozwiązanie lub nie mieć ich wcale. Metody numerycznego rozwiązywania układówrównań liniowych możemy podzielić na dwie grupy [1, 3].••metody bezpośrednie przy braku błędów zaokrągleń dają dokładnerozwiązanie po skończonej liczbie przekształceń układu wyjściowego,metody iteracyjne natomiast pozwalają na wyznaczenie zbieżnego ciągurozwiązań przybliżonych.Metody bezpośrednie są najbardziej efektywne w rozwiązywaniu układów omacierzach pełnych. Ich wadami są duże obciążenie pamięci komputera oraz niestabilnośćwynikająca z błędów zaokrągleń. Natomiast metody iteracyjne stosujemy układów równańliniowych, których macierze są rzadkie.Układ równań liniowych – postać ogólna [2]:+++ ⋯++ ⋯+==⋮Wartości m, n są dowolne. Definiujemy macierz rozszerzoną układu równań liniowych w postaci:=⋮⋮⋯⋯⋱⋯⋮⋮++⋯+=(2)(3)Twierdzenie. (Capellego)Warunkiem koniecznym i wystarczającym rozwiązywalności dowolnego układu równań liniowych jest,aby rząd r macierzy A układu był równy rzędowi macierzy rozszerzonej D. Jeśli powyższy warunek jestspełniony, to układ (2) posiada rozwiązanie zależne od n − r parametrów, gdzie n to liczbaniewiadomych. W przypadku n = r istnieje jednoznaczne rozwiązanie.2. Metody bezpośrednie (dokładne)a. Metoda CrameraRozwiązanie układu (2) w przypadku nieosobliwej macierzy kwadratowej A można wyznaczyćze wzorów Cramera [2, 3],gdzie macierzAkpowstaje z macierzyAprzez zastąpieniek–tejkolumny przez wektor b.•=,k = 1,2, … , n(4)skrypt wykorzystujący metodę Cramera – m-plikfunctionx = m_cramer(A, b)[m n] = size(b);z = zeros(m, 1);Ai = A;fork=1:mAi(:, k) = b;z(k) = det(Ai);Ai(:, k) = A(:, k);enddetA = det(A);x = z / detA;returnendb. Metoda eliminacja GaussaJeżeli macierz układu (1) jest macierzą trójkątną, rozwiązanie układu równań jest proste.Przyjmijmy, żeAjest macierzą trójkątną górną. Aby istniało jednoznaczne rozwiązanie, macierz musibyć nieosobliwa. Układ równań przedstawiono poniżej [1, 2, 3]:++ ⋯++⋯+==⋮Składową xnwektora niewiadomych obliczymy jako pierwszą z ostatniego równania powyższegoukładu. Podstawiając wynik do przedostatniego równania wyznaczymy xn−1. Procedurę kontynuujemyaż do wyliczenia x1. Rozwiązanie przedstawia się wzorem:=(5)==∑! "#,% = & − 1, & − 2, … ,1(6)Ponieważ obliczenia zaczynamy od ostatniej składowej wektora niewiadomych, metoda ta nazywanajest podstawianiem w tył. W podobny sposób znajdziemy rozwiązanie układu z macierzą trójkątnądolną, tym razem wykonując podstawianie w przód:=###=∑+#!#,% = 2,3, … , &(7)Wiele metod numerycznego rozwiązywania układów równań z dowolnymi macierzami polega nasprowadzeniu układu wyjściowego do postaci trójkątnej, a następnie zastosowaniu jednego zewzorów (6)-(7). Jedną z takich właśnie metod jest eliminacja Gaussa. Dla ułatwienia założymy, żemacierz układu jest wymiaru 3 × 3, tzn.++++++- --Celem jest sprowadzenie tego układu do postaci trójkątnej. Odejmując od drugiego wiersza układu(8) pierwszy pomnożony przez a21/a11, a od trzeciego pierwszy pomnożony przez a31/a11otrzymamy./0----=-=-=-(8)+gdzie./01. 0-. 0./0+++./0./0- -. 0- -. 0-- -===,. 0-. 0./0(9)oraz. 01==1,=%, 2 = 1,2,3. 0(10)./01−.30#.30##./01,=./0−.30#.30##./0,%, 2 = 2,3(11)Aby wyznaczyć zmienną x2z trzeciego równania w układzie (9), odejmujemy od niego drugie. 0. 0pomnożone przez-/:./0+. 0./0++./0./0- -=. 0. 0- -=. 0. 0-- -=-(12)gdzie. 01=. 01−.#06.#066. 01,. 0=. 0−.#06.#066. 0,%, 2 = 3(13)Wzory na współczynniki macierzy i wyrazy wolne w każdym kroku eliminacji Gaussa łatwo jestuogólnić na przypadek macierzy dowolnego rozmiaru:. 01. 0==.1.−−. +#0. +#0.#0.1,%, 2 = 7 + 1, 7 + 2, … , &(14). +#0., %, 2 = 7 + 1, 7 + 2, … , &(15)Otrzymaliśmy układ trójkątny, który można teraz rozwiązać podstawianiem wstecz (6),=•. +#0∑8! "#. +#0. +#088,% = &, & − 1, … ,1(16)skrypt wykorzystujący metodę Gaussa – m-plik [2]function[x, det] = gauss(A, b)ifsize(b, 2) > 1;b = b';endn = length(b);fork = 1:n-1fori= k+1:nifA(i, k) ~= 0lambda = A(i, k)/A(k, k);A(i, k+1:n) = A(i, k+1:n) - lambda*A(k, k+1:n);b(i)= b(i) - lambda*b(k);endendendifnargout == 2;det = prod(diag(A));endfork = n:-1:1b(k) = (b(k) - A(k, k+1:n)*b(k+1:n))/A(k, k);endx = b; [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • emaginacja.xlx.pl
  •