Wykład 2 Dr Aneta Polewko-Klim

Slides:



Advertisements
Podobne prezentacje
OBLICZENIA NUMERYCZNE
Advertisements

Tablice 1. Deklaracja tablicy
Funkcje w PHP ABK.
Język C/C++ Funkcje.
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Języki programowania C++
Badania operacyjne. Wykład 2
Instrukcje warunkowe Zajęcia 5.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Macierze Maria Guzik.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Informatyka stosowana Prowadzący: Grzegorz Smyk
Wykład 2 struktura programu elementy języka typy zmienne
Metody numeryczne Wykład no 2.
Matematyka wokół nas Równania i nierówności
Schemat Hornera Mgr inż. Michał Szucki.
Programowanie w języku Fortran 95
Matematyka.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
„Są plusy dodatnie i plusy ujemne.”
Podstawy programowania
O relacjach i algorytmach
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
SQL – podstawowe funkcje
Podstawy programowania w języku C i C++
Programowanie w języku Matlab
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
TABLICE C++.
Wyrażenia w Turbo Pascalu.
Programowanie w języku Matlab
PHP: warunki, pętle, switch, break, continue
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Podstawy programowania w języku C i C++
Programowanie strukturalne i obiektowe
Warsztaty programowania w języku Python
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
II. Matematyczne podstawy MK
C# Platforma .NET CZ.3 Kuba Ostrowski.
Podstawy informatyki 2013/2014
Użytkowanie i programowanie Matlaba
Metody obliczeniowe i podstawy programowania
Programowanie Matlaba
MOiPP Matlab Sortowanie Obliczenia symboliczne - Symbolic ToolBox
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
Visual Basic for Applications Poziom podstawowy Zajęcia 2
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
PWSW Mechatronika Wykład 7 Matlab cd.
1 Zagadnienia na egzamin. 2 Język C podsumowanie Struktura programu w języku C Zmienne, Stałe Operacje arytmetyczne Operatory logiczne Priorytety operatorów.
Zasady arytmetyki dwójkowej
Typy liczbowe, zmienne, operatory Zajęcia 4. Zmienne Zmienna – to w programowaniu element programu, który może mieć przypisaną pewną wartość (wartość.
Metody rozwiązywania układów równań liniowych
METODY REPREZENTOWANIA IFORMACJI
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
Do czego służy arkusz kalkulacyjny, jego budowa
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Wykład 2 Dr Aneta Polewko-Klim
Technika Mikroprocesorowa 1
Wykład 2 Dr Aneta Polewko-Klim
ETO w Inżynierii Chemicznej
Excel Informacje różne.
Zapis prezentacji:

Wykład 2 Dr Aneta Polewko-Klim https://play.google.com Wykład 2 Dr Aneta Polewko-Klim

Skrypt 26. Skrypty Skrypt to plik tekstowy o rozszerzeniu .m zawiera instrukcje w języku Matlab. Skrypty nie pobierają żadnych argumentów ani żadnych nie zwracają, operują tylko na zmiennych dostępnych w przestrzeni roboczej Matlaba. Tam też są zapisywane wszystkie zmienne utworzone w skryptach. Skrypt można utworzyć za pomocą dowolnego edytora tekstowego lub bezpośrednio w pakiecie Matlab. Można w nim umieszczać komentarze poprzedzone znakiem %. W ten sposób można tworzyć objaśnienia (tzw. helpy) do tworzonego skryptu. Help umieszcza się w pierwszych wersach skryptu. Objaśnienia te zostaną wyświetlone po wpisaniu: >> help nazwa_skryptu Skrypt uruchamiamy podając jego nazwę w wierszu poleceń. Podczas wykonywania skryptu można wpisywać dane z klawiatury oraz wyświetlać wyniki w oknie poleceń.

Twórca kodu programu jest jak dyrygent: Naukę buduje się z faktów tak jak dom buduje się z cegieł, ale samo nagromadzenie faktów nie jest jeszcze nauką, podobnie jak stos cegieł nie jest domem. Bolesław Rafał Kuc

Wyświetlanie macierzy i ich rozmiarów. Funkcja Opis disp(A) wyświetla zawartość macierzy A w oknie poleceń size(A) wyświetla rozmiar dwuwymiarowej macierzy A (liczbę wierszy i kolumn) w postaci dwuelementowego wektora wierszowego s=size(A) s=[n m] zmiennej s przypisuje zmiennej n liczbę wierszy, a zmiennej m liczbę kolumn n=size(A,1) przypisuje zmiennej n liczbę wierszy m=size(A,2) przypisuje zmiennej m liczbę kolumn length(x) zwraca długość wektora x lub dłuższy z wymiarów macierzy

Przykład Przykład: >> K=[1 2 3; 4 5 6; 7 8 9; 10 11 12] >> size(K) >> 4 3 Wyświetlanie zawartości macierzy A w oknie poleceń: >> disp(K) 1 2 3 4 5 6 7 8 9 10 11 12 Pytanie: Co wyświetli się na ekranie gdy wpiszemy: size(K,1)? size(K,2)? length(K)?

20. Arytmetyka macierzowa i tablicowa. Dodawanie i odejmowanie macierzowe i tablicowe jest identyczne, tj. odbywa się element po elemencie: A + B = [2 0; -2 1] A – B = [0 –2; -2 5] Mnożenie macierzowe oznaczamy *, natomiast mnożenie tablicowe .* Podczas mnożenia macierzowego należy pamiętać, aby liczba wierszy pierwszej macierzy była równa liczbie kolumn macierzy drugiej. Ponadto w mnożeniu jak i w dzieleniu macierzowym nie jest spełnione prawo przemienności, A*B to nie to samo co B*A. A * B = [1 3; -2 –8] B * A = [-1 2; 4 –6] A .* B = B .* A = [1 –1; 0 –6]

Dzielenie macierzowe nie jest przemienne, ponadto występuje tu dzielenie lewostronne i prawostronne. Operator lewostronny – macierz stojąca po prawej stronie jest dzielona przez macierz stojącą po lewej stronie. Ogólnie służy on do rozwiązywania równań liniowych postaci: A * x = b wtedy: x = A\b w tym wypadku wektor b jest dzielony przez macierz A. Operator prawostronny – macierz stojąca po lewej stronie operatora jest dzielona przez macierz stojącą po jego prawej stronie: A / B Dzielenie tablicowe: mamy także dwa operatory, a ponieważ przemienność w tym wypadku obowiązuje, gdyż operacje wykonujemy na poszczególnych elementach tablicy, mamy tylko dwa różne wyniki dzielenia: A.\B = B./A A./B = B.\A

Przykład >>A=[2 -3; -2 3]; >>B=[-3 2]; Rozwiąż układ równań >>A=[2 -3; -2 3]; >>B=[-3 2]; >>wektor_wynikowy=A\B >>wektor_wynikowy >> 0.24 0.26

Potęgowanie: A^3 = A*A*A A^(.3) 4^B Transpozycja macierzy jest to zamiana wierszy macierzy z kolumnami. Jeżeli mamy macierz o składnikach rzeczywistych to transpozycja macierzowa i tablicowa daje taki sam wynik, natomiast różni się gdy składnikami macierzy są liczby zespolone. W tym przypadku transpozycja tablicowa zamienia tylko wiersze z kolumnami, natomiast transpozycja macierzowa zwraca macierz o elementach sprzężonych. 1 2 3 4 5 6 7 8 9 10 11 12 1 4 7 10 2 5 8 11 3 6 9 12

21. Formaty i wyświetlanie liczb. Obliczenia w Matlabie są wykonywane z podwójną precyzją, ale format wyświetlania liczb można zmienić za pomocą: format parametr_formatowania Parametr formatowania Reprezentacja short short e long long e hex + bank compact loose rat 1.3333 0.0000 1.3333e+000 1.2345e-006 1.33333333333333 0.00000123450000 1.333333333333333e+000 1.234500000000000e-006 3ff5555555555555 3eb4b6231abfd271 Znak + jest wyświetlany dla liczb dodatnich 1.33 0.00 Wyłącza dodawanie dodatkowych pustych wierszy Włącza dodawanie dodatkowych pustych wierszy 4/3 1/810045

short – reprezentacja stałoprzecinkowa pięciocyfrowa short e – reprezentacja zmiennoprzecinkowa pięciocyfrowa long – reprezentacja stałoprzecinkowa piętnastocyfrowa long e – reprezentacja zmiennoprzecinkowa piętnastocyfrowa hex – szesnastkowe wyświetlanie zawartości komórek zawierających daną liczbę + – znak + jest wyświetlany dla liczb dodatnich bank – format walutowy, pełna część całkowita, do dwóch miejsc po przecinku compact – wyłącza dodawanie dodatkowych pustych wierszy loose – włącza dodawanie dodatkowych pustych wierszy rat – przedstawia ułamki dziesiętne za pomocą ilorazu małych liczb całkowitych

22. Funkcje matematyczne. Matlab udostępnia wiele standardowych funkcji matematycznych. Argumentem każdej z nich może być macierz to wówczas operacja wykonywana jest osobno na każdym jej elemencie Funkcja Opis sin(z), cos(z), tan(z), cot(z) funkcje trygonometryczne, argument w radianach sqrt(z) pierwiastek kwadratowy (jeśli z<0 wynik jest zespolony) exp(z) ez log(z), log2(z), log10(z) lnz, log2z, log10z (jeśli z<0 wynik jest zespolony) abs(z) ‌‌ z ‌ lub moduł liczby zespolonej angle(z), real(z), imag(z) argument liczby zespolonej, jej część rzeczywista i urojona conj(z) liczba zespolona sprzężona sign(x) funkcja signum max(x), min(x) zwraca odpowiednio największy i najmniejszy element wektora x sum(x), prod(x) zwraca odpowiednio sumę i iloczyn elementów wektora x mean(x) zwraca średnią arytmetyczną elementów wektora x ceil(z) zaokrąglenie liczby w górę floor(z) zaokrąglenie liczby w dół fix(z) zaokrąglenie liczby dodatniej w dół, ujemnej w górę round(z) zaokrąglenie liczby do najbliższej liczby całkowitej

23. Operatory porównania i logiczne Nazwa Operator Funkcja Relacja równe a == b eq(a,b) a = b różne a ~= b ne(a,b) a  b mniejsze a < b lt(a,b) większe a > b le(a,b) mniejsze równe a <= b gt(a,b) a b większe równe a >= b ge(a,b) a  b Nazwa Operator Funkcja Relacja alternatywa a b or(a,b) a lub b koniunkcja a & b and(a,b) a i b negacja ~ a not(a) nie a

24. Instrukcje sterujące Instrukcja warunkowa if Wykonywana jeśli wyrażenie jest prawdziwe. w W oknie poleceń tą instrukcję należy wprowadzać linijka po linijce. if wyrażenie instrukcje elseif wyrażenie else end if wyrażenie instrukcje end

Przykład Oblicz wartość funkcji f(x) : >> if x>3 >> f=x.*x-6; >>elseif x>=-1 & x<=3 >> f=x; >>else >> f=x.*x-2; >>end

Instrukcja warunkowa switch Wyrażenie może być liczbą lub łańcuchem znakowym. Wartość wyrażenia jest porównywana z wartościami kontrolnymi kolejnych przypadków case i wykonywane są instrukcje przy tej wartości case, która jest równa wyrażeniu. Jeżeli żadna z wartości kontrolnych nie odpowiada wyrażeniu wykonywane są instrukcje po opcjonalnym słowie otherwise. switch wyrażenie case wartość1 instrukcje case wartość2 ... otherwise end

Przykład liczba=round(10*rand(1)); switch liczba case 1 wynik=sin(liczba) case 2 wynik=cos(liczba) otherwise wynik=tan(liczba) end wynik = -0.4161

Instrukcja for Podczas wykonywania instrukcji for kolumny macierzy_wartości przyporządkowywane są kolejno iterowanej zmiennej. W praktyce macierz_wartości ma postać min : max min : krok : max krok może być dodatni, ujemny, jak i ułamkowy. for zmienna=macierz_wartości instrukcje end

Przykład >> for i=1:5, >> for j=1:4, Utwórz macierz A o rozmiarze 5x4, o wyrazach: >> for i=1:5, >> for j=1:4, >> A(i,j)=(i+j)/(i+j+1); >> end >>end

Instrukcja while Instrukcje są powtarzane dopóki część rzeczywista wyrażenia ma wszystkie elementy różne od zera. Postać wyrażenia jest taka jak w instrukcji if czyli jest to wyrażenie logiczne. >> u1=1; u2=1; i=2; n=100; >>while i<n >>u3=u1+u2; >>u1=u2; >>u2=u3; >>i=i+1; >>end >>u3 wynik 3.5422e+020

Przykład >> u1=1; u2=1; i=2; n=100; >>while i<n Oblicz wartość setnego elementu ciągu Fibonacciego danego wzorem: >> u1=1; u2=1; i=2; n=100; >>while i<n >>u3=u1+u2; >>u1=u2; >>u2=u3; >>i=i+1; >>end >>u3   wynik 3.5422e+020

Instrukcja break i return Polecenie break kończy wykonywanie pętli wcześniej niż wynikałoby to z warunków stopu dla pętli while lub przed skończeniem pętli for, wychodząc o jeden poziom zagłębienia na zewnątrz. Instrukcja return powoduje natomiast bezwarunkowe przerwanie skryptu lub funkcji i powrót do miejsca wywołania. while wyrażenie_logiczne i=i+1; if i>=imax break end instrukcje

Przykłady instrukcji sterujących http://www.youtube.com/watch?v=-aULVtlzbN8

25. Łańcuchy Łańcuchy znakowe są wektorami składającymi się ze znaków. Łańcuch taki definiuje się za pomocą apostrofów np. >>s=’Matlab’ ; konwersji łańcucha na wektor kodów ASCII można dokonać poleceniem: >>a=double(s); konwersja odwrotna: >>char(a) Łańcuch jest wektorem, dlatego można na nim wykonywać operacje jak na zwykłych wektorach np. transpozycja łańcucha powodująca, że jego litery będą wypisywane jedna pod drugą. >>s’ Istnieje możliwość tworzenia macierzy, której wierszami są łańcuchy, w tym celu należy posłużyć się funkcją str2mat : >> S=str2mat('Matlab','procedury') S = Matlab procedury

Łańcuchy Łańcuchy znakowe są wektorami składającymi się ze znaków. Łańcuch taki definiuje się za pomocą apostrofów np. >>s=’Matlab’ ; konwersji łańcucha na wektor kodów ASCII można dokonać poleceniem: >>a=double(s); konwersja odwrotna: >>char(a) Łańcuch jest wektorem, dlatego można na nim wykonywać operacje jak na zwykłych wektorach np. transpozycja łańcucha powodująca, że jego litery będą wypisywane jedna pod drugą. >>s’ Istnieje możliwość tworzenia macierzy, której wierszami są łańcuchy, w tym celu należy posłużyć się funkcją str2mat : >> S=str2mat('Matlab','procedury') S = Matlab procedury