Ćw 7. Matlab (1)
Matlab
to pakiet do obliczeń naukowych, tworzenia wykresów, analiz układów dynamicznych itp. Podstawowa
praca w środowisku odbywa się sposobem interakcyjnym, w oknie poleceń (Command Window) wpisujemy poje-
dyncze instrukcje obliczeniowe 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 napisanych skryptów zawierających ciągi poleceń.
Wykonać i zanalizować odpowiedzi na przykładowe instrukcje:
a=1.2
%przypisanie (nadanie wartości) zmiennej - uwaga: kropka dziesiętna!
% po tym znaku komentarz - ignorowany przez MATLAB’a
b=1.5E5
%przypisanie wartości w formacie naukowym (wykładniczym) – 1.5E5 to 150000
3*5
% przypisanie zmiennej domyślnej ans (answer)
c=a+b
%przypisanie wartości prostego wyrażenia
c
%prosty sposób wyświetlenia wartości zmiennej c
disp(a)
%wyświetlenie wartości zmiennej a
a=sin(pi/4)+b %przypisanie dla zmiennej a wartości prostego wyrażenia
Uwagi:
Operatory działań jak w Excelu: + – * / ^. Potęgowanie wykonywane przed zmianą 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 _. W nazwach zmien-
nych istotne są duże i małe litery.
Edycja ewentualnego błędu polecenia po przewinięciu pamięci poleceń - przy pomocy strzałek klawiatury
↓↑
.
Wybrane funkcje arytmetyczne
sqrt(w) – pierwiastek kwadratowy
abs(w) – wartość bezwzględna
exp(w) – funkcja wykładnicza (e
w
)
power(a, b) – potęga (a
b
)
log(w) – logarytm naturalny
log10(w) – logarytm dziesiętny
rem(x, y) – reszta z dzielenia x/y
fix(w), ceil(w), floor(w), round(w) – funkcje zaokrągleń
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 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 zmiennych z obszaru roboczego
Zadanie:
Wykonać przykładowe obliczenie wyrażenia dla wartości x=2.43:
−
− √
−
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.
2.
Jaki rozmiar w obu wymiarach powinny mieć macierze, żeby dozwolone było wykonanie obu
operacji?
3.
Zastąpić operator mnożenia * operatorem dwuznakowym
.* .
Zinterpretować wynik.
4.
Wykonać dzielenie elementowe macierzy przez macierz wykorzystując operator
./
(obie ten sam
rozmiar w obydwu wymiarach. Zinterpretować wynik.
5.
Jaką macierz da się podnieść do kwadratu? Wypróbować operatory:
^
i
.^
6.
Wypróbować i wyjaśnić działanie kolejnych poleceń:
A=rand(5,5)
B=max(A)
C=max(max(A))
[i,k]=max(A)
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
Pierwiastki wielomianu
Funkcja
roots
(argumentem funkcji jest tablica współczynników [a
n
a
n-1
... a
0
])
Przykład: Dla równania: 5x
4
+x
2
–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
% zmienna zespolona
z2 = sqrt(-1)
%
i
to jednostka urojona ( √−1 )
z3 = angle(z1)
% kąt
ϕ
z4 = 4*z3
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.
Przedstawić graficznie wynik dodawania dwóch liczb zespolonych w układzie kartezjańskim jako
sumę dwóch wektorów.