układy równań sprawozdanie7


Politechnika Śląska Gliwice
Wydział Automatyki Elektroniki i Informatyki Rok akademicki 2008/2009
Kierunek: Automatyka i Robotyka semestr IV Semestr letni
Laboratorium Metod Numerycznych
Ćwiczenie 7: Metody rozwiązywania układów równao liniowych
Wykonał:
Kapusta Mateusz
Grupa 4 Sekcja 1
Data odbycia dwiczenia:
30.03.2009
Wprowadzenie
Celem dwiczenia jest zaprogramowanie podstawowych metod rozwiązywania układów równao liniowych
(dokładnych oraz przybliżonych).
Przebieg ćwiczenia
Analizie poddano układ równao w postaci:
gdzie: macierz współczynników układu, tzw. macierz główna, kolumna wyrazów wolnych, kolumna
niewiadomych
Warunek istnienia rozwiązania układu niejednorodnego podaje Twierdzenie Kroneckera-Capelliego, które mówi, że
układ równao liniowych jest rozwiązywalny wtedy, gdy spełniona jest relacja:
gdzie macierz rozszerzona, powstała przez dołączenie do macierzy wektora jako dodatkowej
kolumny wyrazów wolnych. Powyższa relacja implikuje rząd układu.
Omawiana w dalszej części metoda eliminacji Gaussa polega na kolejnym rugowaniu niewiadomych, prowadzonemu
w celu uzyskania pomocniczego układu w postaci macierzy górno-trójkątnej złożonej ze współczynników przy
niewiadomych , które nazywa się postępowaniem prostym. Następnie wykonuje się postępowanie odwrotne
polegające na znajdowaniu (na podstawie wyliczonych wcześniej współczynników) niewiadomych
zadanego układu równao.
Do wyznaczenia pomocniczego układu równao istnieją schematy: jedynego dzielenia oraz elementów
podstawowych. W ramach tego dwiczenia skoncentrujemy się na pierwszym z nich: schemacie jedynego dzielenia.
W schemacie tym stosuje się iloraz, na podstawie którego, uzyskiwane są współczynniki służące do wyznaczenia
pierwiastków równao występujących w układzie, co zostanie zilustrowane w algorytmie obliczeniowym, w dalszym
toku wywodów.
Zadanie
Przy użyciu metody eliminacji Gaussa i doborze schematu jedynego dzielenia szukano rozwiązania zadanego
wskaznika jakości w postaci układu równao liniowych.
Algorytm
//******************************************************************************
#define wymiar_macierzy 10 // zakładamy max 10 zmiennych x_i
// można zwiększyć zakres macierzy
//******************** MAIN ****************************************************
int main()
{
double a[wymiar_macierzy+1][wymiar_macierzy]={0};
double b[wymiar_macierzy+1][wymiar_macierzy]={0};
double c=0;
double x[wymiar_macierzy]={0};
int wiersz=0, kolumna=0, k=0, w=0, n; // indeksy
cout << "Podaj wymiar macierzy A: ";
cin >> n;
for (wiersz=0;wiersz for (kolumna=0; kolumna<=n; kolumna++){ // kolumny
// x o największym indeksie to wyraz wolny równania
cout<<"Rownanie ["< <<"] : Wpisz wspolczynnik przy x["< cin>>a[kolumna][wiersz];
}
cout< }
//******************** ETAP 1 **************************************************
for (wiersz=0; wiersz c = a[wiersz][wiersz];
for (kolumna=wiersz; kolumna<=n; kolumna++)
b[kolumna][wiersz]=a[kolumna][wiersz]/c;
//******************** ETAP 2 **************************************************
for (w=wiersz; w for (k=n; k>=wiersz; k--)
a[k][w+1] -= b[k][wiersz] * a[wiersz][w+1];
}
//******************** WYLICZENIE WARTOŚCI a[n][n-1] ***************************
// b[n][n-1] = a[n][n-1] / a[n-1][n-1];
// b[n-1][n-1] = 1.0;
for (wiersz=n-1; wiersz>=0; wiersz--){ // wyliczenie wartości x-ów
x[wiersz]=b[n][wiersz];
cout< for (kolumna=n-1; kolumna>wiersz; kolumna--){
x[wiersz] -= b[kolumna][wiersz]*x[kolumna];
cout<<"- "< }
}
//******************** WYPISANIE WYNIKÓW KOCCOWYCH *****************************
cout<<"\n\n Wartosci x'ow: \n\n";
for (wiersz=0; wiersz cout<<" x["< }
cout< system("PAUSE");
return 0;
}
Testy
Wyniki dla Wyniki
Otrzymane Dokładność
Zadany układ otrzymanych prawdziwe
wartości x wyników
i
wartości x równań
i
Wnioski
1. Metoda eliminacji Gaussa pozwala na wyliczenie z dużą dokładnością wartości pierwiastków układu równao.
2. Na pozytywny odbiór tej metody wpływa niewątpliwie prostota jej działania (również prostota algorytmu i
jego kompilacji), sprowadza się ona bowiem do wykonywania podstawowych matematycznych
przekształceo, jak iloraz, iloczyn, suma oraz różnica.
3. Jak widad na przestawionej powyżej tabeli kilku testów algorytmu, to, na ile wyniki przezeo zwracane są
bliskie prawdziwym, zależy od postaci równao, bowiem pojawia się błąd zaokrągleo (wartości pierwiastków
były wyznaczane z dokładnością do 6 cyfr znaczących, natomiast wartości wyrazów wolnych równania  z
dokładnością do 10 miejsc po przecinku) niemniej z pewnością można metodę uznad za bardzo dobrą
zarówno pod względem kompilacji jak i otrzymanych wyników.


Wyszukiwarka

Podobne podstrony:
uklady rownan (1)
Wyklad 2 3 MACIERZE WYZNACZNIK UKLADY ROWNAN
uklady rownan liniowych
MN MiBM zaoczne wyklad 1 uklady rownan
Układy równań zadania
Macierze i układy równań przykłady
uklady rownan
C 02 Uklady równan
uklady rownan
4 uklady rownan liniowych
t5 uklady rownan liniowych
BOiE układy równań liniowych
Uklady rownan 2
wykład 11 układy równań liniowych
4 Układy równań

więcej podobnych podstron