Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
MATLAB - Wikipedia, wolna encyklopedia

MATLAB

Z Wikipedii

Matlab
Logo programu
Rodzaj język programowania, matematyka
Aktualna wersja stabilna R2008a (marzec 2008)
Producent The MathWorks
Licencja Zamknięte oprogramowanie
Platforma systemowa Linux/Unix, Windows, Macintosh
www.mathworks.com
Screenshot

MATLAB - program komputerowy będący interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich, oraz do tworzenia symulacji komputerowych.

Spis treści

[edytuj] Opis ogólny

Nazwa programu pochodzi od angielskich słów MATrix LABoratory, gdyż początkowo program ten był przeznaczony do numerycznych obliczeń macierzowych. Obecnie program ten potrafi znacznie więcej, cechuje go duża liczba funkcji bibliotecznych oraz duże możliwości rozbudowy przez użytkownika za pomocą pisania własnych funkcji. Posiada on swój język programowania, co umożliwia pisanie w pełni funkcjonalnych programów działających w środowisku Matlaba.

W zakresie grafiki Matlab umożliwia rysowanie dwu i trójwymiarowych wykresów funkcji oraz wizualizację wyników obliczeń w postaci rysunków statycznych i animacji. Możliwe jest pobieranie danych pomiarowych z urządzenia zewnętrznego przez porty w celu ich obróbki. Wszystko to powoduje, że program ten znajduje bardzo szerokie zastosowanie[potrzebne źródło].

Istnieją alternatywne odpowiedniki tegoż programu rozprowadzane na licencjach FLOSS, takie jak Scilab czy Octave, jednak nie są tak rozbudowane jak Matlab[potrzebne źródło].

Obecnie (marzec 2008) numer najnowszej wersji tego programu to 7.6 (Release 2008a)

[edytuj] Rys historyczny

Pra-początki Matlab-a sięgają lat siedemdziesiątych, gdy w USA na zlecenie National Science Foundation powstały biblioteki języka Fortran do obliczeń macierzowych: Linpack i Eispack. Jeden z autorów tych bibliotek, Cleve Moler prowadził zajęcia z algebry liniowej na Uniwersytecie stanu Nowy Meksyk. Chcąc ułatwić życie swoim studentom napisał on w 1980 r. program, który umożliwiał korzystanie z tych bibliotek bez potrzeby programowania w Fortranie. Program ten napisany (także w Fortranie) w formie prostego interaktywnego języka poleceń i rozprowadzany na zasadach public domain był pierwowzorem Matlaba.

W 1983 C. Moller oraz S. Bangert i J. Little (inżynier z Uniwersytetu Stanford) postanowili rozwinąć powyższy projekt - zastąpili Fortran językiem C i dodali zintegrowaną grafikę. Założyli oni firmę The MathWorks Inc., która do dziś zajmuje się rozwojem i sprzedażą pakietu Matlab. W 1985 roku pojawiła się pierwsza wersja programu.

[edytuj] Ważniejsze cechy programu

[edytuj] Najważniejsze rodzaje plików

[edytuj] M-pliki (*.m)

W celu zautomatyzowania pewną liczbę poleceń z wiersza poleceń możemy zapisać do pliku z rozszerzeniem *.m (stąd nazwa m-plik) i tę listę poleceń uruchomić jednym poleceniem - mówimy wówczas o m-pliku skryptowym.

Pisząc powyższą listę poleceń w postaci funkcji języka programowania otrzymujemy dodatkowo możliwość wywołań z parametrami - mówimy wówczas o m-pliku funkcyjnym. W starszych wersjach Matlaba w jednym pliku mogła znajdować się tylko jedna funkcja. Obecnie w jednym pliku może znajdować się wiele funkcji, wywołując m-plik wywoływana jest pierwsza funkcja w pliku. M-pliki funkcyjne to programy działające w środowisku Matlaba.
Poniżej przykładowy m-plik generujący trójwymiarowy wykres:

[x,y]=meshgrid(-3.5:0.05:3.5);
z=sin(x).*sin(y)+4*exp(-(x-0.5).^2-(y-0.5).^2);
surf(x,y,z)
colormap('jet')
shading interp
xlabel('X')
ylabel('Y')
zlabel('Z')
text(0,4,4,'z=sin(x).*sin(y)+4*exp(-(x-0.5).^2-(y-0.5).^2)','FontSize',18)

[edytuj] Mex-pliki

