LABORATORIUM
METODY NUMERYCZNE

 

 

 


Ćwiczenie 1

 

Podstawy obsługi programu Matlab

 

1.        Uruchom program „klikając” dwukrotnie na ikonie programu.

 

2.        Używając polecenia help sprawdź do czego służą następujące instrukcje:

disp, diary, format, edit, save, load, dir, cd, pwd, clear, who, whos, lookfor.

 

3.        Sprawdź w jakim katalogu aktualnie pracuje program i przejdź do własnego katalogu roboczego. Zbadaj działanie klawiszy przesuwających kursor w pionie.

 

4.        Wprowadź zmienną a równą 3.14159. Zauważ jaki jest wpływ dodania średnika na końcu linii poleceń. Oblicz wartość funkcji sinus zmiennej a, zapisz otrzymany wynik i zmienną a w pliku tekstowym na dysku. Wykasuj wartości wszystkich zmiennych z programu, a następnie wczytaj ponownie wartość zmiennej a z pliku na dysku i oblicz jej cosinus. Sprawdź jaka jest wartość sinusa i cosinusa stałej standartowej pi. Skomentuj otrzymane wyniki.

 

5.        Napisz krótki skrypt (m-plik) ilustrujący działanie operatorów arytmetycznych oraz poleceń abs, angle, real, imag, conj na liczbach zespolonych. Wykonaj napisany przez siebie plik skryptowy.


Ćwiczenie 2

 

Operacje na macierzach

 

1.        Zapoznaj się z działaniem następujących komend:

eye, ones, zeros, rand, randn, linspace, logspace, size, length,

rot90, fliplr, flipud, diag, tril, triu, reshape, det, inv.

 

2.        Dla zaproponowanych przez siebie macierzy (jedna z nich powinna mieć elementy będące liczbami zespolonymi) zbadaj działanie podstawowych operatorów arytmetycznych oraz macierzowych (transpozycja, odwracanie). Zilustruj zasady tworzenia macierzy z podmacierzy elementów innych macierzy. Zapisz przebieg sesji do pliku.

 

3.        Napisz m-plik ukazujący różnice w działaniu operatorów macierzowych i tablicowych dodawania, dzielenia, mnożenia.


Ćwiczenie 3

 

Funkcje i grafika w programie Matlab

 

1.      Zapoznaj się z działaniem następujących poleceń sterujących grafiką: axis, hold, xlabel, ylabel, title, print, legend, line, feval, fplot, plot, figure, get, set, subplot, semilogx, semilogy, loglog.

 

2.      Napisz skrypt funkcyjny wyznaczający wartość funkcji y = sin(x) - cos(x), a następnie napisz skrypt korzystający z tej funkcji, który rysuje wykres tej funkcji w 101 równoodległych punktach
z przedziału <-
p; p>. Opisz rysunek, dobierz skale na osi i dorysuj osie układu współrzędnych. Zapisz rysunek na dysku w formacie Windows Metafile.

 

3.      Nałóż na siebie dwa wykresy funkcji y = sin(3p*arc tg(x)) w przedziale <-10; 10> wykonane przy użyciu poleceń fplot (automatycznie) i plot dla 21 punktów rozłożonych równomiernie. Porównaj i skomentuj wyniki działania. Dobierz kolory i styl linii.

 

4.      Dla układu szeregowego RLC o parametrach R = 10W, L = 25mH i C = 100pF wykreśl jednocześnie na dwóch rysunkach fazę i amplitudę jego admitancji w zakresie częstotliwości
od 10kHz do 1MHz. Jaki to typ układu?

 


Ćwiczenie 4

 

Elementy języka programowania programu Matlab

 

1.      Zapoznaj się ze składnią następujących instrukcji:

for, while, if-elseif-else,

 

2.      Dla układu na rysunku zaproponuj graf i utwórz dla niego zredukowaną macierz incydencji. Następnie zapisz tę macierz na dysku w pliku tekstowym i napisz skrypt wczytujący z dysku macierz A i zwracający macierze fundamentalnych cykli i rozcięć.


Ćwiczenie 5

 

Rozwiązywanie układów równań liniowych

 

1.        Znajdź rozwiązanie układu równań liniowych A*x = b poprzez odwrócenie macierzy A oraz korzystając z dzielenia lewostronnego dla, a następnie porównaj to z rozwiązaniem uzyskanym
dla nieznacznie zakłóconej macierzy A powstałej przez dodanie do niej macierzy błędu E. Porównaj oba rozwiązania i wyjaśnij przyczynę powstania tak znacznej różnicy.

A = ;              b = ;                E = ;

 

