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ś takiego 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 relacji 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ż 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 MATLABie

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 podstawami 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

Blog MATLAB&Simulink