Wprowadzenie do Octave

Podobne dokumenty
Przetwarzanie sygnałów

Ćwiczenie 1. Wprowadzenie do programu Octave

Ćwiczenie 1. Wprowadzenie do programu Octave

Matlab Składnia + podstawy programowania

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

1 Podstawy c++ w pigułce.

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Metody numeryczne Laboratorium 2

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Wstęp do Programowania Lista 1

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Wprowadzenie do pakietów MATLAB/GNU Octave

1 Podstawy c++ w pigułce.

Metody i analiza danych

Matlab Składnia + podstawy programowania

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Matlab MATrix LABoratory Mathworks Inc.

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

1 Programowanie w matlabie - skrypty i funkcje

Cw.12 JAVAScript w dokumentach HTML

Wprowadzenie do środowiska

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

WPROWADZENIE DO ŚRODOWISKA SCILAB

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

JAVAScript w dokumentach HTML (1)

Obliczenia w programie MATLAB

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

zajęcia 2 Definiowanie wektorów:

Podstawy Programowania Podstawowa składnia języka C++

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

2 Przygotował: mgr inż. Maciej Lasota

Wykorzystanie programów komputerowych do obliczeń matematycznych

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Podstawowe operacje na macierzach

Instalacja Pakietu R

Wprowadzenie do Scilab: macierze

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Podstawy MATLABA, cd.

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Instalacja

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

MATLAB tworzenie własnych funkcji

Podstawy Programowania C++

Warsztaty dla nauczycieli

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Wprowadzenie do Scilab: funkcje i wykresy

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Programowanie strukturalne i obiektowe

Algebra macierzy

Wprowadzenie do systemu Scilab

Zanim zaczniemy GNU Octave

Algorytmika i Programowanie VBA 1 - podstawy

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Podstawy programowania skrót z wykładów:

Wprowadzenie do Scilab: podstawy języka Scilab

MATLAB - laboratorium nr 1 wektory i macierze

LibreOffice Calc VBA

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Wstęp do Programowania, laboratorium 02

Zadania. Rozdział Wektory i macierze. 1.Podajpolecenie 1,któreutworzywektor: v = [100, 95, 90,..., 95, 100].

Operacje logiczne i struktury sterujące.

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

MATLAB Podstawowe polecenia

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Podstawowe operacje graficzne.

Operatory arytmetyczne

Elementy metod numerycznych - zajęcia 9

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Języki skryptowe w programie Plans

Wprowadzenie do programu Mathcad 15 cz. 1

Transkrypt:

