MatlabPL.doc

(638 KB) Pobierz
Starting MATLAB … 2

 

 

 

 

 

 

 

 

 

 

 

 

MATLAB

The Language of Technical Computing

 

·         COMPUTATION

·         VISUALIZATION

·         PROGRAMMING

 

 

(MATLAB

Język programowania dla obliczeń technicznych

 

·         OBLICZENIA

·         WIZUALIZACJA

·         PROGRAMOWANIE)

 

 

(C) COPYRIGHT 1984 – 1988 by MathWorks, Inc.

 

 

 

 

 

 

 

 

 

 


Spis treści:

 

·         Czym jest MATLAB?

·         System MATLAB

·         Simulink

 

 

Czym jest MATLAB?

 

MATLAB jest wysokowydajnym językiem programowania, przeznaczonym do obliczeń naukowo– inżynierskich. Integruje on obliczenia, wizualizację i programowanie w łatwe do wykorzystania środowisko, w którym stawiane problemy i otrzymywane rozwiązania wyrażane są w dobrze znanej notacji matematycznej. Typowe zastosowania MATLAB-a obejmują:

 

·         matematykę i prowadzenie obliczeń

·         opracowanie algorytmów

·         modelowanie, symulację i prototypowanie

·         analizę, eksplorację i wizualizację danych

·         grafikę naukową i techniczną

·         opracowanie aplikacji, włączając w to budowanie graficznego interfejsu użytkownika (ang. Graphical User Interface)

 

MATLAB jest interaktywnym systemem, którego podstawowym typem danych jest macierz. Umożliwia to rozwiązywanie wielu technicznych problemów, w szczególności tych sformułowanych przy użyciu macierzy i wektorów, w ułamku czasu potrzebnego do rozwiązania tych samych zagadnień przy użyciu nieinteraktywnych języków, takich C czy Fortran.

 

Nazwa MATLAB jest skrótem od Matrix Laboratory. Pierwotnie MATLAB został stworzony w celu zapewnienia łatwego dostępu do oprogramowania macierzowego, rozwijanego przez projekty LIPACK oraz EISPACK, które razem stanowiły najnowocześniejsze narzędzie służące do obliczeń macierzowych.

Z upływem czasu i przy wkładzie wielu użytkowników, MATLAB ewoluował. Na wielu uniwersytetach jest obecnie standardowym narzędziem instruktażowym, wykorzystywanym zarówno we wstępnych, jak i zaawansowanych  kursach matematyki i innych nauk ścisłych. W przemyśle, MATLAB jest wykorzystywany jako wysokowydajne narzędzie wspomagające prace badawcze, odkrywcze oraz analizę.

MATLAB zawiera rodzinę dodatkowych bibliotek, zwanych przybornikami (ang. toolboxes). Dla większości użytkowników MATLAB-a, bardzo ważny jest fakt, że przyborniki umożliwiają naukę i stosowanie zaawansowanych technologii. Przyborniki są zestawem funkcji MATLAB-a (M-plików), rozszerzającym środowisko o możliwość rozwiązywania określonych, specjalistycznych problemów z dziedziny przetwarzania sygnałów, systemów kontroli, sieci neuronowych, logiki rozmytej, telekomunikacji, symulacji i wielu innych.

 

 

System MATLAB

 

System MATLAB składa się z 5 głównych części:

 

Język MATLAB-a

MATLAB jest językiem programowania wysokiego poziomu, opartym na wykorzystaniu operacji na macierzach i tablicach. Wykorzystuje sterowanie potokiem komend, funkcji, struktur danych, operacji wejścia/wyjścia i jest obiektowo zorientowany. Umożliwia pracę zarówno w trybie interpretera, pozwalając na szybkie tworzenie prostych programów, oraz „programowanie na poważnie” w celu tworzenia dużych i złożonych aplikacji.

 

Środowisko MATLAB-a

Jest to zestaw narzędzi, z którymi pracujesz jako użytkownik MATLAB-a lub programista. Umożliwia zarządzanie zmiennymi oraz importowanie i eksportowanie danych. Zawiera również narzędzia do tworzenia (ang. developing), zarządzania (ang. managing), wykrywania błędów (ang. debugging) i optymalizacji (ang. profiling) m-plików oraz aplikacji MATLAB-a.

 

System Handle Graphics

Ta część MATLAB-a zawiera polecenia wysokiego poziomu, służące do  2- i 3-wymiarowej wizualizacji danych, przetwarzania obrazu, animacji i grafiki prezentacyjnej. Biblioteka funkcji graficznych zawiera również  komendy niskiego poziomu, które umożliwiają całkowite dostosowanie grafiki do potrzeb użytkownika oraz budowanie graficznego interfejsu użytkownika (ang. Graphical User Interface), wykorzystywanego w aplikacjach.

 

