Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wstęp do metod numerycznych Wykład 3 Podstawy rachunku macierzowego 1 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki

Podobne prezentacje


Prezentacja na temat: "Wstęp do metod numerycznych Wykład 3 Podstawy rachunku macierzowego 1 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki"— Zapis prezentacji:

1 Wstęp do metod numerycznych Wykład 3 Podstawy rachunku macierzowego 1 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki

2 2 Wstęp Oznaczmy pewną daną macierz kwadratową jako A. Podstawowymi problemami algebry liniowej będą: rozwiązanie układu równań Ax = b, rozwiązanie zadania własnego, czyli określenie wartości własnych λ k i wektorów własnych x k, gdzie Ax k = λ k x k dla k= 1, 2, …, n. W zastosowaniach matematyki do rozmaitych zagadnień naukowych bardzo często wykorzystuje się najprostszy typ operatorów - operatory liniowe. Rozwiązywanie układów równań liniowych jest zadaniem występującym często w elektrotechnice (np. w analizie pól metodą elementów skończonych ). Nawet układy równań nieliniowych rozwiązuje się często przybliżając je ciągami układów liniowych (metoda Newtona). Z kolei zadania własne znalazły zastosowanie np. przy rozwiązywaniu równań różniczkowych n-tego rzędu metodą zmiennych stanu.

3 3 Podstawowe pojęcia algebry liniowej Macierzą A nazywamy układ m×n liczb rzeczywistych lub zespolonych zgrupowanych w tablicę: gdzie m×n oznacza, że macierz ma m wierszy i n kolumn Definicję macierzy A można też zapisać krócej Jeśli n = 1, to macierz składa się tylko z jednej kolumny i nazywa się wektorem kolumnowym, który oznaczamy jako

4 Macierze i wektory w języku C / C++ 4 Wektor w języku C jest tablicą. Możemy ją definiować statycznie, const int N = 100; double vect[N]; const int N = 100; double vect[N]; Tablicę możemy też definiować dynamicznie double *vect; int N = 100; //N nie musi być stałe vect = (double *)malloc(N * sizeof(double)); //Po wykorzystaniu tablicę koniecznie trzeba zwolnić !! free(vect); double *vect; int N = 100; //N nie musi być stałe vect = (double *)malloc(N * sizeof(double)); //Po wykorzystaniu tablicę koniecznie trzeba zwolnić !! free(vect); W języku C++ wektor możemy definiować dynamicznie używając new i delete double *vect; int N = 100; //N nie musi być stałe vect = new double [N]; //Po wykorzystaniu tablicę koniecznie trzeba zwolnić !! delete [] vect; double *vect; int N = 100; //N nie musi być stałe vect = new double [N]; //Po wykorzystaniu tablicę koniecznie trzeba zwolnić !! delete [] vect;

5 Macierze i wektory w języku C / C++ 5 W języku C++ możemy skorzystać z biblioteki std #include using namespace std; //.... int N = 100; //może być zmienna vector vect(N) //vect będzie tablicą stu zer vector vect2(N,1) //vect będzie tablicą stu jedynek #include using namespace std; //.... int N = 100; //może być zmienna vector vect(N) //vect będzie tablicą stu zer vector vect2(N,1) //vect będzie tablicą stu jedynek vect.push_back(7); // vect[0] = 7; vect.push_back(10); // vect[1]= 10; vect[2] = 100; //w tej chwili vect == {7,10,100,0,0,0,0, …} vect.push_back(7); // vect[0] = 7; vect.push_back(10); // vect[1]= 10; vect[2] = 100; //w tej chwili vect == {7,10,100,0,0,0,0, …} vect.front() ; //zwróci pierwszy element tablicy vect.back() ; //zwróci ostatni element tablicy vect.front() ; //zwróci pierwszy element tablicy vect.back() ; //zwróci ostatni element tablicy vect.begin() ; //zwróci wskaźnik do początku tablicy vect.size(); //zróci ilość elementów tablicy vect.begin() ; //zwróci wskaźnik do początku tablicy vect.size(); //zróci ilość elementów tablicy

6 Wektory w funkcjach 6 W języku C, tablica jest statyczna double srednia(double vect[], int N); W języku C, tablica jest dynamiczna double wariancja(double *vect, int N); void fun(vector vect); /* przez wartość – funkcja kopiuje wektor do lokalnej zmiennej*/ W języku C++ z użyciem vector void fun(vector &vect); /* przez referencję. Działamy na oryginale wektora, możemy go modyfikować */ void fun(vector const &vect); /* przez stałą referencję – działamy na oryginale wektora, ale tylko do odczytu */

