Centralne twierdzenie graniczne i MATLAB

Nie tak dawno odbyłem bardzo ciekawą rozmowę dotyczącą polityki. Rozmowy w tym temacie nie są zazwyczaj pasjonujące, ale nie tym razem. Mój rozmówca zastanawiał się, jak to jest możliwe, że tak ważną rzecz, jak wyniki wyborów parlamentarnych sonduje się na podstawie badania grupy jedynie 1000 osób. Czy to w ogóle ma to sens? Czy czasem nie ma tu jakiegoś przekrętu? Jak to w ogóle jest możliwe, że sondowana jest tak niewielka grupa osób, a potem podawane są przybliżone wyniki z pewnym, względnie niewielkim, błędem statystycznym? Jak ten błąd jest liczony i dlaczego jest taki, a nie inny?
Choćby nie wiem ile wysiłku włożyć w energiczną gestykulację, naprawdę ciężko jest w rozmowie odpowiedzieć w jasny sposób na postawione pytania i rozwiać wątpliwości. O wiele prościej przedstawić wszystko wykorzystując sprawdzone narzędzie, jakim jest MATLAB.

Czytaj dalej Centralne twierdzenie graniczne i MATLAB

Wpis o tym, jak usunąć kreseczki z obrazka

 

ONTLogo

Jak już ostatnio zachwalałem, w MATLAbie można tworzyć naprawdę piękne wykresy. Każdy, nawet początkujący użytkownik jest w stanie stworzyć przejrzysty i dobrze opisany wykres dzięki kilku prostym poleceniom, ewentualnie z drobną pomocą narzędzia Plot Tools. Z moich obserwacji wynika jednak, że jest grupa użytkowników, którym czytelny wykres do szczęścia nie wystarczy. Trafiają się osoby, które pragną, by wykres był po prostu perfekcyjny (co każdy oczywiście rozumie na swój własny, indywidualny sposób). Uświadomiła mi to kiedyś pewna pani Profesor, uczestniczka szkolenia z podstaw MATLABa, gdy w trakcie zajęć zadała proste z pozoru pytanie: jak usunąć z wykresu te małe, pomocnicze kreseczki. Niektórym wydaje się, że dla trenerów prowadzących różnego rodzaju kursy pytania proste i często powtarzające się muszą być jakąś straszną katorgą. Nic bardziej mylnego. Proste pytanie najczęściej umożliwia udzielania skomplikowanej odpowiedzi, co jednej strony pozwala zyskać w oczach kursantów uznanie i szacunek, z drugiej strony zmniejsza ilość czasu kursu, która mogłaby być wykorzystana na zadanie jakiegoś trudnego pytania. Nie daj Boże takiego,  na które trener nie zna odpowiedzi. Ponieważ pytanie było kolejnym z rzędu, nie miałem ochoty na szczególne rozwlekanie odpowiedzi i ograniczyłem się do stwierdzenia, że jeśli na wykresie przy pomocy polecenia grid on zostanie umieszczona pomocnicza siatka,  to usunąć ją można poleceniem grid off.

wykres

Czytaj dalej Wpis o tym, jak usunąć kreseczki z obrazka

Matlab Tutorial #4

Indeksowanie macierzy

Przyglądniemy się teraz naszym danym w inny sposób.  Zobaczmy,  jak na przestrzeni lat zmieniała się liczba oddanych do użytku mieszkań budowanych przez inwestorów indywidualnych. W celu zaznajomienia się z problemem, otwórz do podglądu plik arkusza Excel z pierwotnymi danymi.

  • w przeglądarce plików, w oknie current folder kliknij prawym przyciskiem myszy na pliku mieszkania*.xls i wybierz opcję open outside MATLAB

liczba mieszkań - excell

Czytaj dalej Matlab Tutorial #4

MATLAB Plot Tools

Jedną z rzeczy, które od zawsze dawały MATLABowi przewagę nad konkurencją jest możliwość tworzenia w prosty i szybki sposób pięknych wykresów. Prosto, szybko i pięknie... poprzednie zdanie wygląda na oksymoron, ale rzeczywiście jest tak, że zaawansowany użytkownik nie ma najmniejszego problemu, by w ciągu kilku chwil stworzyć w MATLABie piękny wykres. W dodatku wykres, który wygląda dokładnie tak, jak sobie użytkownik zaplanował. Zawodowiec może to zrobić w szybki sposób, bo w końcu jest zawodowcem, a czy mniej zaawansowany użytkownik ma szansę na stworzenie czegoś pięknego? Choćby kosztem czasu? Oczywiście, wystarczy że przekopie się przez dokumentację programu lub skorzysta z Plot Tools. Mimo, że dokumentacja programu jest naprawdę wspaniała, drugie rozwiązanie wydaje się atrakcyjniejsze. Opisem Plot Tools zajmę się w dzisiejszym wpisie.

Czytaj dalej MATLAB Plot Tools

MATLAB Tutorial #3

Działanie funkcji na wektorach