Program napisany w języku C lub Fortran możemy skompilować poleceniem mex. Wynikiem kompilacji jest otrzymanie pliku dynamicznie ładowanej biblioteki współdzielonej (w Microsoft Windows są to pliki *.dll) nazywanego mex-plikiem (skrót od Matlab EXecutable). Mex-plik można uruchomić z wiersza poleceń w oknie Matlaba tak jak zwykły m-plik.

Przygotowanie mex-pliku bywa kłopotliwe, ale kompilacja do mex-plików ma następujące zalety:

  • możemy korzystać z programów i bibliotek napisanych w C lub Fortranie.
  • wzrost szybkości obliczeń w porównaniu do m-plików. W tej kwestii w przyszłych wersjach Matlaba przewaga mex-plików będzie malała w stosunku do m-plików.

[edytuj] Mat-pliki (*.mat)

Tymczasowe lub końcowe wyniki obliczeń możemy zapisywać do pliku tekstowego ASCII o dowolnej nazwie lub do pliku binarnego z rozszerzeniem *.mat – wówczas wszystkie liczby (całkowite i zmiennoprzecinkowe) zapisywane są w formacie zmiennoprzecinkowym z podwójną precyzją.
Przykładowy kod źródłowy, który tworzy zmienne x i y, a następnie zapisuje je razem do pliku o nazwie dwie_zmienne.mat:

clear all
x=1:100;
y=sin(x);
save dwie_zmienne x y

Wczytanie zmiennych z pliku *.mat jest możliwe za pomocą polecenia load:

load dwie_zmienne

Używanie plików *.mat zamiast ASCII ma następujące cechy:

  • mniejsza zajmowana pojemność na dysku - przykładowo jeśli zapiszemy na dysku liczbę 809154.1345098 to w pliku tekstowym zajmie ona 14 bajtów (13 cyfr + kropka) a w pliku binarnym 8 bajtów (taki rozmiar mają liczby zmiennoprzecinkowe ze zdwojoną precyzją). Może to mieć duże znaczenie przy większej ilości danych.
  • konwersja z systemu dwójkowego na dziesiętny przy zapisywaniu do pliku ASCII może prowadzić do błędów zaokrągleń.
  • Do pliku ASCII możemy zapisać tylko jedną zmienną podczas gdy do pliku *.mat dowolną ich ilość. (UWAGA: "jedną zmienną" nie oznacza jedną liczbę)

[edytuj] Język programowania

Język programowania pakietu Matlab jest pełnoprawnym językiem programowania wysokiego poziomu, o składni wzorowanej na języku C. Pozwala on na używanie funkcji i struktur, oraz umożliwia pisanie programów zorientowanych obiektowo. Tak jak wszystkie współczesne języki programowania wysokiego poziomu posiada on instrukcje sterujące takie jak: if, for, while, switch. Rezygnacja z trójargumentowej pętli for na rzecz tzw. notacji dwu-kropkowej przyśpiesza wykonanie programu.
Przykładowa pętla for napisana w C

for (wyrażenie1; wyrażenie2; wyrażenie3) {
  instrukcje;
}

Przykładowa pętla for napisana w Matlabie

for i=1:N 
  instrukcje;
end

W zakresie programowania obiektowego możemy: definiować własne klasy obiektów i metody (funkcje) je obsługujące, przeciążać (nadpisywać) funkcje i operatory, oraz dziedziczyć klasy obiektów.

Zaawansowane możliwości programowania w Matlabie, duża ilość gotowych funkcji bibliotecznych (w tym implementacji metod numerycznych) oraz możliwości graficzne powodują że Matlab pozwala na rozwiązanie wielu problemów numerycznych w czasie znacznie krótszym, niż zajęłoby napisanie własnego kodu w C lub Fortranie.

Wszelkie wprowadzane i deklarowane dane (liczby, tekst) Matlab traktuje jako macierz - pojedyncza liczba jest traktowana jako macierz o wymiarze 1x1. Matlab wyróżnia następujące typy danych (wersja 5.x):

  • double - macierz pełna. Liczby są reprezentowane w formacie zmiennoprzecinkowym z podwójną precyzją. W Matlabie możemy wykonywać operacje arytmetyczne tylko na liczbach typu double.
  • char - typ tekstowy jakim jest dowolny napis. Formalnie jest to tak samo jak w języku C 8-bitowy typ całkowity (zakres 0 - 255). Dana liczba reprezentuje odpowiadający jej kod ascii.
  • sparse - macierz rzadka. Elementy zerowe macierzy nie są zapamiętywane w pamięci komputera. W przypadku macierzy o dużej liczbie zer (macierze diagonalne, macierze rzadkie etc.) oszczędzamy pamięć oraz uzyskujemy skrócenie czasu obliczeń.
  • struct - struktura. Tak jak w każdym języku programowania struktura jest typem danych zawierającym w swoich polach dane różnych typów.
  • cell - macierz komórkowa (blokowa) - pojedynczymi elementami takiej macierzy mogą być nie tylko liczby ale i dowolne dane z powyższych typów. W macierzy komórkowej możemy przechować kilka macierzy o różnym wymiarze, tekst i strukturę jednocześnie.
  • uint8 - 8-bitowy typ całkowity (zakres 0 - 255) przeznaczony do zapisywania w pamięci obrazów graficznych. Na tym typie danych nie można wykonywać żadnych operacji arytmetycznych.

