Równania różniczkowe wyższych rzędów

Równania różniczkowe wyższych rzędów

Wskazówki dotyczące rozwiązywania równań różniczkowych przedstawione w poprzednim wpisie w pełni wystarczą do rozwiązywania problemów opisanych równaniem różniczkowym pierwszego rzędu. W praktyce oznacza to, że są one przydatne w zasadzie nigdy 🙂 Nie są bezużyteczne ale na pewno są niewystarczające do rozwiązywania większości problemów obliczeniowych. Jeśli w rzeczywistości stykamy się z potrzebą rozwiązania równania różniczkowego, to jest to zazwyczaj równanie wyższego rzędu i wtedy potrzeba czegoś jeszcze. Weźmy dla przykładu problem swobodnie odbijającej się od podłoża sprężystej piłki. Czytaj dalej Równania różniczkowe wyższych rzędów

Rok zerowy

Rok zerowy

Czy zastanawialiście się kiedyś nad problemem roku zerowego? Czy był w ogóle taki rok? Konkretnie, czy Jezus narodził się w pierwszym roku naszej ery czy może wcześniej? W zasadzie w internecie można znaleźć sporo dywagacji na ten temat ale opinia jest raczej zgodna - nie ma czegoś jak rok zerowy.  No dobrze, ale jeśli założymy, że Jezus urodził się 25 grudnia roku pierwszego (choć podobno był to raczej wrzesień), to pierwsze urodziny obchodził w drugim roku naszej ery, prawda? No jest problem. Na szczęście mamy XXI wiek i sprawdzone narzędzia do rozwiązywania problemów obliczeniowych. Dlaczego by tak nie spytać o istnienie roku zerowego naszego ulubionego programu? Czytaj dalej Rok zerowy

MATLAB + Arduino

MATLAB + Arduino

Arduino to tani i łatwy w obsłudze mikro-kontroler, który może stanowić podstawę budowy przeróżnych urządzeń i sterowanych cyfrowo mechanizmów. Platforma kierowana jest do hobbystów i w zasadzie każdy, bez technicznego wykształcenia, po kilku godzinach zabawy jest w stanie uruchomić swoje pierwsze projekty oparte o Arduino. System ma jednak swoje ograniczenia, które ujawniają się gdy przychodzi do realizacji bardziej złożonych pomysłów. Z jednej strony jest to dosyć prymitywne środowisko programistyczne (w sensie IDE, nie grupy użytkowników programu 🙂 ), które nie ułatwia życia kiedy trzeba szukać błędów popełnionych w projekcie. Z drugiej strony jest to wydajność obliczeniowa Arduino. Lekarstwem na te bolączki może być pożenienie Arduino i MATLABa. W zasadzie nie jest to klasyczne małżeństwo, bo bardzo istotne znaczenie w ma ten trzeci, czyli komputer PC udostępniający swoją moc obliczeniową. Konfiguracji w związku może być zatem kilka. Metody połączenia MATLABa i Arduino przedstawiam poniżej, każda ma swoje wady i zalety. Czytaj dalej MATLAB + Arduino

Callback function w MATLAB

Callback function w MATLAB

Callback function to bardzo przydatny mechanizm pozwalający wywołać wskazaną przez użytkownika funkcję przy okazji obsługi jakiegoś zdarzenia. Scenariuszy, w których callback funtion może się przydać jest kilka. Dla przykładu, potrzebne nam do analizy dane mogą być na bieżąco odczytywane ze sprzętu pomiarowego lub serwera. W związku z tym w MATLABie tworzymy odmierzający czas obiekt, z którym to wiążemy szereg procedur umożliwiających cykliczne pobieranie i analizę porcji danych – i tu właśnie jest miejsce na wykorzystanie mechanizmu callback. Najlepiej będzie zilustrować to przykładem - spróbujmy zaimplementować w MATLAbie technikę Pomodoro. W skrócie, Pomodoro to technika motywacyjna umożliwiająca zwiększenie naszej produktywności na tej zasadzie, że czując potrzebę przerwy mówimy sobie „pocisnę jeszcze te 15 minut a potem luz”. Zazwyczaj w technice pomodoro wykorzystuje się kuchenny minutnik, my wykorzystamy MATLABa i obiekt timer. Czytaj dalej Callback function w MATLAB

