Joanna Piechota AiR, gr. II
Sprawozdanie z ćwiczenia nr 1
Temat: Wprowadzenie do programu Matlab.
ZADANIE 1 - Rozwiązać układ równań metodą macierzową
x1 + 7x2 - 3x3 +2x4 = 8
-2x1 + 2x3 -5x4 = 15
7x1 +10x2 -16 x4 = 0
8x1 + x2 -7x3 + 3x4 = 1
1 7 -3 2 x1 8
-2 0 2 -5 x2 15
A= 7 10 0 -16 , X = x3, B= 0
8 1 -7 3 x4 1
dla której rozwiązanie ma postać:
X= A^(-1) * B
A nasze rozwiązanie uzyskamy poprzez wprowadzenie :
>> A=[1 7 -3 2;-2 0 +2 -5;7 10 0 -16;8 1 -7 3];
>> B=[8 15 0 1]';
>> X=inv(A)*C
-8.0000
-1.3333
X = -11.3333
-4.3333
ZADANIE 2 - Narysować wykres funkcji f(t)=30*exp(-8*t)*sin(40*t), gdzie t∈<0;1>
Aby narysować w/w funkcję należy
t=[0:0.1:1]; >> określamy przedział t ze skokiem co 0.1
f=30*exp(-8*t).*sin(40*t); >> określamy wzór funkcji
plot(t,f,'r') >> kreślenie funkcji y = f(t)
ZADANIE 3 - Proszę wykonać następujące polecenia korzystając z interpretera komend
1. Utworzyć wektor o liczbach całkowitych parzystych z przedziału od 31 do 75.
x =[32:2:74]
x = 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74
2. Niech X=magic(5)
x =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
a) dodaj 16 do każdego elementu
>> x=x+16
x =
33 40 17 24 31
39 21 23 30 32
20 22 29 36 38
26 28 35 37 19
27 34 41 18 25
b) dodaj 3 tylko do elementów o nieparzystych indeksach
>> q=1:2:5 - wskazanie na nieparzyste indeksy
q =
1 3 5
>> x(q,q) - utworzenie nowej macierzy x, zawierajacej elementy o nieparzystych indeksach
pierwotnej macierzy x
ans =
17 1 15
4 13 22
11 25 9
>> x=x(q,q)+3 - dodanie do nowej macierzy 3
x =
20 4 18
7 16 25
14 28 12
c) oblicz pierwiastek kwadratowy z każdego elementu
x=sqrt(x)
x =
4.1231 4.8990 1.0000 2.8284 3.8730
4.7958 2.2361 2.6458 3.7417 4.0000
2.0000 2.4495 3.6056 4.4721 4.6904
3.1623 3.4641 4.3589 4.5826 1.7321
3.3166 4.2426 5.0000 1.4142 3.0000
d) podnieś każdy element macierzy do kwadratu
>> z=x.^2
z =
289 576 1 64 225
529 25 49 196 256
16 36 169 400 484
100 144 361 441 9
121 324 625 4 81
e) podnieś całą macierz do kwadratu
>> z=x^2
z =
1090 900 725 690 820
850 1075 815 720 765
700 840 1145 840 700
765 720 815 1075 850
820 690 725 900 1090
3. Niech x = [3 2 6 8]' i y = [4 1 3 5]' (wektory kolumnowe)
a) dodaj sume elementów x do y
>> z=sum(x)+sum(y)
z = 32
b) podnieś każdy elemt x do potęgi określonej w y
>> z=x.^y
z =
81
2
216
32768
c) podziel każdy element y przez odpowiadający mu element x
>> z=y./x
z =
1.3333
0.5000
0.5000
0.6250
d) pomnóż każdy elemnt x przez odpowiadający mu element w y, nazywając wynik z
>> z=x.*y
z =
12
2
18
40
e) dodaj elementy z i nazwij jako w
>> w=sum(z)
w = 72
f) oblicz x'*y - w i zinterpretuj wynik
>> x'*y
Macierz x o wymiera 1x5 jest transponowana, co w konsekwencji daje nam macierz 5x1 a więc możemy pomnożyć przez macierz zgodnie z zasadą:
Liczba kolumn macierzy x' ma być równa liczbie wierszy macierzy y
Wynikiem jest macierz jednowymiarowa
ans = 72
4. Oblicz poniższe wyrażenia w Matlabie, wynik sprawdź ręcznie
a) 2 / 2 * 3 = 3
b) 6 - 2 / 5 + 7 ^ 2 - 1 = 53,6
c) 10 / 2 \ 5 - 3 + 2 * 4 = 6
d) 3 ^ 2 / 4 =2,25
e) 3 ^ 2 ^ 2 =81
f) 2 + round(6 / 9 + 3 * 2) / 2 - 3 = 2,5
g) 2 + floor(6 / 9 + 3 * 2) / 2 - 3 =2
h) 2 + ceil(6 / 9 + 3 * 2) / 2 - 3 =2,5
5. Utwórz wektor x o 50 elementach wg następującego schematu
a) 2, 4, 6, 8, ...
>> x=[2:2:100]
b) 10, 8, 6, 4, 2, 0, -2, -4
>> x=[10:-2:-88]
c) 1, 1/2, 1/3, 1/4, 1/5, ...
>> z=linspace(1,1,50);
>> x=[1:1:50];
>> y=z./x
d) 0, 1/2, 2/3, 3/4, 4/5, ...
>> z=linspace(0,49,50);
>> x=linspace(1,50,50);
>> y=z./x
6. Oblicz sumę 100 elementów ciągu x(n) = (-1)^(n+1)/(2n-1)
n=1:1:100
x(n) = (-1).^(n+1)./(2*n-1)
sum(x)= 0.7829
7. Narysuj funkcje x, x^3, e^x i e^x2 w przedziale 0 < x < 4 na wykresie...
» x=(0:0.1:4); - deklaracja przedziału na osi x oraz kolejnych funkcji
» y=x;
» y1=x.^3;
» y2=exp(x);
» y3=exp(x.^2);
a) Aby uzyskać wykres w prostokątnym układzie korzystam z komendy: plot(x,y)
b) Aby uzyskac wykres półlogarytmiczny (logarytm na osi y) korzystam z komendy: semiolog(x,y)
c) Aby uzyskac wykres logarytmiczny korzystam z komendy: loglog(x,y)
8. Dane x = [3 1 5 7 9 2 6], wyjaśnij działanie poszczególnych komend
a) x(3) - wskazuje na trzeci element wektora
b) x(1:7) - wskazuje na elementy od 1 do 7
c) x(1:end) - wskazuje na wszystkie elementy, zaczynając od pierwszego
d) x(1:end-1) - wskazuje na elementy od pierwszego do przedostatniego
e) x(6:-2:1) - wskazuje na elementy od 6 do 1, przeskakując co dwa
f) x([1 6 2 1 1]) - wskazuje kolejno elementy wektora na pozycjach 1, 6, 2, 1, 1
g) sum(x) - sumuje wszystkie elementy wektora
9. Dane A= [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5], wyjaśnij działanie poszczególnych komend
a) A' - tworzenie macierzy odwrotnej
b) A(:,[1 4]) - tworzy macierz o dwóch kolumnach utworzonych z 1 i 4 kolumny macierzy A
c) A([2 3],[3 1]) - tworzy macierz o wymiarach 2x2, z elementów które leżą na przecięciu wieszy
2 i 3 oraz kolumn 3 i 1
d) reshape(A,2,6) - tworzy macierz o wym. 2x6, której elementami są kolejne elementy
macierzy A (przepisuje je)
e) A(:) - tworzy jednokolumnową macierz, której elementami są kolejne elementy macierzy
A(przepisuje je kolumnowo)
f) flipud(A) - zamienia elementy macierzy A względem poziomej symetrii tej macierzy
g) fliplr(A) - - zamienia elementy macierzy A względem pionowej symetrii tej macierzy
h) [A A(end,:)] - Error using ==> horzcat All matrices on a row in the bracketed expression must
have the same number of rows.
i) A(1:3,:) - powstaje nowa macierz utworzona z wierszy od 1 do 3 macierzy A
j) [A ; A(1:2,:)] - powstaje nowa macierz utworzona z macierzy A oraz dwóch pierwszych
wierszy macierzy A
k) sum(A) - sumuje wszystkie elementy w poszczególnych kolumnach macierzy A
l) sum(A') - sumuje wszystkie elementy w poszczególnych wierszach macierzy A ( wynik w
postaci wiersza)
m) sum(A,2) - sumuje wszystkie elementy w poszczególnych wierszach macierzy A ( wynik w
postaci kolumny)
k) [ [ A ; sum(A) ] [ sum(A,2) ; sum(A(:)) ] ] - powstaje macierz utworzona z macierzy A z
dodatkowego wiersza z punktu k) oraz dodatkowej kolumny z punktu m), której ostatnim
elementem jest suma wszystkich elementów macierzy A
10. Dane A z poprzedniego zadania. Proszę:
a) przyporządkować parzyste kolumny z A do tablicy B
B=A( : ,[2 4])
B =
7 7
1 6
1 5
b) przyporządkować nieparzyste kolumny do tablicy C
C=A( : ,[1 3])
C =
2 9
3 5
8 2
c) zamienić wymiary A na tablicę 4x3
reshape(A,4,3)
A=
2 3 8
7 1 1
9 5 2
7 6 5
11. Dane A = [ 2 4 1 ; 6 7 2 ; 3 5 9], proszę
a) przyporządkować pierwszy rzad A do wektora x1
x1=A(1 , :)
b) przyporządkować ostatnie 2 rzędy A do tablicy y
y=A([2 3] ; :)