Wprowadzenie do Octave Poruszanie się po strukturze katalogów w Octave: Wyświetlenie ścieżki aktualnego katalogu roboczego poleceniem pwd Zmiana katalogu poleceniem cd <ścieżka_dostępu> np. cd d:\pliki_octave Wyświetlenie zawartości katalogu poleceniami ls lub dir Tworzenie katalogu (jeżeli aż tak się chce zrobić to z poziomu Octave) poleceniem mkdir <nazwa katalogu> Ćwiczenie. Sprawdź nazwę katalogu bieżącego i jego zawartość Komentarze, składnia poleceń, i ich kontynuacja: Jeśli wpisywane polecenie nie jest zakończone znakiem ";", następuje wyprowadzenie wyniku jego działania na ekran. Znak komentarza "#" (tylko w Octave) lub "%" (MATLAB i Octave) powoduje, że tekst od tego znaku do końca linii jest ignorowany. Zaleca się używać %. Znak " " umożliwia natomiast przeniesienie części danego polecenia do kolejnej linii. Polecenie help umożliwia dostęp do pomocy, np. wpisanie help funkcja1 powoduje wyświetlenie informacji o funkcji "funkcja1" (o ile taka istnieje w programie). Ćwiczenie. Wyświetl pomoc dla polecenia plot. Miłej lektury:-)! Praca z edytorem SciTE Podstawowe komendy i skróty klawiszowe F5 - uruchomienie skryptu F4 - podświetlenie wiersza z błędem Ctrl-Q - zakomentowanie lub odkomentowanie zaznaczonego bloku tekstu Ctrl-Z - cofnij Ctrl-spacja - autouzupełnienie polecenia lub nazwy funkcji (dla języka Octave musi być w pliku octave.api) Ctrl-Enter - autouzupełnienie polecenia, nazwy funkcji lub dowolnego słowa w bieżącym pliku (np. nazwy zmiennej) Ctrl-B - rozwinięcie skrótu (dla języka Octave są pliku octave_abbrev.properties) Ctrl-Shift-R - lista wszystkich skrótów dla danego języka Ćwiczenia. 1. Sprawdź działanie autouzupełniania i podpowiedzi: wprowadź lin i naciśnij Ctrl-spacja. Zatwierdź podpowiedź <Enter>em. Teraz, po wpisaniu nawiasu ( po nazwie funkcji linspace, ma pokazać się okienko podpowiedzi. 2. Sprawdź działanie Ctrl-Shift-R 3. Sprawdź działanie rozwinięcia skrótów: wpisz fn i naciśnij Ctrl+B Typy zmiennych Podstawowymi typami zmiennych są: 1. Macierze Dwuwymiarowe tablice o rozmiarach podawanych jako liczba wierszy (N) x liczba kolumn (M). Macierze wprowadza się wierszami, oddzielając elementy przecinkami lub spacjami (zalecane). Kolejne wiersze oddzielane są średnikami, np.: A = [1 2 3; 4 5 6] Ćwiczenie. Wprowadź macierz A Można również wykorzystywać w definicjach wcześniej zdefiniowane zmienne, np.: B = [A; A; 4 5 6] 1

Ćwiczenie. Wprowadź macierz B i wyświetl ją We wszystkich operacjach na macierzach ważne jest przestrzeganie spójności ich wymiarów. Wartość skalarna rozumiana jest, jako macierz o wymiarze 1 x 1. 2. Łańcuchy Ciągi znaków, wprowadzane w apostrofach lub cudzysłowie, np. str1 = PŚk ; str2 = PKM ; Na łańcuchach można przeprowadzać operacje takie, jak na macierzach. Tam, gdzie to konieczne, program dokona konwersji znaków na liczby (kody ASCII). Np.: lana = [str1; str2; Ala ] lanb = ["aaa"; "bbb"; "ccc"] Ćwiczenie. Wprowadź i wyświetl macierzy lana i lanb i oblicz ich sumę. Dlaczego wynik jest taki, jaki jest? 3. Zakresy Definiowane w postaci a:b:c, gdzie a to początek, b to krok i c to koniec. Równoważne są wektorowi wierszowemu z tą różnicą, że ich wartości obliczane są tylko wtedy, kiedy jest to wymagane. Poniższe polecenie zapisuje w wektorze wierszowym sin_tab wartości jednego okresu funkcji sinus pobierane co 0.2 radiana. sin_tab = sin(0:0.2:2*pi) Ćwiczenie. Wprowadź następujące zakresy: 1. zakres z1 z liczb całkowitych od 2 do 8; 2. zakres z2 z liczb całkowitych od 8 do 2; 3. zakres z3 z liczb całkowitych parzystych od 8 do 2; 4. zakres z4 z liczb rzeczywistych od pi/4 do 10 z krokiem 0.1; Octave pracuje na liczbach zespolonych podwójnej precyzji. Liczby zespolone wprowadza się w postaci a+j*b, gdzie a to część rzeczywista, a b część urojona. Oznaczenia jednostki urojonej to również "I", "j" oraz "J". Zastosowany format liczb zawiera również pseudowartości Inf nieskończoność i NaN nieliczba. Pojawiają się one najczęściej wskutek błędów w obliczeniach i przepełnień zakresów dopuszczalnych wartości. Zdefiniowane są stałe pi i e (podstawa logarytmu naturalnego). Ćwiczenie. Sprawdź działanie (i logikę) poleceń: 1. 1/0 2. Inf*Inf 3. Inf-Inf 4. Inf/Inf 5. NaN+NaN Można pobierać wartości elementów macierzy i łańcuchów poprzez wskazanie ich indeksów. Indeksy numerowane są od wartości 1!. Indeksy podawane mogą być jako liczby, wektory, zakresy, zmienne itd. Operator ":" powoduje pobranie całego wiersza (kolumny). Przykłady: A = [1 2 3; 4 5 6; 7 8 9] B = A(1, 2) pobiera wartość o indeksie wiersza 1 i indeksie kolumny 2, czyli liczbę 2 B = A(:, 3) pobiera całą trzecią kolumnę B = A([1, 3], [1, 3]) pobiera elementy leżące w rogach macierzy A B = A(1:2,2:3) pobiera elementy należące jednocześnie do wierszy 1 i 2 oraz kolumn 2 i 3 Ćwiczenie. Sprawdź działanie (i logikę) podanych wyżej poleceń. Dodatkowo wyświetl: 1. Drugi wiersz macierzy A 2. Pierwszą kolumnę macierzy A w kierunku odwrotnym 3. Elementy o nieparzystych indeksach w pierwszej kolumnie A 4. Wektor kolumnowy z elementów należących do głównej przekątnej macierzy A Operatory 2

Arytmetyczne: + dodawanie - odejmowanie * mnożenie macierzowe.* mnożenie każdego elementu macierzy z każdym / dzielenie macierzowe prawostronne A/B = A*inv(B) \ dzielenie macierzowe lewostronne A\B = inv(a)*b ^ macierzowe podnoszenie do potęgi, np A^3 = A*A*A.^ podnoszenie do potęgi każdego elementu macierzy.' transpozycji Logiczne i relacyjne: == równości!= lub ~= różności >, <, >=, <= nierówności alternatywa (OR) ~ lub! negacja (NOT) & koniunkcja (AND) Inne: = przypisania ++ inkrementacji (zarówno prawo jak i lewostronny), czyli zamiast i = i +1 możną pisać i++ lub ++i -- dekrementacji (zarówno prawo jak i lewostronny) ), czyli zamiast i = i -1 możną pisać i-- lub --i ' sprzężenia hermitowskiego (transpozycja i zamiana na wartości sprzężone) Ćwiczenie. Dla macierzy A=[1 2 3; 1 2 3] oraz B=[10 20 30; 10 20 30] oblicz i przeanalizuj: A+B B-A B.^A B./A A*B (Są kłopoty? Dlaczego? Jaka ma być poprawna skłania?) Funkcje Funkcje w Octave można podzielić na skompilowane (wbudowane), które nie mogą być zmieniane, ani nawet oglądane w postaci źródłowej przez użytkownika oraz nieskompilowane, które znaleźć można w postaci źródłowej. Funkcje nieskompilowane można modyfikować. Większość dostępnych funkcji jest właśnie w tej postaci. Użytkownik może również pisać własne funkcje. W tym celu należy stworzyć odpowiedni plik o nazwie tej samej co nazwa funkcji i zapisać go z rozszerzeniem ".m" w katalogu roboczym. W pliku należy umieścić funkcję w postaci: function [wyn1, wyn2,...] = nazwa_funkcji(arg1, arg2,...) Octave endfunction Jak widać, możliwe jest podanie wielu argumentów (arg1, arg2 itd.) jak również uzyskanie wielu zmiennych wyjściowych (wyn1, wyn2 itd.). Wywołanie funkcji wygląda np. tak: [a, b] = funkcja1(c,d); a = funkcja2(e); funkcja3(f); funkcja4(); Instrukcja return powoduje natychmiastowe opuszczenie wykonywanej funkcji. Zmienne globalne umożliwiają dostęp do tej samej zmiennej w różnych funkcjach. Żeby użyć zmiennych globalnych, należy zadeklarować je instrukcją global zmienna1 zmienna2... w każdej funkcji, w której zamierzamy z tych zmiennych korzystać. Poza funkcjami "tradycyjnymi Octave pozwala na deklarację funkcji anonimowych oraz funkcji typu inline. 3

Składnia funkcji anonimowej nazwa_funkcji = @(arg1, arg2,...) instrukcja Octave Przykład sin2x = @(x) sin(2*x); Składnia funkcji typu inline nazwa_funkcji = inline("instrukcje Octave", "arg1", "arg2",...) Przykład in_sin2x = inline("sin(2*x)"); lub in_sin2x = inline("sin(2*x)", "x"); Ćwiczenie. Zadeklaruj i sprawdź działanie następujących funkcji: 1. "tradycyjna" funkcja, która oblicza sumę i różnicę dwóch macierzy A i B 2. funkcja anonimowa do obliczania sumy elementów wektora z parzystymi indeksami 3. inline-funkcja, która odwraca kolejność elementów wektora Instrukcje Instrukcje warunkowe: else else else Wyrażenie uznawane jest jako prawda, gdy jest różne od zera, a jako fałsz, gdy jest równe zeru. Pętle: while (wyrażenie) endwhile do until (wyrażenie) for var1 = var2 endfor W pętli for w kolejnych iteracjach zmienna var1 przyjmuje wartości kolejnych kolumn zmiennej var2, np.: for k=(1:10) k endfor Wyświetli w oknie liczby od 1 do 10, bo wyrażenie (1:10) interpretowane jest jako wektor wierszowy. Instrukcja break przerywa wykonywanie bieżącej pętli, a continue powoduje skok do wyrażenia warunkowego pętli. 4

Cwiczenie. Opracuj program, który dla dowolnego wektora z liczb całkowitych oblicza sumę liczb parzystych (podpowiedź: użyj funkcję mod) Wykresy: plot(y) Rysuje wykres, w którym wartości umieszczone na osi odciętych zawiera wektor y, a odpowiadające im wartości na osi rzędnych przyjmowane są, jako kolejne liczby naturalne. plot(x1,y1, format1, x2,y2, format2, ) Rysuje nałożone na siebie wykresy, w których wartości umieszczone na osi rzędnych zawierają wektory x1 (pierwszy wykres), x2 (drugi wykres) itd., a wartości umieszczone na osi odciętych wektory y1, y2 itd. Łańcuch format zawiera informacje o wyglądzie wykresu. Np. - oznacza linię ciągłą,. tylko punkty, b kolor niebieski, r kolor czerwony, * markerem będzie gwiazdka. Pełny spis oznaczeń można zobaczyć w pomocy (help plot). Oznaczenia można łączyć ze sobą, np. -*r. Dołączenie łańcucha ;opis; spowoduje opisanie wykresu. Przykład: x = (0:0.1:2*pi); y1 = sin(x); y2 = cos(x); plot(x, y1, -b;sinus;, x, y2, -r;cosinus; ); bar(x,y) wykres słupkowy hist(x,n) histogram zmiennej x rysowany dla n przedziałów xlabel( opis ) opis osi x ylabel( opis ) opis osi y title( opis ) tytuł wykresu axis([x1, x2, y1, y2]) ustawianie zakresów osi replot odświeżanie wykresu clf kasowanie aktualnego wykresu hold on blokowanie wykresu tak, że kolejne będą nakładane na niego hold off odblokowanie wykresu subplot(x, y, n) Umożliwia rysowanie wielu wykresów w jednym oknie. Dzieli okno na x rzędów i y kolumn, co daje n=x*y pól. Instrukcja ta przełącza na pole o numerze n. Przykład użycia: subplot(2, 2, 1); plot(a); % lewa górna ćwiartka subplot(2, 2, 2); plot(b); % prawa górna ćwiartka subplot(2, 2, 3); plot(c); % lewa dolna ćwiartka subplot(2, 2, 4); plot(d); % prawa dolna ćwiartka Cwiczenie. Sprawdź działanie poleceń podanych wyżej. Wyświetl na jednym ekranie w 3 wierszach wykresy sin(x), sin(2x) i sin(3x) dla x=[0,pi]. 5