Fraktal - konkurs

Fraktal

Dziś firma ONT startuje z konkursem "Fraktal", w którym można wygrać kubek z logiem MATLAB&Simulink, parę ciepłych skarpet na zimę z wyszytą membraną MathWorks'a i inne, równie atrakcyjne nagrody. Zasady konkursu są bardzo proste. Do 23 października na adres mailowy konkurs@ont.com.pl należy nadesłać stworzony w MATLABie  obraz przedstawiający fraktal oraz m-kod służący do wygenerowania tegoż że obrazu. Oceniany, od strony artystycznej, będzie wyłącznie obraz.  Kod posłuży jedynie do weryfikacji, że dzieło powstało w MATLABie, a nie na kalkulatorze na przykład. Zasady proste, nagrody ciekawe, zapraszam do wzięcia udziału!

fraktal_1

W związku z wielkim konkursem o ciepłe skarpetki dzisiaj wpis poświęcony fraktalom. Czytaj dalej Fraktal - konkurs

Rozwiązywanie równań różniczkowych w MATLABie

Rozwiązywanie równań różniczkowych w MATLABie

Od kilku dni dostępna jest wersja 2016b MATLABa. Tym razem zmiany koncentrują się głównie na obszarze „Big Data”. Wśród nowinek znalazła się jednak jedna, która choć wcale nie spektakularna, może znacznie ułatwić codzienną pracę każdemu użytkownikowi. Chodzi o wprowadzenie możliwości definiowania funkcji w obrębie skryptu. Przy próbie policzenia czegoś na szybko może to być bardzo pomocne – przykładem niech będzie numeryczne rozwiązywanie równań różniczkowych.
Czytaj dalej Rozwiązywanie równań różniczkowych w MATLABie

Programowanie obiektowe w MATLAB

Programowanie obiektowe w MATLAB

W dzisiejszym świecie zastosowanie technik programowania obiektowego widoczne jest wszędzie. Wystarczy, że człowiek lodówkę otworzy i już na niego oo wyskakuje, ale co się dziwić? Skoro Arduino można programować dziś obiektowo, to tostery też można. MATLAB, jako współczesny język programowania, również jest zorientowany obiektowo. Nie było tak co prawda zawsze, możliwość programowania obiektowego wprowadzono kilka lat temu. Zrobiono to jednak bez większego rozgłosu i spora część użytkowników może sobie nie zdawać sprawy z tego, że w MATLABie można programować obiektowo. W tym braku świadomości nie ma nic złego, MATLAB to środowisko obliczeniowe wykorzystywane na wielu płaszczyznach i do wielu celów, nie każdy użytkownik programu jest programistą i nie każdemu zaawansowane techniki programistyczne są do szczęścia potrzebne. Warto jednak zapoznać się z postawami z tego prostego względu, że z wersji na wersję w MATLABie powiększa się liczba gotowych klas przygotowanych do wykorzystania przez użytkowników. Czytaj dalej Programowanie obiektowe w MATLAB

MATLAB Compiler, MATLAB Coder

Stworzenie algorytmu obliczeniowego w MATLAbie to dla niektórych koniec pracy, dla innych dopiero początek. Każdy algorytm obliczeniowy czemuś służy i może się zdarzyć, że końcowy odbiorca będzie zainteresowany wielokrotnym wykorzystaniem algorytmu, a nie będzie w ogóle zainteresowany MATLABem, czy też szerzej, technologią wykorzystaną do jego opracowania. W środowisku MATLAB istnieją dwa podejścia umożliwiające oderwanie owocu pracy (algorytmu, aplikacji) od drzewa (środowiska MATLAB) i sprezentowanie go „na zewnątrz”. Każde podejście przeznaczone jest dla trochę innej grupy odbiorców i każde wymaga uzbrojenia środowiska MATLAB w dodatkowe moduły (toolboxy): MATLAB Compiler lub MATLAB Coder. Same nazwy modułów niestety nie pomagają w rozszyfrowaniu tego, co się za nimi kryje.

Czytaj dalej MATLAB Compiler, MATLAB Coder