Charakterystyczne dla języka programowania Matlaba jest automatyczne rozpoznawanie typów zmiennych - nie występuje deklaracja typu (przykładowo w języku C przed użyciem zmiennej abc konieczna jest linia - "double abc;"). Matlab rozpoznaje typ zmiennej przy jej pierwszym użyciu, należy tylko odpowiednio ją wywołać.

Typ Wywołanie
double a=1 (a=[1])
char a='napis'
sparse a=sparse(1)
struct a.składnik=1
cell a={1}

[edytuj] Grafika

Przykładowy wykres 3D wykonany za pomocą Matlaba
Przykładowy wykres 3D wykonany za pomocą Matlaba

Matlab cechuje obiektowy system graficzny:

  • obiekty graficzne (nadrzędne okno graficzne, układ współrzędnych, okno menu, przyciski i suwaki etc.) są hierarchicznie uporządkowane w postaci drzewa - każdy obiekt ma jednego przodka i może mieć dowolną ilość potomków (dziedziczenie)
  • każdy obiekt graficzny ma swoje właściwości (kolor, rozmiar, położenie etc.)

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Wczytywane obrazy są w pamięci zapisywane w postaci macierzy liczb double (w zakresie 0 - 1) lub liczb unit8 (zakres 0 - 255), obróbka obrazu polega na dokonywaniu operacji matematycznych na takiej macierzy.

[edytuj] Biblioteki Dodatkowe (Toolboksy)

Toolboksy (z ang. toolboxes) to zbiór dodatkowych bibliotek (m-plików) do rozwiązywania specjalistycznych problemów z określonych dziedzin (automatyka, elektronika, telekomunikacja, matematyka etc.). Biblioteki te rozszerzają możliwości Matlaba i pisane są także przez oddzielnych producentów oprogramowania.

Spośród dużej liczby istniejących toolboksów wymienić można:

  • Chemometrix Toolbox - przeznaczony do opracowywania danych chemicznych.
  • Financial Toolbox - przeznaczony do analiz i obliczeń finansowych (planowanie stałych przychodów, badanie wydajności obligacji, kalkulacja przepływu gotówki, obliczanie stóp procentowych etc.).
  • Fuzzy Logic Toolbox - środowisko do projektowania i diagnostyki inteligentnych układów sterowania wykorzystujących metody logiki rozmytej i uczenie adaptacyjne.
  • Image Processing Toolbox - programowe narzędzia do przetwarzania obrazów.
  • Mapping Toolbox - przeznaczony do analizy informacji geograficznych i wyświetlania map, z możliwością dostępu do zewnętrznych źródeł geograficznych.
  • Neural Network Toolbox - zbiór funkcji do projektowania i symulacji sieci neuronowych.
  • Higher-Order Spectral Analisis Toolbox - przeznaczony do analizy sygnałów zakłóconych szumem niegaussowskim lub sygnałami generowanymi przez procesy nieliniowe. Biblioteka ta znajduje zastosowanie w biomedycynie, akustyce, ekonometrii, oceanografii, przetwarzaniu sygnałów mowy, technice radarowej i sonarowej.
  • Symbolic Math Toolbox - zestaw funkcji do obliczeń symbolicznych - rozszerza możliwości Matlaba o możliwość wykonywania obliczeń symbolicznych.
  • Partial Differential Equation Toolbox - zestaw funkcji do numerycznego rozwiązywania równań różniczkowych cząstkowych metodą elementów skończonych.
  • Simulink - pakiet służący do modelowania, symulacji i analizy układów dynamicznych. Simulink dostarcza także graficzny interfejs użytkownika umożliwiający konstruowanie modeli w postaci diagramów blokowych.
  • Spline Toolbox - zestaw bibliotek do aproksymacji i interpolacji funkcjami sklejanymi.
  • Wavelet Toolbox - biblioteka do analizy sygnałów oraz usuwania szumów.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com