Biblioteka funkcji matematycznych

Jest to rozległy zbiór algorytmów obliczeniowych, obejmujących zarówno funkcje elementarne (suma, sinus, cosinus), jak i bardziej skomplikowane funkcje, takie jak odwracanie macierzy, obliczanie wartości własnych, funkcje Bessela i szybka transformata Fouriera.

 

Programowy interfejs aplikacji (API)

Jest to biblioteka, która pozwala na pisanie programów w języku C lub Fortran. Programy te mogą współdziałać z MATLAB-em. Biblioteka zawiera funkcje umożliwiające wywoływanie programów napisanych w C lub Fortranie z poziomu MATLAB-a, wywoływanie MATLAB-a jako narzędzia obliczeniowego z poziomu C lub Fortrana oraz odczytywanie i zapisywanie MAT-plików.

 

Simulink

SIMULINK, program towarzyszący MATLAB-owi, jest interaktywnym systemem, służącym do symulacji nieliniowych systemów dynamicznych. Jest to graficzny, obsługiwany za pomocą myszy program, umożliwiający modelowanie systemów poprzez przeciąganie poszczególnych bloków na ekranie i manipulowanie nimi dynamicznie. SIMULINK pozwala na pracę z systemami nieliniowymi, ciągłymi, dyskretnymi i mieszanymi. Z nakładką SIMULINK mogą współpracować dodatkowe elementy (ang. blocksets), będące bibliotekami bloków specjalistycznych aplikacji, związanych z konkretnymi dziedzinami, takimi jak komunikacja, przetwarzanie obrazu i wieloma innymi.

Real-time Workshop jest programem umożliwiającym generowanie kodu C na bazie utworzonych diagramów bloków i uruchamianie go na różnych systemach czasu rzeczywistego.

 

Macierze i Magiczne Kwadraty

Najlepszym sposobem na rozpoczęcie pracy z MATLAB-em jest nauczenie się obchodzenia z macierzami. Ten rozdział wyjaśni Ci jak to się robi. W MATLAB-ie, macierz jest prostokątną tablicą liczb. Szczególne znaczenie mają macierze 1 na 1, które są skalarami i posiadające jeden wiersz lub kolumnę, które są wektorami. Wprawdzie MATLAB wykorzystuje inne metody przechowywania danych numerycznych i nienumerycznych, jednak na początku najlepiej wszystko traktować jako macierz. Wszelkie operacje wykonywane w MATLAB-ie zostały tak zaprojektowane, aby być jak najbardziej naturalne. Tam gdzie inne języki programowania działają na liczbach, MATLAB pozwala na szybką i łatwą pracę z całymi macierzami.

 

 

 

 

Dobry przykład macierzy znajduje się na tej renesansowej rycinie, którą wykonał niemiecki artysta i zarazem matematyk – amator, Albrecht Durer. Obraz ten jest przepełniony matematyczną symboliką. Jeśli przyjrzysz się uważnie, w prawym górnym rogu zauważysz macierz. Macierz ta jest znana jako magiczny kwadrat i w czasach Durer’a wierzono, że posiadała magiczne właściwości.

 

 

 

Wpisywanie Macierzy

 

W MATLAB-ie możesz wpisywać macierze na wiele różnych sposobów. Oto one:

 

• Wpisywanie listy elementów.

• Ładowanie macierzy z zewnętrznych plików.

• Generowanie macierzy przy użyciu wbudowanych funkcji.

• Tworzenie macierzy przy użyciu Twoich własnych funkcji zapisanych w M-plikach.

 

Rozpocznij od wpisania macierzy Durer’a jako listy jej elementów. Musisz tylko pamiętać o kilku podstawowych zasadach:

 

• Oddzielaj elementy wiersza znakami spacji lub przecinkami.

• Używaj średnika do oznaczania końca każdego wiersza.

• Ujmuj całą listę elementów w nawiasy kwadratowe.

 

Aby wprowadzić macierz Durer’a, po prostu napisz:

 

A = [16 3 2 13; 5 10 11 8;9 6 7 12; 4 15 14 1]

 

MATLAB wyświetli macierz, którą właśnie wpisałeś,

 

  A =

16              3              2              13

5              10              11              8

9              6              7              12

4              15              14              1

 

Numery są zgodne z tymi na rycinie. Kiedy wprowadziłeś macierz, MATLAB automatycznie ją zapamiętał. Możesz się do niej odwoływać poprzez zmienną A. Teraz, gdy masz już zapamiętaną macierz A, przekonasz się dlaczego jest ona taka interesująca. Dlaczego jest magiczna?

 

 

Funkcje sum, transpose oraz diag

 

