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
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
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
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
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)
U un = z, L z = Jn
·
metodę rozwiązywania równań liniowych zastosowaną w Matlabie: u=Y\J
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.