7 Funkcja zwracająca wektor 7 W języku C nie jest polecana, ale możliwa. Należy użyć tablicy dynamicznej double* ciag(int N){ double *vect = new double[N]; for(int i=0;i

8 Tworzenie macierzy w C/C++ 8 Macierz statyczna const int N=50, M=100; double matrix[N][M]; const int N=50, M=100; double matrix[N][M]; Indeks bliższy nazwie (N) określa liczbę wierszy, a dalszy – liczbę kolumn. for(int i=0; i

9 Macierz dynamiczna w C i C++ 9 Macierz możemy zasymulować używając wektora int N=50, M=100; double *matrix = new double(N*M); for(int i=0; i matrix(N, vector (M));

10 10 Podstawowe pojęcia algebry liniowej Dla m=n macierz A nazywamy macierzą kwadratową, natomiast n - stopniem macierzy kwadratowej. Jednym z rodzajów macierzy kwadratowych są macierze przekątniowe (diagonalne), które mają wartości różne od zera tylko na głównej przekątnej (diagonali): Natomiast szczególnym przypadkiem macierzy D jest macierz jednostkowa I n stopnia n określona wzorem: Gdzie (δ ij ) jest symbolem (deltą) Kroneckera) Macierz jednostkową często określa się samym symbolem I

11 11 Podstawowe pojęcia algebry liniowej Macierze A i B są sobie równe (A = B), jeśli ich wszystkie wyrazy są równe: Iloczyn macierzy A i liczby  jest macierzą Suma dwóch macierzy o takich samych wymiarach (C = A + B) jest macierzą o elementach Iloczyn dwóch macierzy: A (m x p) i B (p x n) jest macierzą C (m x n) o elementach obliczanych ze wzoru:

12 12 Podstawowe pojęcia algebry liniowej Mnożenie macierzy na ogół nie jest przemienne, czyli AB  BA. Inne własności mnożenia to: Transpozycją A T macierzy A nazywamy macierz, której wiersze są kolumnami macierzy A. Jeżeli B=A T to b ij =a ji. Wektor kolumnowy x=(x 1,x 2,x 3, … x n ) T jest transpozycją pewnego wektora wierszowego W przypadku transpozycji iloczynu macierzy występuje tożsamość Macierz trójkątna ma postać przy czym L jest macierzą trójkątną lewą (dolną), a R - prawą (górną). Sumy, iloczyny i transpozycje macierzy trójkątnych są także macierzami trójkątnymi.

13 Mnożenie wektorów 13 Iloczyn skalarny wektorów a i b jest liczbą rzeczywistą i definiuje się wzorem w przypadku macierzowym (wykorzystując własności mnożenia macierzy) można go zapisać w postaci Iloczyn skalarny jest przemienny

14 Mnożenie wektorów 14 Wynikiem iloczynu wektorowego wektorów a i b takiego działania jest nowy wektor, którego długość (wartość) jest równa iloczynowi długości dwóch wektorów i sinusa kąta między nimi, kierunek otrzymanego wektora jest prostopadły do płaszczyzny wyznaczonej do przez dwa wektory, a zwrot nowego wektora określany regułą prawej ręki lub regułą śruby prawoskrętnej. Istotna jest tu kolejność mnożenia ponieważ a×b nie równa się b×a. Aby wykonać mnożenie wektorowe wektorów a i b takich, że należy wykonać Przykład

15 15 Wyznacznik macierzy Wyznacznik macierzy kwadratowej A stopnia n ma symbol det(A): Przy obliczaniu wyznacznika obowiązują wzory: -Dla n=1 det(A)=a 11 -dla n>1 det(A)= a 11 A 11 -a 12 A 12 + … (-1) n+1 a 1n A 1n Gdzie A 1k (k=1,2, … n) oznacza wyznacznik stopnia n-1, który powstaje przez skreślenie pierwszego wiersza i k-tej kolumny z macierzy A. Wzór jest rekurencyjny

16 16 Podstawowe pojęcia algebry liniowej

17 17 Podstawowe pojęcia algebry liniowej

18 18 Podstawowe pojęcia algebry liniowej

19 19 Podstawowe pojęcia algebry liniowej

20 20 Macierze blokowe

21 21 Macierze blokowe

22 22 Macierze blokowe

23 23 Macierze blokowe

24 24 Przestrzenie liniowe wektorowe

25 25 Przestrzenie liniowe wektorowe

26 26 Przestrzenie liniowe wektorowe

27 27 Rząd macierzy

28 28 Układy równań

29 29 Wartości własne i przekształcenie przez podobieństwo

30 30 Wartości własne i przekształcenie przez podobieństwo

31 31 przekształcenie przez podobieństwo

32 32 Wartości własne

33 33 Wartości własne

34 34 Normy wektorów i macierzy

35 35 Normy wektorów

36 36 Normy macierzy

37 37 Normy macierzy

38 38 Normy macierzy


Pobierz ppt "Wstęp do metod numerycznych Wykład 3 Podstawy rachunku macierzowego 1 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki"

Podobne prezentacje


Reklamy Google