Rozdział 1 Zadania 11 Wektory i macierze 1Podajpolecenie 1,któreutworzywektor: v = [100, 95, 90,, 95, 100] 2 Podaj polecenie, które utworzy wektor: v = [cos(pi), cos(2 pi), cos(3 pi),,cos(100 pi)] 3 Podaj polecenie, które utworzy wektor o rozmiarze [1 100]: v = [0, 1, 1,, 1, 1, 0] 4 Podaj polecenie, które utworzy wektor: v = [1 3, 2 3, 3 3,,99 3, 100 3 ] 5 Podaj polecenie, które utworzy wektor: v = [3 1, 3 2, 3 3,,3 99, 3 100 ] 6 Podaj polecenie, które utworzy wektor liczb zespolonych: v = [1 + i, 1 + 2i, 1 + 3i,,1 + 99i, 1 + 100i] 7 Podaj polecenie, które utworzy wektor: v = [ 1 10, 1 9,, 1 2, 1, 0, 1, 1 2,, 1 9, 1 ] 10 8 Podaj polecenie, które utworzy wektor o rozmiarze [1 200]: v = [0, 1, 0, 2, 0, 3,, 0, 99, 0, 100] 9 Dana jest macierz A o rozmiarach 6 9, wypełniona dowolnymi liczbami Przykładowo można ją utworzyć za pomocą polecenia A = round(10*rand(6,9)) Utwórz(jednym poleceniem) macierz B zbudowaną z elementów w wierszach nr 1 i 4 oraz kolumnach od3do6 10 Utwórz(jednym poleceniem) macierz C zbudowaną z elementów macierzy A(z zadania nr 9), znajdujących się w parzystych wierszach 1 UWAGA!Zadaniaod1do8,należywykonaćzapomocąjednegopolecenia 1
11 Utwórz(jednym poleceniem) macierz D zbudowaną z kolumn macierzy A(z zadania nr 9), ułożonych w odwrotnej kolejności 12 Utwórz macierz E, która będzie równa macierzy A(z zadania nr 9) z wyzerowanymi nieparzystymi wierszami 13 Utwórz macierz F(jednym poleceniem) o rozmiarach 8 11, która powstanie poprzez otoczenie macierzy A(z zadania nr 9) jedynkami 14 Dana jest dowolna macierz A Utwórz macierz B, wypełnioną według schematu poniżej A = a 11 a 1n a m1 12 Funkcje a mn B = a 11 a 11 a 1n a 1n a 11 a 11 a 1n a 1n a m1 a m1 a mn a mn a m1 a m1 a mn a mn 1 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n, a która zwraca macierz kwadratowąorozmiarze n nzwartościami 1, 2,,nnagłównejprzekątnej 2 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n, a która zwraca macierz kwadratowąorozmiarze n nwypełnionąwartościami 5 i j,gdzie itonumerwierszaajtonumer kolumny 3 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n, a która zwraca n-tą liczbę Fibbonaciego Liczby Fibbonaciego obliczamy następująco: f 1 = 1, f 2 = 1, f 3 = 2, f 4 = 3,,f n = f n 1 + f n 2 4 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n, a która zwraca macierz kwadratową o rozmiarze n n wypełnioną następująco: 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 5 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n oraz dwie dowolne liczby a i b, a która zwraca macierz kwadratową o rozmiarze 2n 2n wypełnioną następująco: a 0 0 b 0 a b 0 0 b a 0 b 0 0 a 6 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n, a która zwraca macierz kwadratową o rozmiarze n n wypełnioną następująco: 1 1 1 2 1 n 1 1 2 2 2 2 n 1 1 3 3 2 3 n 1 1 n n 2 n n 1
7 Napisz funkcję, do której przekazujemy jako parametr liczbę naturalną n, a która zwraca macierz kwadratową o rozmiarze n n wypełnioną następująco: n! 1 1 1 1 (n 1)! 1 1 1 1 (n 2)! 1 1 1 1 1 8 Napisz funkcję(do której przekazujemy jako parametr liczbę naturalną n), która sprawdzi czy liczba n jest liczbą pierwszą Funkcja powinna zwracać 1, gdy n jest liczbą pierwszą lub 0, gdy n nie jest liczbą pierwszą 13 Wykresyfunkcji 1Napiszskrypt,którywykreśliwykresfunkcji y(x) = sin(k π x),dla k = 1 5ix [0, 10] 2Napiszskrypt,którywykreśliwykresfunkcji y(x) = x x 2 4,dla x [ 6, 6] 3Napiszskrypt,którywykreśliwykresfunkcji y(x) = 10 k=1 k sink (x),dla x [0, 10π] 4Napiszskrypt,którywykreśli6kolejnychprzybliżeńpunktuprzecięciawykresufunkcji y(x) = (x 1) 10 z osią odciętych 5Napiszskrypt,którywykreśliwykres3Dfunkcjiponiżej,dla x, y [ 2, 2] y(x, y) = { 1 1+e (x+y) dla x + y 0 05 dla x + y < 0 6 Napisz skrypt, który rozwiąże graficznie układ nierówności podany poniżej, dla x, y [ 2, 2] y < x + 1 y > x 2 1 y < sin(x) 14 Przetwarzanie plików tekstowych W pliku tekstowym z danymi: danetxt mamy wartości liczbowe(rozdzielone spacjami) Dane umieszczone są w 100 wierszach, w każdym wierszu mamy 10 kolumn Przykładowo, plik taki można łatwo utworzyć następująco d=fix(rand(100,10)*100)-50; save-ascii danetxt d 1 Wczytaj dane z pliku danetxt i wykonaj wykres pokazujący jak zmieniają się wartości z piatej kolumny w zależności od danych z pierwszej kolumny 2 Wczytaj dane z pliku danetxt i wyznacz wartość minimalną, maksymalną i średnią dla każdej kolumny 3Wczytajdanezplikudanetxtiwyznaczilewartościwsiódmejkolumniejestmniejszychod0 Jaki to procent wszystkich liczb w siódmej kolumnie? 4 Wczytaj dane z pliku danetxt i wyznacz ilość wierszy w których występują wartości ujemne 5Wczytajdanezplikudanetxtidokonajaproksymacjiwielomianem3-gorzędudanychz1i5 kolumny Oblicz średni błąd bezwzględny i średni błąd kwadratowy dla znalezionego modelu danych
15 Zadania z wektoryzacji wyrażeń 1Mamy M = [ 1 0 2; 3 2 1; 5 0 1]Couzyskamywwynikuwykonaniawyrażenia M(M(1, :) > 0) 2 M(M > 0, 2),czywyrażeniejestpoprawne? 3 Przedstaw wszystkie wektorowe warianty następujących operacji na macierzy M: wartości z przedziału (, 2 zastępujemy-1 wartości z przedziału ( 2, 2 zerujemy wartości z przedziału (2, zastępujemy 1 4 Z macierzy M usuń wiersze, które w parzystych kolumnach mają nieparzyste wartości 5Czywyrażenie M((M > 0) 1)jestpoprawne? 6Czywyrażenie M(M > 0 1)jestpoprawne? 7Napodstawiedwóchmacierzy Moraz N,orozmiarach [m m]utwórzmacierz,którazawiera parzyste kolumny macierzy M oraz nieparzyste kolumny macierzy N 8 Z M usuń wiersze, których suma wartości elementów jest większa od dwóch 9 Jeżeli w macierzy M ilość dodatnich elementów jest parzysta, to należy wartości tych elementów wyzerować 10 Odwróć kolejność elementów w parzystych kolumnach 11 Dla macierzy M wartości parzyste zastąp 2, nieparzyste wyzeruj 12 Elementy o wartościach dodatnich z pierwszego wiersza, z macierzy M, zastąp 1, natomiast elementy ujemne z 3-go wiersza wyzeruj Czy można tę operację zrealizować przy pomocy jednego wyrażenia? 13 W poszczególnych wierszach macierzy M pozostaw jedynie elementy o unikalnych wartościach 14 Z macierzy M usuń wiersze, które w drugiej kolumnie mają nieparzyste wartości 15 Z macierzy M pozostaw jedynie wartości z przedziału [1, 6], następnie utwórz na podstawie wektora tych wartości, macierz kwadratową [m m](macierz ta będzie posiadała m kopii wektora unikalnych wartości, gdzie m to oczywiście długość wektora) 16Napodstawiedwóchmacierzy Moraz N,orozmiarach [m m]utwórzmacierz,którazawiera parzyste wiersze macierzy M oraz nieparzyste wiersze macierzy N 17 Z M usuń wiersze, których suma wartości elementów jest większa od dwóch 18 W macierzy M[m m] wyzeruj wartości znajdujące się poniżej głównej przekątnej 19 Odwróć kolejność elementów w parzystych wierszach 20 Wyzeruj elementy na głównych przekątnych macierzy M o rozmiarze [m m] 16 Przykładowytest 1Mamymacierz A = [3 4 5; 2 6 7; 3 1 2],wwynikuwykonaniawyrażenia P = A(:, 2) >= 4otrzymamy: (a) P = [1; 1; 0]; (b) komunikat o błędzie, ponieważ w Matlabie nie można wykonywać podwójnej operacji przypisania (c) P = [1; 2]; (d) P = [3 4 5; 2 6 7];
2Zmacierzy M = [1 2 3; 4 5 6; 7 8 9]należypozostawićwyłącznieteelementy,któresąwpierwszym wierszu i mają wartości większe od dwóch Które wyrażenie realizuje tę operację? (a) M(1, M(1, :) > 2); (b) M(M(1, :) > 2); (c) find(m(1, :) > 2); (d) M(1, :) > 2 3Dlamacierzy M,orozmiarze [5, 6],wyrażenie M(2 : 4, 3 : 6)spowoduje: (a) wygenerowanie podmacierzy o rozmiarze [2, 3] (b) wygenerowanie podmacierzy o rozmiarze [4, 3] (c) wygenerowanie podmacierzy o rozmiarze [3, 4] (d) komunikat o błędzie 4DLamacierzy M = [15 7 2; 2 3 9; 1 7 13]wyrażenie M( M(:, 1) > 0, M(3, :) < 0)wygeneruje: (a) komunikat o błędzie (b) [15; 2; 1; 7; ] (c) [1; 1; 0; 1; 1; 0]; (d) [15 7; 2 3] 5Jeżeli M = [15 7 2; 2 3 9; 1 7 13]towwyniku M(M >= 3 & M <= 15)otrzymamy: (a) [15; 3; 9; 13] (b) [1 1; 2 2; 2 3; 3 3] (c) [1; 5; 8; 9] (d) [1 0 0; 0 1 1; 0 0 1] 6Jeżeli M = [15 7 2; 2 3 9; 1 7 13],towwynikuwykonaniawyrażenia: M(M(1, :) < 0) otrzymamy: (a) [2] (b) komunikat o błędzie (c) [ 7] (d) [0 1 0] 7 W macierzy A = [ 1 2 3; 5 3 2] należy dokonać klasyfikacji elementów wg zasad: wartości z przedziału [3, ) zastępujemy 1; wartości z przedziału [ 1, 3) zastępujemy 0; wartości z przedziału (, 1) zastępujemy-1; który z wariantów realizuje tę operację? (a) A(find(A >= 3)) = 1; A(find(A < 3 & A >= 1)) = 0; A(find(A < 1)) = 1; (b) (A >= 3) + (A < 1) 1; (c) wszystkie warianty (d) A(A >= 3) = 1; A(A < 3 & A >= 1) = 0; A(A < 1) = 1; 8Mamymacierz D = [ 1 2 3; 0 2 4]Wwynikuwykonaniapolecenia P = find(d < 0) uzyskamy:
(a) P = [1 1 ; 1 3 ; 2 2 ]; (b) P = [1 4 5]; (c) P = [1 0 1; 0 1 0]; (d) P = [1 3 5]; 9Jeżeli M = [3 4 2; 1 0 9]oraz N = [2 1 2; 1 1 3],towyrażenie: (M >= 3) 1 + N,daw wyniku: (a) [1 1 0; 0 0 1] (b) [1 2 2; 1 1 3] (c) [1 0 2; 1 1 2] (d) [2 3 2; 1 1 6] 10Dlamacierzy Morozmiarze 4 5,wwynikuwykonaniawyrażenia: M(M > 0, 2)otrzymamy: (a) wartości elementów dodatnich dla całej macierzy M (b) indeksy elementów dodatnich z drugiej kolumny macierzy M (c) wartości elementów dodatnich z drugiej kolumny macierzy M (d) komunikat o błędzie
Rozdział 2 Przykładowe rozwiązania Zaproponowane rozwiązania są jednymi z wielu możliwych! 21 Wektory i macierze 1v=100:-5:-100; 2v=cos(pi*(1:100)); 3v=[0ones(1,98)0]; 4v=[1:100]^2; 5v=(2*ones(1,100))^(1:100); 6v=1+i*(1:100); 7v=[1/(-10:-1)01/(1:10)]; 8 v(2:2:200) = 1:100; 9B=A([14],3:6); 10C=A(2:2:6,:); 11D=A(:,9:-1:1); 12E=A; E(1:2:5,:)=zeros(3,9); 13 F =[ones(1,11); ones(6,1) A ones(6,1); ones(1,11)]; 14[wk]=size(A); B=[A(1,1)A(1,:)A(1,k);A(:,1)AA(:,k);A(w,1)A(w,:)A(w,k)]; 22 Funkcje 1functionM=fun(n) M=diag(1:n); 2functionM=fun(n) M=zeros(n); fori=1:n forj=1:n M(i,j)=5^(i*j); 7
3functionf=fibo(n) ifn==1 n==2 f=1; else f=fibo(n-1)+fibo(n-2); 4 Zadanie do samodzielnego rozwiązania! 5 Zadanie do samodzielnego rozwiązania! 6 Zadanie do samodzielnego rozwiązania! 7 Zadanie do samodzielnego rozwiązania! 8 Zadanie do samodzielnego rozwiązania! 23 Wykresyfunkcji 1x=pi*(0:01:10); plot(x,sin(x)) hold on for i=2:5 plot(x,i*x) hold off 2 Zadanie do samodzielnego rozwiązania! 3x=pi*(0:01:10); y=0; for k=1:10 y=y+k*(sin(x)^k); plot(x,y) 4k=0; fordelta=[101001000500020001] y = linspace(1-delta, 1+delta, 100); y=(x-1)^10; k=k+1; subplot(2,3,k); plot(x,y) 5vx=-2:01:2; vy =-2:01:2; n=length(vx); [x,y] = meshgrid(vx,vy); fori=1:n forj=1:n ifvx(i)+vy(j)>=0 z(i,j)=1/(1+exp(-(vx(i)+vy(j)))); else z(i,j) = 05; mesh(x,y,z) 6 Zadanie do samodzielnego rozwiązania!
24 Przetwarzanie plików tekstowych 1 load danetxt x=dane(:,1); y=dane(:,5); plot(x,y, *r ) 2 load danetxt min1 = min(dane) max1 = max(dane) srednia = mean(dane) 3 load danetxt x=dane(:,7); ilosc = length(find(x<0)) procent = 100* ilosc/length(x) 4 Zadanie do samodzielnego rozwiązania! 5 load danetxt x=dane(:,1); y=dane(:,5); p=polyfit(x,y,3); xx=sort(x); yy = polyval(p,xx); plot(x,y, *r,xx,yy, -g ) e=abs(y-polyval(p,x)); e2=e^2; sr_blad_bezw = sum(e)/length(e) sr_blad_kwad = sum(e2)/length(e2) 25 Zadania z wektoryzacji wyrażeń Zadania z tego podrozdziału pozostają do samodzielnego rozwiązania! 26 Przykładowytest 1a2a3c4d5a6a7b8b9c10d