2.        Dokonaj rozkładu LU macierzy A na dwa sposoby, tzn. tak aby w pierwszym przypadku macierz L miała jedynki na przekątnej, a w drugim przypadku macierz U. Przedstaw wyniki w formie ułamkowej. Porównaj wyznaczniki macierzy A i macierzy o niejednostkowych elementach
na przekątnej.

A = ;

 

3.        Korzystając z prawa Kirchhoffa dla pętli ułóż stosowny układ równań liniowych, a następnie rozwiąż go obliczając prądy w obwodzie z poniższego rysunku. Podaj moduł i fazę w stopniach każdego z zaznaczonych prądów.


Ćwiczenie 6

 

Metoda potencjałów węzłowych dla układów liniowych

 

1.        Dla układu z rysunku narysuj graf a następnie wyznacz następujące macierze: incydencji A, admitancji Yb, wymuszeń prądowych J, wymuszeń napięciowych E. Dla wyznaczonych
macierzy napisz równanie potencjałów węzłowych i przekształć je do postaci Ynun=Jn
korzystając z udostępnionych w MATLAB-ie podstawowych operacji na macierzach.

2.        Rozwiąż otrzymane równanie i podaj potencjały węzłowe dla danego układu oraz prąd i napięcie na rezystorze R0.

3.        Zmieniając wartość rezystora R0 w zakresie od 0,1W do 5W wykreśl zmiany prądu i napięcia
na rezystorach R0 i Rg .


Ćwiczenie 7

 

Rozwiązywanie układów równań nieliniowych

 

1.        Sprawdź jak działają następujące polecenia: fmin, fmins, fzero, roots, polyder, polyval, foptions roots, fsolve, foptions, flops.

 

2.        Znajdź wszystkie miejsca zerowe podanej niżej funkcji stosując następujące algorytmy:

a)    bisekcji

b)    siecznych

c)    stycznych (Newton-Raphson)

Przyjmij różne punkty lub przedziały wyjściowe. Porównaj ilość operacji zmiennoprzecinkowych potrzebnych do znalezienia miejsca zerowego dla każdej z metod. Znajdź wartości zmiennych,
dla których funkcja przyjmuje wartość minimalną i maksymalną.

 

3.      Rozwiąż równanie f(x) = 0 dla poprzednio podanej funkcji za pomocą polecenia fzero podając jako warunki początkowe pojedynczy punkt a następnie cały przedział. Wykorzystując opcję śledzenia funkcji fsolve oceń koszt numeryczny zastosowanego algorytmu w tych dwóch przypadkach
i porównaj z metodami zastosowanymi w punkcie 2.

 

4.        Rozwiąż niżej podany układ równań nieliniowych. Zbadaj wpływ doboru punktu startowego.
Dla punktu startowego (-1; 1; 1) zbadaj ilość operacji zmiennoprzecinkowych wykonywanych
gdy znany jest gradient i nie jest on znany.

 


Ćwiczenie 8

 

Metoda potencjałów węzłowych dla obwodów nieliniowych

 

1.        Dla układu elektrycznego pokazanego na rysunku stwórz graf i napisz macierze: incydencji oraz wymuszeń napięciowych i na tej podstawie w oparciu o metodę potencjałów węzłowych sformułuj układ równań wiążący potencjały węzłowe obwodu.

Załóż, że charakterystyka statyczna diody określona jest zależnością:

gdzie: is=10-10A, uT=0,025V

Przyjmij Ug=5V

2.        Z otrzymanego w punkcie 1 układu równań nieliniowych napisz funkcję o ilości zmiennych równej ilość potencjałów węzłowych danego układu F(V).

3.        Korzystając z funkcji MATLAB-a fsolve rozwiąż równanie otrzymując potencjały węzłowe dla danego układu.

4.        Napisz program, który dla zmiennego Ug w zakresie –5V do +5V wykreśli zależność napięcia
na rezystorze R2 w funkcji napięcia Uwe. Zwróć szczególną uwagę na obszar gdzie Ug jest bliskie zeru, przeprowadź analizę otrzymanych wyników.

Używając funkcji fsolve należy zwrócić uwagę na zbieżność rozwiązania dla różnych algorytmów (foptions(5) – parametr określający metodę rozwiązywania układu równań) oraz wymaganą ilość iteracji dla każdej z metod – foptions(14).


Ćwiczenie 9

 

Układy elektroniczne całkujące

 

1.        Znajdź transmitancję w dziedzinie 's' układu całkującego przedstawionego na rys. zakładając,
że impedancja wejściowa wzmacniacza operacyjnego jest
¥, wyjściowa 0, zaś wzmocnienie napięciowe A=1000. Przedstaw jednostkową i impulsową odpowiedź układu na podstawie transmitancji (funkcje step i impulse, reprezentacja transmitancji: tf).

