Ćw.1

Transkrypt

Ćw.1
Ćwiczenie 1. Matlab – podstawy (1)
Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych i dynamicznych, symulacji procesów, przekształceń i obliczeń symbolicznych itp.
Środowisko Matlaba składa się z:
- okna Command Window, w którym wpisujemy pojedyncze polecenia,
- okna Command History - historia poleceń,
- okna z zakładkami:
- Workspace - obszar roboczy - lista zainicjowanych przez użytkownika zmiennych i ich wartości,
- Current Directory - zawartość katalogu roboczego.
Dodatkowo można otworzyć okno edytora plików tekstowych (Editor).
Domyślne rozmieszczenie okien uzyskujemy z menu: Desktop/Desktop Layout/Default.
Ćwiczenie
1. Uruchomić program Matlab.
2. Zapoznać się ze strukturą okien programu.
Podstawowa praca w środowisku odbywa się sposobami:
• interakcyjnym, w oknie poleceń (Command Window) wpisujemy polecenia i na bieżąco otrzymujemy wyniki.
• wsadowo – wykonywanie napisanych skryptów (m-plików) zawierających ciągi poleceń.
Najważniejesze polecenie: instrukcja przypisania
zmienna = wyrażenie
Działanie instrukcji polega na obliczeniu wyrażenia i jego wartość nadawana jest zmiennej o podanej nazwie.
Zmienna jest inicjowana (można zauważyć jej pojawienie na liście w okienku Workspace) lub, jeśli już taka zmienna istnieje, zmieniana jest jej wartość.
Wyrażenie arytmetyczne budujemy w znany sposób, łącząc stałe, zmienne (uprzednio zainicjowane) oraz funkcje
za pomocą operatorów arytmetycznych.
Nazwy zmiennych to dowolny ciąg liter, cyfr i znaków _, lecz muszą się zaczynać od litery. W nazwach zmiennych
istotne są duże i małe litery.
Operatory działań jak w Excelu:
- jednoargumentowe: + powielenie znaku, – zmiana znaku
- dwuargumentowe: +, –, *, /, ^(potęgowanie)
Uwaga: Potęgowanie wykonywane przed zmianą znaku (-2^2= -4 ale 2^-1=0.5).
Stosujemy również nawiasy okrągłe ustalające kolejność operacji.
Ćwiczenie
1. Wpisać w oknie Command Window kolejne polecenia (każde zakończone Enterem):
x1=5.4
x2=x1+1
x1=x1-2
2. Zrozumieć działanie poleceń. Obserwować pojawienie się informacji o zmiennych i ich wartościach w
oknie Workspace.
M-pliki
W Matlab-ie można zapisać tekst ciągu instrukcji w pliku tekstowym ASCII o rozszerzeniu m. (tzw. m-pliki), a następnie wykonać te instrukcje kolejno jedna po drugiej. Matlab zawiera własny edytor ASCII.
Ćwiczenie
1. Utworzyć własny folder.
2. Zmienić katalog bieżący w Matlabie na utworzony katalog metodami jak na rysunku:
3. Utworzyć nowy m-plik (menu File/New/M-file lub z menu podręcznego okna Current Directory) w folderze
roboczym, nadając mu nazwę z rozszerzeniem m, np. test1.m,
4. W oknie edytora Matlaba napisać kolejne instrukcje jako tekst w m-pliku:
a = 1.2;
b = 1.5;
c = 2.5e-3;
d = a/(b+c);
d = d^(1/3)
%naukowy zapis liczby : 2.5*10-3
%pierwiastek 3-go stopnia!
Uwagi:
- instrukcje piszemy w osobnych wierszach, jeśli w jednym wierszu to oddzielamy je przecinkami,
- średniki na końcu instrukcji powodują brak wyświetlenia echa instrukcji na ekranie,
- nazwy zmiennych muszą być różne od nazwy m-pliku!
5. Wykonać wsadowo m-plik w Matlabie następującymi sposobami:
- przy pomocy narzędzia Run w oknie edytora m-pliku,
- przeciągając plik z okna Current Directory do Command Window
- wpisując nazwę pliku (bez rozszerzenia!) w linii poleceń Command Window:
>> test1
6. Przeanalizować rezultat wykonania skryptu.
Wybrane funkcje arytmetyczne
sin(w), cos(w), tan(w), cot(w) – funkcje trygonometryczne (argument w mierze łukowej)
sind(w), cosd(w), tand(w), cotd(w) – funkcje trygonometryczne (argument w stopniach)
sqrt(w) – pierwiastek kwadratowy
abs(w) – wartość bezwzględna
exp(w) – funkcja wykładnicza (ew)
power(a, b) – potęga (ab), alternatywnie do operatora ^ (Uwaga: tak liczymy również pierwiastki!)
log(w) – logarytm naturalny!!!
log10(w) – logarytm dziesiętny
rem(x, y) – reszta z dzielenia x/y
round(w) – zaokrąglenie do najbliższej całkowitej,
fix(w) – zaokrąglenie do całkowitej w kierunku 0,
ceil(w) – zaokrąglenie do całkowitej w kierunku +∞
floor(w) – zaokrąglenie do całkowitej w kierunku -∞
rand – zwraca liczbę losową z przedziału (0, 1)
rand(n,m) – zwraca tablicę nxm liczb losowych z przedziału (0, 1)
pi – stała π
gdzie: w, a, b, x, y – dowolne wyrażenia obliczeniowe.
Przykład
x=3.45
→
y=(x^3-exp(-2*x))/(power(x,6)-2)
Inne użyteczne polecenia:
help
- pomoc globalna
help elfun
- pomoc – spis funkcji elementarnych
help rand
- pomoc na temat wybranej funkcji (tutaj: rand) – albo: doc rand
format long
- zwiększona dokładność wyświetlanych wyników
format short - dokładność podstawowa
clc
- czyszczenie ekranu
clear zmienna - usunięcie zmiennej z obszaru roboczego (Workspace)
clear
- usunięcie wszystkich zmiennych z obszaru roboczego
pause
Zadanie
1. Sprawdzić algorytm zaokrąglania z dowolną dokładnością:
format long
pi5=round(pi*1E5)/1E5
%zaokrąglenie π do 5-ciu miejsc dziesiętnych
2. Wykonać przykładowe obliczenia wyrażeń dla wartości x=2.43:
Zmienne zespolone
Zmienna zespolona ma postać:
a+bi
gdzie: a – liczba będąca tzw. częścią rzeczywistą,
b – liczba będąca tzw. częścią urojoną,
i – jednostka urojona: i2=–1
Reprezentacja liczby zespolonej:
W Matlab-ie otrzymujemy wyniki w postaci zespolonej dla niektórych działań nieposiadających rozwiązań w dzie-
dzinie liczb rzeczywistych, np. √−2 , log(-2) itp.
z1 = 5.0 + 5.0i
% zmienna zespolona
z2 = sqrt(-1)
% jednostka urojona (pierwiastek arytmetyczny z –1)
z3 = angle(z1)
% kąt, jak na rysunku
z4 = z3*4
k1 = angle(0+1i)*180/pi
k2 = angle(1+0i)*180/pi
z1o=1/z1
z4=z1*z2
log(0)
log(-1)
exp(1)^log(-1)
%sprawdzenie
Ćwiczenie
1. Napisać m-plik, w którym:
2. Zainicjujemy dwie zmienne zespolone o wartościach:
4.5+4.7i
–2.5 –5.6i
3. Wykonamy i wyświetlimy wynik dodawania i mnożenia obu liczb.
Instrukcja warunkowa
Instrukcja służy do sprawdzenia warunków i alternatywnego wykonywania różnych grup instrukcji gdy dany warunek będzie prawdziwy (true). Postać ogólna
if warunek1
instrukcje wykonywane gdy jest spełniony warunek1
i dalsza analiza jest pomijana
elseif warunek2
instrukcje wykonywane gdy jest spełniony warunek2
i dalsza analiza jest pomijana
elseif warunek3
instrukcje wykonywane gdy jest spełniony warunek3
i dalsza analiza jest pomijana
…itd
else
instrukcje wykonywane gdy nie jest spełniony żaden
z powyższych warunków
end
Bloki else i elseif mogą zostać pominięte – wówczas gdy warunek1 nie jest spełniony wykonywana jest kolejna instrukcja poniżej instrukcji if. Gdy pierwszy lub kolejny warunek jest prawdziwy, pozostałe warunki nie są już sprawdzane.
Warunek to połączenie dwóch wyrażeń arytmetycznych znakami:
>
<
>=
<=
== (równe)
~= (nie równe)
Dwa warunki można związać:
- koniunkcją warunków, łącząc je operatorem logicznym &&
- alternatywą warunków, łącząc je operatorem logicznym ||
Przykłady warunków:
a == 0
(czy jest równe, UWAGA: 2 znaki ==)
b<c
2*a >= 5
x ~= 5
(różne od)
x>0 && x<100
Ćwiczenie
Przeanalizować poniższe przykłady, tworząc i wykonując odpowiednie m-pliki:
Przykład 1
a=1
b=6
c=3
delta = b^2-4*a*c;
if delta<0
disp ('delta jest ujemne')
else
disp(delta)
end;
% wyświetlenie tekstu
% wyświetlenie wartości zmiennej
Przykład 2 . Interakcja z użytkownikiem
a = input('Podaj a:');
b = input('Podaj b:');
c = input('Podaj c:');
delta = b^2-4*a*c;
if delta<0
disp ('delta jest ujemne')
else
disp('delta=');
disp(delta);
end;
Zadanie
Uzupełnić przykład 1 o:
a. obliczanie niewiadomych x1 i x2.
b. obliczanie pierwiastków tylko dla delta dodatniego,
c. obliczanie tylko jednego pierwiastka gdy delta będzie równe 0,
d. sprawdzenie rozwiązań - podstawić pierwiastki do równania i przekonać się czy da to wynik 0.