Pewnie domyślasz się, że specjalne właściwości magicznego kwadratu mają coś wspólnego z różnymi możliwościami sumowania jego elementów. Jeśli dodasz do siebie wszystkie liczby z dowolnego wiersza lub kolumny, czy też z jednej z dwóch głównych przekątnych, otrzymasz zawsze ten sam wynik. Sprawdźmy to w MATLAB-ie. Najpierw spróbuj poniższego zapisu:

 

sum(A)

 

MATLAB odpowie

 

  ans =

  34              34   34   34

 

Jeśli nie określisz zmiennej wyjściowej, MATLAB używa do przechowywania rezultatów obliczeń zmiennej ans (skrót od answer - odpowiedź). Uzyskałeś wektor składający się z sum kolumn macierzy A. Okazało się, że każda suma jest identyczna, jest to magiczna suma.

 

Co powiesz na zsumowanie wierszy? MATLAB woli pracować z kolumnami macierzy, więc najłatwiejszym sposobem uzyskania sum wierszy jest transpozycja macierzy, zsumowanie kolumn i transpozycja wyniku. Operacja transpozycji jest oznaczana apostrofem. Operacja ta odwraca macierz według jej głównej przekątnej i zamienia wektory wierszy w wektory kolumn. Wobec tego wpisując

 

  A'

 

uzyskasz

 

  ans =

16               5              9               4

3              10              6              15

2              11              7              14

13              6              12              1

 

Natomiast zapis

 

  sum(A')'

 

da Ci wektor w postaci kolumny, zawierający sumy wierszy

 

ans =

34

34

34

34

 

Sumę elementów znajdujących się na głównej przekątnej macierzy, można łatwo otrzymać dzięki funkcji diag, która pozyskuje elementy z głównej przekątnej.

 

  diag(A)

 

daje

 

  ans =

       16

       10

        7

        1

 

natomiast

 

  sum(diag(A))

 

zwraca

 

  ans = 34

 

Druga przekątna nie jest tak istotna z matematycznego punktu widzenia, więc MATLAB nie posiada żadnej funkcji bezpośrednio na niej operującej. Jednak funkcja fliplr, zaprojektowania do użycia przy obsłudze grafiki, odpowiednio odwróci macierz.

 

  sum(diag(fliplr(A)))

  ans = 34

 

Przekonaliśmy się, że macierz pochodząca z ryciny Durer’a faktycznie jest magicznym kwadratem, a przy okazji poznaliśmy kilka funkcji MATLAB-a służących do operowania na macierzach. Wykorzystamy tą macierz w dalszych rozdziałach aby zilustrować dodatkowe możliwości MATLAB-a.

 

 

Indeksy

 

Element leżący na przecięciu i-tej kolumny i j-tego wiersza jest oznaczany jako A (i,j). Na przykład A (4,2) jest liczbą leżącą w miejscu przecięcia czwartego wiersza i drugiej kolumny. Dla naszego magicznego kwadratu A (4,2) równe jest 15. Możemy więc obliczyć sumę elementów znajdujących się w czwartej kolumnie macierzy A, wpisując

 

A(1,4) + A(2,4) + A(3,4) + A(4,4)

 

Jako wynik otrzymamy

 

ans =  34

 

nie jest to jednak najbardziej elegancki sposób na zsumowanie pojedynczej kolumny.

 

Możliwe jest odwołanie się do elementów macierzy przy użyciu jednego tylko indeksu, A (k). W ten sposób zwykle odwołujemy się do wektorów. Można jednak ten sposób zastosować również do dwuwymiarowej macierzy, jednak w takim przypadku tablica jest traktowana jako wektor, będący jedną, długą kolumną, utworzoną z kolumn oryginalnej macierzy. I tak dla naszego, magicznego kwadratu, A (8) jest kolejnym sposobem odwołania się do wartości przechowywanej w A (4,2).

Jeśli spróbujesz użyć indeksu leżącego poza macierzą, wystąpi błąd:

 

t = A(4,5)

Index exceeds matrix dimensions.

 

Z drugiej strony, jeśli zapiszesz nową wartość w elemencie spoza macierzy, jej rozmiar zwiększy się:

 

  X = A;

  X(4,5) = 17

             

X =

    16    3     2    13     0

     5    10    11     8     0

     9     6     7    12     0

     4    15    14     1    17

 

 

Operator Dwukropek

 

Operator dwukropek, : , to jeden z najważniejszych operatorów stosowanych w MATLAB-ie. Występuje w kilku różnych formach. Wyrażenie

 

1:10

 

oznacza wektor zawierający liczby całkowite od 1 do 10

 

1    2    3    4    5    6    7     8    9    10

 

Aby następny element zwiększał się o wartość inną od 1, możesz określić przyrost. Przykładowo:

 

100:-7:50

 

to

 

     100   93  86   79   72   65   58   51

 

natomiast

&#x...

Zgłoś jeśli naruszono regulamin