Ćw 7. Matlab (1)

Transkrypt

Ćw 7. Matlab (1)
Ćw 7. Matlab (1)
Matlab (Mathworks) to licencjonowany pakiet do obliczeń naukowych, tworzenia wykresów, analiz i symulacji
układów dynamicznych itp. Podstawowa praca w środowisku odbywa się sposobem interakcyjnym, w oknie poleceń (Command Window) wpisujemy pojedyncze instrukcje obliczeniowe (wysyłane klawiszem Enter) i na bieżąco
otrzymujemy wyniki.
Domyślne środowisko (Desktop Layout) składa się z okna Command Window, w którym wpisujemy kolejne
polecenia, okna Command History (historia utworzonych poleceń), ewentualnie okna z zakładkami Workspace
(obszar roboczy - lista zainicjowanych przez użytkownika zmiennych i ich wartości) i Current Directory (zawartość
katalogu roboczego).
Sposoby obsługi:
• dialog - wpisywanie kolejnych poleceń w oknie Command Window,
• praca wsadowa – wykonywanie ciągu poleceń zapisanych w pliku z rozszerzeniem .m
Wpisać w oknie Command Window po znakach zachęty >> przykładowe pojedyncze instrukcje, każdą wykonać
(Enter) i zanalizować odpowiedzi Matlaba - obserwując pojawienie się nazwanych zmiennych i ich wartości w
okienku Workspace:
3*5
a=1.2
% proste obliczenie (przypisanie wyniku do zmiennej domyślnej ans ang. answer)
%przypisanie (nadanie wartości) zmiennej - uwaga: kropka dziesiętna!
% po znaku % piszemy komentarze - ignorowane przez MATLAB’a
b=1.5E5
%przypisanie wartości w formacie naukowym (zmiennoprzecinkowym) – 1.5E5 to 150000
c=(a+b)/3
%przypisanie wartości prostego wyrażenia (znane wartości a i b)
c
%prosty sposób wyświetlenia wartości zmiennej c
disp(a)
%wyświetlenie wartości zmiennej a (ang. display)
a=sin(pi/4)+b %przypisanie dla zmiennej a wartości prostego wyrażenia z użyciem funkcji.
Uwagi:
Operatory działań arytmetycznych jak w Excelu: + – * / ^.
Operacja potęgowania wykonywane przed operacją zmiany znaku (-2^2= -4 ale 2^-1=0.5).
Nazwy zmiennych muszą się zaczynać od litery, a potem dowolny ciąg liter, cyfr i znaków podkreślenia _ .
W nazwach zmiennych istotne są duże i małe litery – x i X to dwie różne zmienne.
Edycja ewentualnego błędu polecenia po przewinięciu pamięci poleceń - przy pomocy strzałek klawiatury ↓↑.
Wybrane funkcje arytmetyczne
sin(x), cos(x), tan(x), cot(x) – trygonometria (kat w radianach),
sind(x), cosd(x), tand(x), cotd(x) – trygonometria (kąt w stopniach),
sqrt(w) – pierwiastek kwadratowy
abs(w) – wartość bezwzględna
exp(w) – funkcja wykładnicza (ew)
power(a, b) – potęga (ab) – uwaga: wymiennie można uzywać operatora ^
log(w) – logarytm naturalny!
log10(w) – logarytm dziesiętny
rem(x, y) – reszta z dzielenia całkowitego x/y
rand – liczba losowa z przedziału (0, 1)
fix(w), ceil(w), floor(w), round(w) – funkcje zaokrągleń
gdzie: w, a, b, x, y – dowolne wyrażenia obliczeniowe.
pi
– stała π
Uwaga: nazwy funkcji, stałych (np.pi) piszemy zawsze małymi literami.
Przykład: Obliczyć wartość wyrażenia:
−
−2
dla x=3.45
Wpisujemy kolejno:
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 rem
% pomoc na temat wybranej funkcji (tu: rem)
format long
% większa dokładność wyświetlanych wyników
format short % dokładność podstawowa
demo
% program demonstracyjny Matlab'a
clc
% czyszczenie ekranu
clear
% usunięcie wszystkich zmiennych z obszaru roboczego
clear x
% usunięcie zmiennej x z obszaru roboczego
Zadanie
1. Wykonać przykładowe obliczenie wyrażenia dla wartości x=2.43:
−
−√
−
2. Wykonać poniższą sekwencję operacji i zrozumieć działanie:
format long
n=5
pi5=round(pi*10^n)/10^n
Operacje na tablicach
m=[1 2 3 ]
%przypisanie wartości elementom macierzy (wektor wierszowy)
m0= [1; 2; 1; 1; 0]
% przypisanie macierzy (wektor kolumnowy)
m1 = [1.1 2.1 3.55 ; -2 1 1; 1.44 0 0]
%macierz kwadratowa
m2=[1 1 1 1 1]
m3=[1 2 3 4 5]
m4 = m1 + m2
% dodawanie macierzy (uwaga na wymiary i rozmiar)
m5 = m4*m0
% mnożenie macierzy (uwaga na wymiary i rozmiar)
m5t = m5'
% macierz transponowana
m5o = m5^(-1)
% macierz odwrotna
m5*m5o
% sprawdzenie - macierz jednostkowa
det(m1)
% funkcja obliczenia wyznacznika macierzy kwadratowej
m3(3)
% dostęp do elementu macierzy (indeks elementu)
m1(2,3)
% dostęp do elementu macierzy (indeksy wiersz-kolumna)
Inny sposób definicji tablic:
M1=0:10:90
%Uwaga:
wartość_początkowa:krok:wartość_końcowa
Przykład: Zinterpretować rezultat wypełnienia tablicy:
M2=[M1; sin(M1*pi/180)]
Zadania:
1. Wypełnić dwie macierze dwuwymiarowe (wiersze, kolumny) rozmiarze MxN, a następnie:
• dodać je do siebie,
• pomnożyć je przez siebie.
Jaki rozmiar w obu wymiarach powinny mieć macierze, żeby dozwolone było wykonanie obu
operacji?
2. Zastąpić operator * mnożenia macierzowego dwóch macierzy operatorem dwuznakowym .* .
Zinterpretować wynik. Kiedy taka operacja jest możliwa?
3. Wykonać dzielenie elementowe macierzy przez macierz wykorzystując operator ./ (obie ten sam
rozmiar w obydwu wymiarach). Zinterpretować wynik.
4. Jaki wymóg rozmiarów musi spełniać macierz, aby dało się ją podnieść do kwadratu? Wypróbować operatory: ^ i .^
5. Wypróbować i wyjaśnić działanie kolejnych poleceń:
A=round(10*rand(5,5))
mx=max(A)
mx2=max(max(A))
s=sum(sum(A))
w1=size(A)
w2=numel(A)
6. Wykonać ciąg operacji i zrozumieć jego działanie:
M=rand(3,3)
M(7,7)=1
Rozwiązanie układu równań liniowych
2x + 3y – 4 z = 5
x + y – z = 3,5
-4 y + 2,5 x – z = 2
Rozwiązanie:
A = [2 3 –4 ; 1 1 -1 ; 2.5 –4 –1]
% Uwaga: zachować kolejność zmiennych
B = [ 5 ; 3.5 ; 2]
X= A^(-1)*B
%wektor rozwiązań
A*X
%sprawdzenie – wynikiem powinien być wektor wyrazów wolnych B
spr= 2*X(1)+3*X(2) –4*X(3) –5 %sprawdzenie 1 go równania (powinno dać 0).
Pierwiastki wielomianu
Funkcja roots (argumentem funkcji jest tablica współczynników [an an-1 ... a0])
Przykład: Dla równania: 5x4+x2 –2x –3 =0
roots ( [5 0 1 –2 -3] )
Zadanie:
Rozwiązać poniższy układ równań:
–x + y – 4.3 z + 2 v= 15
3x + y – v = 35
4 x + 0,5 y + z – 4.5 v = 2,2
12,5 y – z – 5 v = 12
Zmienne zespolone
Przykłady działań:
z1 = 5.0 + 5.0i
z2 = sqrt(-1)
z3 = angle(z1)
z4 = 4*z3
% zmienna zespolona
% i to jednostka urojona (√−1 )
% kąt ϕ
k1 = angle(0+1i)*180/pi
k2 = angle(1+0i)*180/pi
z1o=1/z1
z4=z1*z2
Sprawdzić i wyjaśnić wyniki operacji:
v1= log(0)
v2=log(-1)
v3=exp(log(-1))
Zadanie
1. Zdefiniować dwie zmienne zespolone:
4.5+4.7i
–2.5 –5.6i
2. Wykonać dodawanie i mnożenie obu liczb zespolonych.
3. Zilustrować graficznie wynik dodawania dwóch liczb zespolonych w układzie kartezjańskim jako
sumę dwóch wektorów (np. w programie Paint lub Visio).