METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 2 OBLICZENIA ARYTMETYCZNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski
2.1. Cel ćwiczenia ĆWICZENIE NR 2 Obliczenia arytmetyczne w programie komputerowym Matlab Celem ćwiczenia jest opanowanie umiejętności wykonywania obliczeń arytmetycznych w programie komputerowym Matlab. 2.2. Stałe i zmienne W programie komputerowym Matlab obliczenia arytmetyczne wykonuje się na stałych i zmiennych. Stała to wielkość o ustalonej wartości, która nie zmienia tej wartości w czasie działania programu. Przykładem stałej jest liczba. W Matlabie wartość liczby poznamy po wpisaniu w oknie Command Window po znaku zachęty >> słowa pi i naciśnięciu Enter na klawiaturze. W poniższej tabeli przedstawiono wykaz stałych z programu Matlab. Stała pi Inf Opis Liczba =3.14... Nieskończoność
14 Metody komputerowe w obliczeniach inżynierskich eps NaN Względna dokładność zmiennoprzecinkowa (eps=2.2204e-16) Symbol nieoznaczony, tzw. nie-liczba (Not a Number) Uwaga, liczba e nie ma w Matlabie bezpośredniej reprezentacji. W celu wyznaczenia wartość liczby e należy zastosować funkcję exp(a) z argumentem a=1. Zmienna to wielkość, która może zmienić swoją wartość. Wartością może być liczba, tablica liczb, znak, ciąg znaków, tablica znaków, ciągów znaków, itp. Do zadawania wartości zmiennej służy operator przypisania =. Definiowanie zmiennej odbywa się po znaku zachęty >> w następujący sposób >>zmienna=wartość <Enter> lub >>zmienna=wartość; <Enter> Średnik na końcu polecenia umożliwia ukrycie potwierdzenia wprowadzenia danych lub skutków wykonania operacji na danych. Uwaga, zdefiniowanie zmiennej nie wymaga deklarowania jej typu. Zdefiniujmy w programie Matlab zmienną o nazwie a, której zadawać będziemy kolejno wartości liczbowe -1.234 i. W tym celu w oknie Command Window należy po znaku zachęty >> wpisać polecenie a=-1.234, a następnie nacisnąć Enter. Operację należy
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 15 powtórzyć wpisując polecenie a=pi. Zwróćmy uwagę, że wartość zmiennej jest nadpisywana. Uwaga, część całkowitą liczby od części ułamkowej oddzielamy kropką. Należy zwrócić uwagę, że w przestrzeni roboczej programu przechowywane są tylko aktualne wartości zastosowanych zmiennych, o czym informuje okno Workspace widoczne na poniższym rysunku. Okno Workspace informuje również, że utworzona została automatycznie nowa zmienna tymczasowa o domyślnej nazwie ans, której przypisana zostaje wartość liczby. Jeżeli w oknie Command Window zdefiniujemy nową zmienną b, zadamy jej wartość b=ans i naciśniemy Enter, to zmienna b przyjmie wartość liczby.
16 Metody komputerowe w obliczeniach inżynierskich W oknie Workspace można zmienić nazwę zmiennej, zmienić wartość tej zmiennej, usunąć zmienną z przestrzeni roboczej programu lub utworzyć w przestrzeni roboczej programu kopię zmiennej. W celu zmiany nazwy zmiennej należy dwukrotnie kliknąć na nazwę zmiennej, lub klikając prawym klawiszem myszy na nazwie zmiennej, wybrać z menu opcję Rename. W celu zmiany wartości zmiennej należy dwukrotnie kliknąć na wartość zmiennej lub po kliknięciu prawym klawiszem na wartości, wybrać z menu opcję Edit Value. W celu usunięcia zmiennej z przestrzeni roboczej programu należy kliknąć na nazwie zmiennej, a następnie nacisnąć na klawiaturze Delete lub kliknąć prawym klawiszem myszy na nazwie zmiennej i z menu wybrać opcję Delete. Uwaga, po usunięciu zmiennej z przestrzeni roboczej, nie ma możliwości przywrócenia jej do przestrzeni roboczej programu. Nie można tego wykonać również za pomocą skrótu klawiaturowego Ctrl+Z. W celu utworzenia w przestrzeni roboczej programu kopii zmiennej należy kliknąć prawym klawiszem myszy na nazwie zmiennej i z menu wybrać opcję Duplicate. Uwaga, utworzenie kopii zmiennej możliwe jest również za pomocą opcji menu Copy i Paste lub z zastosowaniem skrótów klawiaturowych Ctrl+C i Ctrl+V.
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 17 Za pomocą okna Workspace można utworzyć w przestrzeni roboczej programu zmienną przechowującą określoną wartość. W tym celu należy w tym oknie nacisnąć prawy klawisz myszy i z menu wybrać opcję New. W celu utworzenia nowej zmiennej zastosować można również skrót klawiaturowy Ctrl+N. Po wybraniu opcji New utworzona zostanie zmienna, której nadać można określoną nazwę i wartość. Uwaga, w programie Matlab, pamięć do przechowania wartości zmiennej jest przydzielana automatycznie.
18 Metody komputerowe w obliczeniach inżynierskich 2.3. Przechowywanie stałych i zmiennych Stałe i zmienne przechowywane są w przestrzeni roboczej programu Matlab. W celu uzyskania informacji o danych przechowywanych w przestrzeni roboczej programu, lub usunięcia tych danych z przestrzeni roboczej, należy w oknie Command Window po znaku zachęty >> wpisać odpowiednie polecenie z poniższej tabeli i nacisnąć Enter. Polecenie who whos clear Zadanie Wyświetla nazwy zmiennych znajdujących się w przestrzeni roboczej programu Wyświetla rozszerzoną informację o zmiennych znajdujących się w przestrzeni roboczej programu (nazwa, rozmiar, liczba bajtów, klasa, atrybuty) Usuwa wszystkie dane z przestrzeni roboczej programu Dane przechowywane w przestrzeni roboczej programu, można przechować w plikach binarnych 1. Do zapisu i odczytu danych do i z pliku należy zastosować polecenia z poniższej tabeli. Polecenie save Zadanie Zapisuje wszystkie dane z przestrzeni roboczej programu do pliku binarnego matlab.mat w katalogu C:\Program Files\MATLAB\R2016a\bin\ 1 Plik binarny to plik, w którym tekst zapisany jest określonym kodem znaków.
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 19 save nazwa_pliku load load nazwa_pliku Zapisuje wszystkie dane z przestrzeni roboczej programu do pliku binarnego nazwa_pliku.mat w katalogu C:\Program Files\MATLAB\R2016a\bin\ Wczytuje dane z pliku matlab.mat do przestrzeni roboczej programu Wczytuje dane z pliku nazwa_pliku.mat do przestrzeni roboczej programu Przykład. Zastosowanie poleceń save i load do zapisu i odczytu do i z pliku danych przechowywanych w przestrzeni roboczej programu. Do zapisu i odczytu do i z pliku danych przechowywanych w przestrzeni roboczej programu, można wykorzystać interfejs programu
20 Metody komputerowe w obliczeniach inżynierskich Matlab. W celu zapisu danych do pliku należy na karcie HOME nacisnąć przycisk Save Workspace. Następnie za pomocą wywołanego okna dialogowego Save As, należy wskazać miejsce zapisu i za pomocą przycisku Zapisz, zapisać dane do pliku z rozszerzeniem *.mat. Przed zapisem danych do pliku można zmienić nazwę pliku w polu Nazwa pliku:. Wykonanie zapisu danych do pliku możliwe jest również w oknie Workspace. W tym celu należy po kliknięciu prawym klawiszem myszy w oknie Workspace wybrać z menu opcję Save.
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 21 Zapis do pliku można wykonać również korzystając ze skrótu klawiaturowego Ctrl+S. Wczytanie pliku skutkuje wczytaniem danych do przestrzeni roboczej programu Matlab. W celu wczytania pliku należy na karcie HOME nacisnąć przycisk Open. Następnie za pomocą okna dialogowego Open należy wskazać plik z rozszerzeniem *.mat i nacisnąć przycisk Otwórz.
22 Metody komputerowe w obliczeniach inżynierskich Wczytanie pliku możliwe jest również po naciśnięciu na karcie HOME przycisku Import Data. Po naciśnięciu przycisku wywoływane jest okno dialogowe Import Data, w którym należy wskazać plik z rozszerzeniem *.mat, a następnie za pomocą przycisku Otwórz, wczytać plik do programu. Wczytanie danych za pomocą opcji Import Data poprzedzone jest wywołaniem okna Import Wizard, które umożliwia sprawdzenie i wybranie danych, które mają zostać wczytywane do przestrzeni roboczej programu.
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 23 Uwaga, wartości zmiennych przechowywanych w przestrzeni roboczej programu, których nazwy są takie same jak przechowywane w pliku, zostaną nadpisane po wczytaniu pliku. Do obsługi plików przechowujących dane z przestrzeni roboczej programu (również innych plików Matlaba i systemu operacyjnego) można wykorzystać polecenia przedstawione w poniższej tabeli. Polecenie dir dir('sciezka_do_katalogu') ls ls('sciezka_do_katalogu') cd pwd cd.. cd('sciezka_do_katalogu') delete('sciezka_do_pliku') Zadanie Wyświetlenie listy plików w bieżącym lub we wskazanym katalogu (np. 'sciezka_do_katalogu'='c:\program Files') Wyświetlenie listy plików w bieżącym lub we wskazanym katalogu Wyświetlenie ścieżki dostępu do bieżącego katalogu Przejście do katalogu nadrzędnego wobec katalogu bieżącego (między cd a.. należy wstawić spację) Przejście do wskazanego katalogu Usunięcie pliku o podanej nazwie (np. 'sciezka_do_pliku'='c:\plik.txt')
24 Metody komputerowe w obliczeniach inżynierskich copyfile('sciezka_do_ pliku_lub_katalogu_ zrodlowego', 'sciezka_ do_nowego_pliku_ lub_katalogu, 'f') fileattrib fileattrib('sciezka_ do_pliku_lub_katalogu') movefile('sciezka_ do_pliku_lub_katalogu', ('nowa_sciezka_do_ Skopiowanie zawartości wskazanego pliku lub katalogu do nowego pliku lub katalogu, przełącznik 'f' oznacza, że atrybuty nowoutworzonego pliku lub katalogu zostaną ustawione na tzw. tylko do odczytu Wyświetlenie informacji o atrybutach bieżącego lub wskazanego pliku lub katalogu Przeniesienie (wycięcie) pliku lub katalogu do wskazanej lokalizacji pliku_lub_katalogu')) rmdir('sciezka_ Usunięcie wskazanego katalogu do_katalogu') mkdir('sciezka_ do_katalogu\nazwa_ Utworzenie katalogu we wskazanym miejscu katalogu') what what('sciezka_ do_katalogu') lookfor slowo_kluczowe Wyświetlenie plików Matlaba (np. *.mat, *.m) w katalogu bieżącym lub we wskazanym katalogu Przeszukanie wszystkich plików Matlaba na podstawie słowa kluczowego
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 25 2.4. Operacje arytmetyczne Do wykonywania operacji arytmetycznych na stałych i zmiennych wykorzystuje się operatory. W programie Matlab stosuje się operatory z poniższej tabeli. Operator Zadanie + Dodawanie - Odejmowanie * Mnożenie / Dzielenie ^ Potęgowanie Przykład. Obliczenia arytmetyczne na liczbach a=2 i b=4. 2.5. Formatowanie stałych i zmiennych Do formatowania wartości liczbowych stałych i zmiennych stosuje się polecenie format. Polecenie format zmienia sposób wyświetlania danych, nie ma natomiast wpływu na ich wartość.
26 Metody komputerowe w obliczeniach inżynierskich Polecenie format short format short e format short g format long format long e format long g format rat format hex format + format Zadanie Wyświetla 5 cyfr części ułamkowej liczby, reprezentacja stałopozycyjna 2 Wyświetla 5 cyfr części ułamkowej liczby, reprezentacja zmiennopozycyjna Wyświetla 5 cyfr części ułamkowej liczby, reprezentacja stałopozycyjna lub zmiennopozycyjna Wyświetla 15 cyfr części ułamkowej liczby, reprezentacja stałopozycyjna Wyświetla 15 cyfr części ułamkowej liczby, reprezentacja zmiennopozycyjna Wyświetla 15 cyfr części ułamkowej liczby, reprezentacja stałopozycyjna lub zmiennopozycyjna Wyświetla liczbę w postaci ułamka zwykłego Wyświetla liczbę w szesnastkowym systemie liczbowym Wyświetla znak + dla liczb dodatnich, - dla liczb ujemnych i spację dla zera Przywraca ustawienia domyślnie 2 Reprezentacja stałopozycyjna (stałoprzecinkowa) to reprezentacja liczby rzeczywistej do zapisu, której stosuje się stałą liczbę bitów dla części całkowitej i stałą liczbę bitów dla części ułamkowej. Reprezentacja zmiennopozycyjna (zmiennoprzecinkowa) to przybliżenie liczby rzeczywistej w postaci zapisu naukowego lub inżynierskiego, np. 1.23410 6 lub 1.234E+06.
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 27 Przykład. Formatowanie reprezentacji liczbowej stałej. 2.6. Funkcje wbudowane Stałe i zmienne są często argumentami funkcji. W Matlabie funkcje (oraz polecenia) dzielimy na wbudowane, które są częścią Matlaba, oraz funkcje implementowane, które tworzy się i przechowuje w m-plikach 3. Poniżej, w tabelach przedstawiono wykaz wybranych funkcji wbudowanych. Funkcja sin(a) cos(a) tan(a) cot(a) sind(a) cosd(a) tand(a) cotd(b) Zadanie Obliczanie funkcji trygonometrycznych z liczby a wyrażonej w radianach Obliczanie funkcji trygonometrycznych z liczby a wyrażonej w stopniach 3 Plik m-plik to plik Matlaba z rozszerzeniem *.m, który przechowuje zmienne, polecenia, funkcje, itp.
28 Metody komputerowe w obliczeniach inżynierskich sinh(a) cosh(a) tanh(a) coth(a) asin(a) acos(a) atan(a) acot(a) asind(a) acosd(a) atand(a) acotd(a) Obliczanie funkcji hiperbolicznych z liczby a wyrażonej w radianach Obliczanie funkcji cyklometrycznych z liczby a, wynik wyrażony w radianach Obliczanie funkcji cyklometrycznych z liczby a, wynik wyrażony w stopniach sqrt(a) Obliczanie pierwiastka kwadratowego z liczby a, jeżeli a<0, to wynik jest zespolony nthroot(a,b) exp(a) log(a) log10(a) abs(a) abs(z) angle(z) real(z) imag(z) complex(a,b) Obliczenie wartości liczby a 1/b, jeżeli a<0, to b musi być liczbą nieparzystą Obliczanie wartości liczby e a, jeżeli a<0, to wynik jest zespolony Obliczanie logarytmu naturalnego z liczby a, jeżeli a<0, to wynik jest zespolony Obliczanie logarytmu dziesiętnego z liczby a, jeżeli a<0, to wynik jest zespolony Wyznaczanie wartości bezwzględnej z liczby a, lub modułu liczby zespolonej z Wyznaczanie argumentu liczby zespolonej z Wyznaczanie części rzeczywistej i urojonej liczby zespolonej z Utworzenie liczby zespolonej z=a+jb, gdzie a to część rzeczywista, b to część urojona, j 1
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 29 ceil(a) Zaokrąglanie liczby a w górę (ceil) i dół (floor) floor(a) round(a) mod(a,b) sign(a) factorial(a) max(a,b) min(a,b) gcd(a,b) lcm(a,b) Zaokrąglanie liczby a do najbliższej liczby całkowitej Wyznaczanie reszty z dzielenia a przez b Wyznaczanie znaku liczby a. Jeżeli a>0, to funkcja zwróci 1. Jeżeli a=0, to funkcja zwróci 0. Jeżeli a<0, to funkcja zwróci -1 Obliczenie silni z liczy a (a!=12...a) Wyznaczenie maksymalnej i minimalnej wartości dwóch liczb a i b Wyznaczanie największego wspólnego dzielnika liczb a i b Wyznaczanie najmniejszej wspólnej wielokrotności liczb a i b 2.7. Program ćwiczenia 1. Przyjąć a=x, b=2x i c=x, gdzie x to numer podgrupy i obliczyć w Matlabie wartości następujących wyrażeń a) a 4, 3 b) b 1 2c 16 3, c) 2, d) 3 7 2c 12. a 4 2. Przyjąć a=-2x, b=-x i c=-3x. Sprawdzić w Matlabie, które z wyrażeń w danej parze przyjmuje większą wartość a) 3 a3 a 1 b, x arctg c e,
30 Metody komputerowe w obliczeniach inżynierskich 2cos a /6 -c! 2 b), 1+tg, 2 1/ 2 sin b 2 b1 2 3 3 e b a a b c), 1+ b a, b tg c 2 3 d) 2 ab/ a 4 1cos b2 1 b,, a2 2 4 2 e 1/ a 4 a sin 38 b c a ln b a a, tg ctg, c a / 4 2 2 e) 2 f) 3 4 sin 40 3 e b 3, -a. ln a -c 3. Obliczyć w Matlabie wartości wyrażeń a) 2/ 3 x, 3 x \2, b) 2000 / 50 x, 50 x \ 2000. Skomentować wyniki obliczeń. 4. Wyznaczyć za pomocą Matlaba a) postać dziesiętną liczby x z 15 cyframi po przecinku, b) postać ułamka zwykłego liczby x, c) postać dziesiętną ułamka z punktu b) z 15 cyframi po przecinku, d) różnicę między postaciami dziesiętnymi liczb z punktów a) i c). Powtórzyć punkty a)-d) dla ln(x).
Ćwiczenie 2. Obliczenia arytmetyczne w programie komputerowym Matlab 31 5. Odczytać za pomocą Matlaba a) (15-x) cyfrę znaczącą 4 liczby, b) (x+5) cyfr znaczących liczby e, począwszy od najstarszej cyfry 5. 6. Korzystając z Matlaba a) sprawdzić, które z par liczb mają największy wspólny dzielnik większy od jeden: 279841 i 759375; 33803 i 39501; 210 10 +1 i 510 10 +7; 5764801 i 19487171, b) wyznaczyć za pomocą jednego wzoru najmniejszą wspólną wielokrotność liczb x+5, x+9, x+12, x+16, x+20. 7. Trzy roboty R1, R2 i R3 studentów Automatyki i Robotyki wzięły udział w dwudniowej misji badawczej na Marsie. Podczas całej misji robot R1 przebył na jego powierzchni drogę dwa razy krótszą niż robot R2. Razem roboty R1 i R2 przebyły drogę 15 km. Przedstaw w Matlabie wzory umożliwiające obliczenie, jaką drogę w każdym dniu misji oraz jaką łączną drogę podczas całej misji przebył robot R3, jeżeli a) w pierwszym dniu misji przebył drogę (2x) razy dłuższą niż robot R1, b) w drugim dniu misji przebył 1/(x+2) drogi robota R2. 8. W pewnej fabryce dwa roboty przemysłowe R1 i R2 wykonują montaż samochodów. Robot R1 montuje dwa samochody w ciągu 4 Cyfry znaczące obejmują wszystkie niezerowe cyfry rozwinięcia liczby dziesiętnej, bez początkowych zer. Np. liczby 1.2 i 12 mają po 2 cyfry znaczące, ale liczby 1.20, 12.0, 0.120 i 0.0120 po 3 cyfry znaczące. 5 Najstarsza cyfra w liczbie, to cyfra, której zmiana w największym stopniu wpływa na liczbę. Np. najstarszą cyfrą liczby 100 jest 1.
32 Metody komputerowe w obliczeniach inżynierskich godziny. W tym samym czasie robot R2, zbudowany przez studentów Automatyki i Robotyki, montuje tę samą liczbę samochodów, ale w czasie o połowę krótszym. Oba roboty pracują codziennie, nieprzerwanie przez dwie pełne ośmiogodzinne zmiany. Przedstaw w Matlabie wzory umożliwiające obliczenie a) ile łącznie samochodów zmontują oba roboty w ciągu roku, b) ile łącznie samochodów zmontują oba roboty w ciągu roku, jeżeli studenci Informatyki zoptymalizują oprogramowanie robota R2 tak, aby montował w godzinę (x+2) razy więcej samochodów, niż robot R1. Literatura [1] Luzar M., Metody komputerowe w obliczeniach inżynierskich, Wykład dla Studentów Automatyki i Robotyki, WIEA, UZ, www.issi.uz.zgora.pl [2] Czajka M., MATLAB. Ćwiczenia, Helion 2005 [3] Mrozek B., Mrozek Z., MATLAB i Simulink. Poradnik użytkownika, Helion 2004