Lab 3 – pętla for. Rozwiązywanie układów równań L-10, PK
1 Przykład 1
Napisać program, który obliczy sumę kwadratów stu pierwszych liczb naturalnych.
12+ 22 + 32+. . . +1002 = ∑ 𝑖2
100
𝑖=1
s = 0;
for i = 1:100
s = s + i*i;
end
disp(s);
Przykład 2
Napisać funkcję, która obliczy 𝑛! dla dowolnego 𝑛 ∈ ℕ.
𝑛! = 1 ∙ 2 ∙ 3 ∙. . .∙ 𝑛 = ∏ 𝑖
𝑛
𝑖=1
function s = silnia(n)
s = 1;
for i = 1:n
s = s*i;
end
end
Lab 3 – pętla for. Rozwiązywanie układów równań L-10, PK
2 Uogólnienie
Jak obliczyć sumę skończoną
𝑆 = ∑𝒇(𝑖)
𝒃
𝑖=𝒂
dla dowolnego wyrażenia 𝑓(𝑖) oraz dowolnych 𝑎 i 𝑏 ?
Możemy skorzystać z poniższego skryptu:
s = 0;
for i = a:b
s = s + f(i);
end
Analogicznie możemy obliczyć iloczyn skończony:
𝑆 = ∏𝒇(𝑖)
𝒃
𝑖=𝒂
dla dowolnego wyrażenia 𝑓(𝑖) oraz dowolnych 𝑎 i 𝑏 : s = 1;
for i = a:b
s = s * f(i);
end
Lab 3 – pętla for. Rozwiązywanie układów równań L-10, PK
3 Przykład 3
Napisać funkcję, która obliczy iloczyn skalarny dwóch wektorów (z definicji – z wykorzystaniem pętli for). W przypadku, gdy wektory mają różną liczbę elementów funkcja ma tylko zwrócić komunikat o błędzie.
𝐚 ∙ 𝐛 = 𝑎1𝑏1+ 𝑎2𝑏2+ 𝑎3𝑏3+. . . +𝑎𝑛𝑏𝑛 = ∑ 𝑎𝑖𝑏𝑖
𝑛
𝑖=1
function s = iloczynskalarny(a,b)
n = length(a); % liczba elementów wektora a m = length(b); % liczba elementów wektora b if n == m % sprawdzamy, czy możemy obliczyć
% iloczyn skalarny s = 0;
for i=1:n
s = s + a(i)*b(i);
end else
disp('Wektory maja rozna liczbe elementow');
end end
W Command Window możemy sprawdzić poprawność funkcji:
a = [1 1 1 -1];
b = [1 2 3 4];
c = [1 2];
iloczynskalarny(a,b) % wynik: 2
iloczynskalarny(a,c) % wynik: Wektory maja rozna ...