2.        Narysuj odpowiedź układu na pobudzenie napięciowe na wejściu określone funkcją:

         gdzie: Ur=1V, Tr=0.1, k=5

w przedziale czasowym t = 0¼1s (skorzystaj z funkcji lsim Matlab'a).

3.        Oblicz numerycznie całkę sygnału wejściowego dla podanego wcześniej przedziału korzystając
z metod prostokątów i trapezów (należy napisać odpowiednie skrypty). Następnie porównaj dokładność otrzymanych wyników oraz koszt numeryczny algorytmów z wbudowanymi funkcjami Matalab'a: quad i quad8

4.        Na podstawie wyników z punktu 2) podaj błąd względny i bezwzględny odpowiedzi układu całkującego dla A=1000 w odniesieniu do rozwiązania analitycznego.

5.        Przeprowadź analizę dokładności całkowania układu całkującego dla różnych wartości parametru wzmocnienia napięciowego wzmacniacza operacyjnego A.


Ćwiczenie 10

 

Układy elektroniczne różniczkujące

 

1.        Ułożyć układ równań różniczkowych postaci:

 

modelujący przedstawiony na rys. układ elektryczny. Przyjąć wektor stanu y = [ug ud iL]T

2.        Rozwiązać układ równań dla t od 0ns do 100ns, przy założeniu, że w chwili t = 0 napięcia
na kondensatorach oraz prąd płynący w cewce są zerowe. Źródło prądu opisane jest zależnością:

Należy wybrać jedną ze standardowych funkcji programu MATLAB, np. ode23 (metoda niższego rzędu) lub ode45 (metoda średniego rzędu).

3.        Wykreślić przebiegi napięć na rezystorach i prąd cewki w funkcji czasu.

4.        Porównać liczbę operacji zmiennoprzecinkowych potrzebnych do znalezienia rozwiązania dla różnych metod, oraz dla różnych poziomów dokładności (funkcja odeset): 10-2 i 10-6.

 


Ćwiczenie 11

 

Analiza widmowa sygnałów, filtry cyfrowe

 

1.        Napisz program dokonujący analizy widmowej FFT odkształconego sygnału sinusoidalnego
o częstotliwości podstawowej 50 Hz zawierającego trzy harmoniczne pasożytnicze o częstotliwościach 150 Hz, 250 Hz i 350 Hz i amplitudach odpowiednio 1/2, 1/4 i 1/6 amplitudy harmonicznej podstawowej. Dobierz odpowiednio ilość próbek i krok dyskretyzacji. Narysuj wykres odkształconego przebiegu oraz przedstaw graficznie jego widmo.

 

2.      Zaprojektuj analogowy filtr dolnoprzepustowy Butterworth’a czwartego rzędu o stosownej częstotliwości granicznej pozwalającej na odfiltrowanie harmonicznych pasożytniczych sygnału analizowanego w poprzednim punkcie. Wykreśl charakterystyki amplitudową i fazową tego filtru.

 

3.      Używając zaprojektowanego uprzednio filtru do odfiltrowania harmonicznych pasożytniczych. Przedstaw graficznie sygnał po filtracji i jego widmo.

 


Ćwiczenie 12

 

Macierze rzadkie

 

1.        Dla układu elektrycznego z ćwiczenia nr 6 wyznacz macierz admitancji węzłowych Yn oraz wektor węzłowych wydajności prądowych Jn. Rozwiąż równanie Yn un = Jn stosując metody:

·        odwracania macierzy Yn (funkcja inv)

·        rozkładu LU:

[L,U]=LU(Yn)

L U = Yn
L U un= Jn

U un = z,          L z = Jn

·        metodę rozwiązywania równań liniowych zastosowaną w Matlabie: u=Y\J

Porównaj ilość operacji zmiennoprzecinkowych (instrukcja flops) wymaganych do rozwiązania układu każdą z trzech wymienionych metod.

 

2.        Analogiczne obliczenia wykonaj dla równania:

3.        Dokonaj takiego przenumerowania zmiennych w powyższym równaniu aby ilość nowych elementów niezerowych powstających podczas rozkładu LU była jak najmniejsza. (należy zwrócić uwagę na fakt, że macierz jest strukturalnie symetryczna) i powtórz obliczenia

4.        Porównaj ilość operacji zmiennoprzecinkowych potrzebnych do rozwiązania równania przed
i po przenumerowaniu zmiennych. Uzasadnij wyniki.

5.        Powtórz wszystkie powyższe obliczenia przekształcając macierze do postaci rzadkiej (funkcja sparse) i przeprowadź porównawczą analizę nakładów numerycznych.