W MATLABie większość funkcji obliczeniowych i graficznych możemy wywoływać na wektorach oraz macierzach. W niektórych przypadkach wymiar macierzy będącej argumentem wejściowym funkcji nie ma większego znaczenia, gdyż funkcje mogą traktować macierz jako zbiór niezależnych elementów, gdzie obliczenia wywoływane są dla każdego elementu niezależnie. Na przykład działają tak funkcje trygonometryczne.

x = sin(ogolem1991)

Oczywiście sens powyższej operacji jest mocno dyskusyjny 🙂 W każdym razie, w przypadku funkcji sinus wynik został wyznaczony niezależnie dla każdego elementu macierzy ogolem1991. Nieco inaczej sprawa wygląda, gdy dla danych uruchomimy funkcję typu diff lub jedną z funkcji statystycznych. Tutaj wymiar ma znaczenie. Zacznijmy od prostszego przypadku, czyli od pracy z wektorem.

  • Wyznacz średnią ilość mieszkań spółdzielczych oddawanych do użytku miesięcznie w roku 1991
spoldzielcze1991M = diff(spoldzielcze1991);
spoldzielcze1991M = [spoldzielcze1991(1) spoldzielcze1991M];
x = mean(spoldzielcze1991M)

x =

6.9628e+03

Funkcja mean wyznaczyła wartość średnią dla wszystkich danych zebranych w wektorze spoldzielcze1991M. MATLAB przedstawił wynik w specyficznym formacie "naukowym". 6.9628e+03 oznacza 6.9628 * 1000.

Czytaj dalej MATLAB Tutorial #3

Czarodziej importowiec

Chciałem wam dzisiaj przedstawić świetne narzędzie MATLABa, jakim jest Import Wizard. Paradoksalnie, narzędzie wymaga przedstawienia tym z was, którzy posiadają dłuższy staż  pracy w środowisku - podejrzewam, że jeśli ktoś pierwszy kontakt z MATLAB złapał dopiero co, to pewnie w dosyć naturalny sposób na Import Wizard się natknął. Starsi użytkownicy z kolei nauczyli się ileś tam lat temu, że w celu wczytania do MATLABa danych z pliku, trzeba wpisać xlsread, csvread, imread itp. Jak się przypadkiem otworzy okno importu to zamkną, bo po co im to. No i okazuje się to pewnym błędem, bo z Import Wizard warto się zaznajomić - narzędzie pozwala usprawnić pracę. Zwłaszcza przy wczytywaniu danych z plików w formacie .xls czy .txt - przykładami z wczytywaniem takich właśnie plików zajmę się w tym wpisie. Czytaj dalej Czarodziej importowiec

Matrix w MATLABIE

Wiele osób, po pierwszym zetknięciu się z programem MATLAB, sądzi, że nazwa aplikacji musi mieć coś wspólnego ze słowem matematyka (mathematics). Nie jest to prawda. Nazwa powstała ze złożenia wyrazów MATrix i LABoratories. MATLAB został stworzony z myślą o wykonywaniu podstawowych operacji na macierzach i początkowo, właściwie nadawał się tylko do tego.  Do dziś macierz jest podstawowym typem danych w środowisku, jednak program został w ciągu ostatnich dekad bardzo rozwinięty. Użytkownicy mają dostęp do tak wielu wyrafinowanych numerycznych procedur obliczeniowych, że o ile przetrzymywanie danych w macierzy wydaje się jak na razie całkiem naturalne, to sięganie po „prymitywne” matematyczne narzędzia operacji na macierzach jawi się jako kompletnie zbędne Tu można doszukiwać się przyczyny braku kojarzenia MATLABa z macierzą. No cóż, najczęściej tak właśnie jest, że „ręcznie” na macierzach operować nie musimy. Dobrze jednak pamiętać, że jakby co, to w MATLABie można. Warto też wiedzieć, w jaki sposób można, no i w końcu warto wiedzieć, w jaki powinno się pewne rzeczy robić.

Spróbujmy przy pomocy programu rozwiązać poniższy układ równań:

\begin{cases} 2x_1-2x_2+3x_3=-4\\8x_1+2x_2-5x_3=-10\\4x_1+x_2+x_3=2\end{cases}

Czytaj dalej Matrix w MATLABIE

MATLAB Tutorial #1

Początki pracy w MATLABie

Jak zacząć pracę w MATLABie? W pierwszej kolejności warto sobie odpowiedzieć na pytanie: Co to w ogóle jest MATLAB? Większość ludzi, niemających wcześniej z tym tworem do czynienia, odbiera program jako środowisko programistyczne. No cóż, trzeba przyznać, że MATLAB to jest również środowisko programistyczne, jednak jeśli ktoś siada do niego ze świeżą, niezmąconą uprzedzeniami głową, to warto jest podejść do MATLABa, jak do programu do analizy danych. Dobrze jest przyjąć,  że MATLAB to narzędzie, czy nawet zbiór narzędzi pozwalających przeanalizować dane, którymi dysponujemy. Mechanizmy, którymi dysponuje MATLAB można wykorzystać najefektywniej, jeśli stosujemy techniki programistyczne, jednak wcale nie musimy być programistami, żeby rozpocząć pracę. Mam nadzieję, że poniższy wpis (i następujące po nim kolejne wpisy) będą w stanie to wykazać.

Czytaj dalej MATLAB Tutorial #1