• Nie Znaleziono Wyników

Laboratorium komputerowe 4

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorium komputerowe 4"

Copied!
5
0
0

Pełen tekst

(1)

1

Laboratorium komputerowe 4 – przykładowe rozwiązania

zad. 1.

a)

n = 5; % liczba wierszy macierzy m = 5; % liczba kolumn macierzy a = -10;

b = 10;

R = round((b-a)*rand(n,m)+a);

s = 0; % suma elementów dodatnich N = 0; % liczba elementów dodatnich

for i=1:n % przechodzimy po wszystkich wierszach for j=1:m % i dla każdego wiersza po wszystkich

% kolumnach

if R(i,j) > 0 % sprawdzamy element macierzy s = s + R(i,j); % dodajemy el. do sumy N = N + 1; % zwiększamy liczbę el.

end end

end

Np = N/(n*m)*100; % udział procentowy elementów dodatnich disp('Suma elementow dodatnich: ');

disp(s);

disp('Udzial procentowy elementow dodatnich: ');

disp(Np);

Uwaga:

Macierz R jest macierzą pseudolosową, dlatego za każdym razem uzyskamy inne wyniki (dla mniejszych macierzy warto dodatkowo wyświetlić jak wygląda wygenerowana macierz i sprawdzić, czy wszystko dobrze działa). Im więcej jest elementów w macierzy R, tym mniejszy jest rozrzut w otrzymywanym udziale procentowym Np.

Proszę uruchomić powyższy skrypt wielokrotnie, dla różnych parametrów n, m, a, b, zgodnie z propozycjami w tematach zadań.

Fragment w ramce zostanie wykorzystany do zdefiniowanie funkcji (podpunkt b).

(2)

2

function [s Np] = macierzdodatnie(A)

[n m] = size(A);

s = 0;

N = 0;

for i = 1:n for j = 1:m

if A(i,j) > 0

s = s + A(i,j);

N = N + 1;

end

end end

Np = N/(n*m)*100;

end

Uwaga:

Sprawdzić funkcje dla wybranych macierzy. Przykładowo, zdefiniować w Command Window dowolną macierz i wywołać dla niej funkcje:

B = [3 1 2 3; 1 -2 -3 1; -2 1 0 1]

[suma proc] = macierzdodatnie(B)

(3)

3 zad. 2.

a)

function s = normamacierzy1(A)

[n,m] = size(A); % odczytujemy rozmiar macierzy

s = 0;

for i=1:n for j=1:m

s = s + A(i,j)*A(i,j);

end end

s = sqrt(s);

end

b)

function s = normamacierzy2(A) s = sqrt(sum(sum(A.*A)));

end

Uwaga:

Sprawdzić obydwie funkcje dla tej samej macierzy. Przykładowo, zdefiniować w Command Window dowolną macierz i wywołać dla niej obydwie funkcje. Powinno się uzyskać taki sam wynik.

A=[3 1 2 3; 1 -2 -3 1; 2 1 0 1]

normamacierzy1(A) normamacierzy2(A) wynik: 6.6332

(4)

4 a)

function s = sumapodprzekatna(A)

[n,m] = size(A); % odczytujemy rozmiar macierzy s = 0; % suma elementów

if n==m % sprawdzamy, czy macierz jest kwadratowa for i=1:n % i – numer wiersza

for j=1:m % j – numer kolumny

if i>j % warunek na elementy pod

% przekątna s = s + A(i,j);

end

end end

else

disp('Podana macierz nie jest kwadratowa');

end end

b)

Fragment w ramce zastępujemy poniższym (zmieniamy zakresy pętli, aby odczytać tylko te elementy, które znajdują się pod przekątną; instrukcja warunkowa nie jest już potrzebna):

for i=2:n % i – numer wiersza for j=1:i-1 % j – numer kolumny

s = s + A(i,j);

end end

Uwaga:

W przypadku a) funkcja wykonuje n2 iteracji (zakres obydwu pętli, zewnętrznej i wewnętrznej, jest taki sam; pętla zewnętrzna wykonuje n iteracji, a dla każdej iteracji pętli zewnętrznej pętla wewnętrzna również wykonuje n iteracji). W przypadku b) funkcja wykonuje (n2-n)/2 iteracji. Zweryfikować liczbę iteracji dla konkretnych macierzy (np. 3x3, 4x4, 5x5).

W ramach dodatkowego ćwiczenia zmodyfikować powyższą funkcję, aby sumowała:

c) elementy nad przekątną, d) elementy na przekątnej.

(5)

5 zad. 4.

function N = porownaniemacierzy(A,B) [n,m] = size(A);

[n2,m2] = size(B);

if n==n2 && m==m2 N = 0;

for i=1:n for j=1:m

if A(i,j)>B(i,j) N = N+1;

end

end end

else

disp('Macierze maja rozny rozmiar');

end end

Cytaty

Powiązane dokumenty

[r]

[r]

Skonstruuj co najmniej dwa wykresy, jeden dla swojej najlepszej wersji mnożenia macierzy i drugi dla procedury dgemm z biblioteki MKL (jeśli ta ostatnia jest dostępna).. 5.

Wyznaczanie macierzy odwrotnej.

Maksymalna liczba liniowo niezaleŜnych wierszy macierzy jest równa maksymalnej liczbie liniowo niezaleŜnych kolumn tej

Lista nr 2 TRiL, sem.I, studia stacjonarne I stopnia, 2013/14. Dzia lania

W dniach od 16.—18. września zorganizował Zarząd Macierzy Szkolnej wycieczkę dzieci 'szkół powszechnych do Poznania na Powszechną Wystawę Krajową. W wycieczce tej

Można też rozwiązywać jedno jeszcze zadanie jako dodatkowe (wynik będzie wliczony do punk- tów uzyskanych za aktywność).. W rozwiązaniach proszę jawnie wskazywać na