matlab.pdf

(1725 KB) Pobierz
Interpolacja
- 1 -
Ewa Dyka
Instytut Elektroenergetyki PŁ
LABORATORIUM
METOD NUMERYCZNYCH
- 2 -
Wstęp
Rozwój techniki komputerowej spowodował, że wiele skomplikowanych problemów naukowych
rozwiązywanych jest przy pomocy maszyn cyfrowych. Różnorodność zagadnień i złożoność obliczeń
wymaga niejednokrotnie dobrej znajomości problemów mających wpływ na dokładność obliczeń czy też na
szybkość ich wykonania. Istnieje wiele metod rozwiązywania typowych zagadnień, dlatego wszechstronne
ich poznanie umożliwia właściwe podejście do problemów związanych z obliczeniami numerycznymi.
W ramach laboratorium z przedmiotu Metody Numeryczne przedstawione zostały podstawowe działy metod
numerycznych: interpolacja, aproksymacja, równania nieliniowe, układy równań liniowych, wartości własne
macierzy, całkowanie i równania różniczkowe zwyczajne.
Ćwiczenia prowadzone są w oparciu o dwa programy:
MET-NUM – program napisany w Turbo Pascalu przez pracowników Instytutu Informatyki
Uniwersytetu Wrocławskiego zawierający moduły składające się z programów
demonstracyjnych oraz pakietów zawierających wybrane funkcje i procedury
MATLAB – pakiet obliczeniowy firmy MathWorks umożliwiający dokonywanie dowolnych
obliczeń numerycznych
Celem powyższych ćwiczeń jest zarówno poznanie metod przedstawionych w obydwu programach jak i
porównanie ich ze sobą pod kątem dokładności otrzymywanych wyników.
- 3 -
PODSTAWY MATLAB-a
- 4 -
1. Wprowadzenie .
MATLAB jest programem służącym do obliczeń numerycznych.
Na prawidłowość wyników uzyskiwanych w trakcie obliczeń mają wpływ dwa podstawowe elementy:
uwarunkowanie zadania - (złe uwarunkowanie powoduje, że małe odchylenia danych wejściowych
mają duży wpływ na wynik końcowy)
stabilność algorytmów - w trakcie obliczeń następuje kumulacja błędów, obliczenia w MATLAB-
ie dokonywane są na liczbach zmiennoprzecinkowych, zarówno te liczby jak i wykonywane na
nich operacje obarczone są pewnymi błędami uzależnionymi od precyzji zapisu. Błędy te w
trakcie obliczeń mają tendencję do przenoszenia się i kumulowania, jeżeli powodują uzyskanie
wyniku znacznie oddalonego od prawidłowego to mówimy o niestabilnym algorytmie
obliczeniowym.
Jedynym używanym typem danych macierze , przy czym MATLAB umożliwia również
dokonywanie operacji arytmetycznych dla poszczególnych elementów macierzy, przy wykorzystaniu tzw.
operatorów tablicowych.
Macierze należy oznaczać dużymi literami , natomiast wektory bądź tablice wartości mogą być oznaczane
małym i lub dużymi literami . Tę samą zmienną zapisaną raz dużą literą raz małą MATLAB traktuje jako dwie
różne zmienne.
operatory arytmetyczne :
operatory porównania
*
mnożenie
==
równe
^
potęgo anie
~=
różne
+ -
dodawanie, odejmowanie
<
mniejsze
/
dzielenie (dzielenie prawostronne),
>
większe
\
dzielenie lewostronne (A/B = (A'\B')')
<=
mniejsze równe
'
transpozycja macierzy (tablicy)
>=
większe równe
.
tablica wartości
Części dziesiętne oddzielane są kropką (np. 3.5, 100.9). Liczby ułamkowe postaci a*10 -n zapisywane są
następująco: ae-n.
Można podać sposób wyświetlania obliczeń pisząc polecenie format z odpowiednim parametrem (np. liczba
1/3; format short – 0.3334; format long – 0.33333333333334).
W celu odróżnienia działań dokonywanych na macierzach od działań dokonywanych na tablicach
wartości, w przypadku tablic wartości należy zawsze po zmiennej umieścić kropkę przed znakiem
mnożenia, dzielenia i potęgowania (np. (x . ^4) . *tan(x) + x . *sin(x) - x . /cos(x)). W przypadku dzielenia
umieszcza się kropkę również po stałej przed znakiem dzielenia (np. 2 . /x).
Najczęściej używane znaki przy pisaniu własnego programu:
% na początku linii – linia ta jest komentarzem
; na końcu linii zawierającej wzory – program nie wyświetla pośrednich obliczeń
%% na początku pierwszej linii po której jest pusty wiersz – linia ta jest helpem do pliku
...
na końcu linii – dalszy ciąg danej linii w następnym wierszu
Napisany program należy zachowywać w skrypcie z rozszerzeniem " m " i umieszczać w katalogu o
nazwie MATLAB . Katalog ten należy założyć na dysku sieciowym użytkownika. Program obliczeniowy
- 5 -
uruchamiany jest poprzez napisanie w oknie MATLAB-a nazwy pliku bez rozszerzenia. Przed jego
wywołaniem należy podać ścieżkę dostępu: np. path(path,'g:\MATLAB') .
Niektóre obliczenia wymagają zastosowania wbudowanych funkcji MATLAB-a (np. całkowanie,
różniczkowanie, wyznaczanie zer funkcji), wówczas w skrypcie deklaruje się dane zadanie jako własną
funkcję pisząc " function y = f(x) ..... ", natomiast w oknie programu należy napisać polecenie zawierające
odpowiednią funkcję MATLAB-a (np. quad, ode23, fzero).
2. Definiowanie macierzy.
a) przez wyliczenie elementów:
np. : A = [2 2 1;3 4 5; 5 6 7]
A = [2 2 1
3 4 5
5 6 7]
Macierz deklaruje się poprzez umieszczenie jej elementów w nawiasach kwadratowych;
poszczególne elementy macierzy oddzielane są spacjami ; koniec wiersza oznaczany jest średnikiem
lub deklarowany jest poprzez wciśnięcie klawisza "Enter".
b) przez wygenerowanie elementów:
np. x = -5 : 0.1 : 8
macierz wierszowa ( -5 - pierwszy element; 0.1 - krok, 8 - ostatni
(131) element)
y = f(x)
macierz wierszowa ( y1 = f(5) - pierwszy element, y131 = f(8) -
ostatni (131) element)
c) przez podanie zależności określającej elementy macierzy:
np. dla macierzy Hilberta elementy macierzy określone są następującą zależnością:
a(i, j) = 1 / (i+j-1), aby wyznaczyć elementy tej macierzy można skorzystać z biblioteki
programu pisząc polecenie hilb(n) , gdzie n - stopień macierzy lub napisać własny
program:
n =
for i = 1:n
for j = 1:n
A(i,j) = 1/(i+j-1);
end
end
disp( )
napisanie średnika na końcu linii powoduje brak wyświetlania pośrednich obliczeń,
disp() - wyświetlenie wyniku
Elementy macierzy lub tablicy wartości umieszcza się zawsze w nawiasach kwadratowych , natomiast
nawiasy zwykłe zarezerwowane są dla poleceń i funkcji MATLABA-a .
Poszczególne elementy polecenia bądź funkcji oddzielane są przecinkami i jeżeli nie stanowią zmiennej lub
liczby umieszczane są w apostrofach (np. plot(x, y, ‘r*’)).
Zgłoś jeśli naruszono regulamin