informatyka_cwiczenie_4

advertisement
Obliczanie ekstremum (maksimum, minimum)
Przykład 1: Oblicz maksimum ciągu liczb podanych w macierzy x.
x=[1 5 4 3 7 2]
Metoda rozwiązania:
1.
Podstawiamy pierwszy element macierzy pod zmienną max.
2. W pętli (po indeksie i) od drugiego elementu do ostatniego porównujemy kolejny
element macierzy xi ze zmienną max.
3. Jeśli kolejny element xi jest większy od max, to za zmienną max podstawiamy kolejny
element xi .
4. Wyświetlamy wartość zmiennej max
Schemat blokowy algorytmu:
Kod programu max1.m
%obliczanie maximum z ciągu liczb
X=[1 5 4 3 7 2]
n=length(X);
max=X(1);
for i=2:n
if X(i) >max
max=X(i);
end
end
max
START
X=[1 5 4 3 7 2]
n=length(X)
max = X(1)
i=1:n
X(i) > max
tak
max = X(i)
nie
Wyświetl
max
END
Zadanie 1: Oblicz minimum ciągu liczb z przykładu 1.
Zmodyfikuj przykład 1 tak, aby liczył minimum.
Zadanie 2: Oblicz maksimum z elementów macierzy A i wyświetl, który to jest element
macierzy (nr wiersza i nr kolumny).
11
𝐴 = [32
18
4
41
77
16
7]
45
Sortowanie bąbelkowe
Przykład 2.: Posortuj rosnąco ciąg liczb podanych w macierzy X
X = [77 41 3 12]
Metoda sortowania bąbelkowego:
1. Pętla po ilościach elementów w etapie sortowania:
2. Pętla po krokach:
i=n:-1:2
j=1:i-1
3. Jeżeli X(j) > X(j+1), to zamień X(j) z X(j+1)
4. Wyświetl wartości posortowane.
Schemat algorytmu sortowania bąbelkowego
% sortowanie bąbelkowe
X=[77 41 3 12]
n=length(X);
for i=n:-1:2
for j=1:i-1
if X(j)>X(j+1)
pom=X(j+1);
X(j+1)=X(j);
X(j)=pom;
end
end
end
disp('tablica X posortowana
X
START
X=[77 41 3 12]
n=length(X)
i=n:-1:2
j=1:i-1
X(j)>X(j+1)
nie
Kod programu bubblesort.m
tak
pom=X(j+1)
X(j+1)=X(j)
X(j)=pom
Wyświetl
X
END
Zadanie 3: Posortuj rosnąco ciąg liczb:
23 65 87 67 12 7 -34 17
Zadanie 4: Posortuj malejąco ciąg liczb:
23 65 87 67 12 7 -34 17
(zmień program)
')
Przykład 3. Oblicz przybliżoną wartość całki oznaczonej
3
𝐶 = ∫(𝑥 2 + 2) 𝑑𝑥
0
metodą trapezów wg wzorów:
𝑏
𝑛
𝐶 = ∫ 𝑓(𝑥)𝑑𝑥 ≈ [∑ 𝑓(𝑥𝑖 ) −
𝑖=1
𝑎
𝑓(𝑎) + 𝑓(𝑏)
] ∆𝑥
2
gdzie: n=zadana ilość puntów xi;
f(x)=x2+2
𝑏−𝑎
∆𝑥 = 𝑛−1
𝑥 = [𝑎: ∆𝑥: 𝑏]
y=f(x)
Przygotuj dane testowe do programu dla n=2 (oblicz ręcznie)
Kod programu calka1.m
% obliczenie całki
f=@(x)(x.^2+2)
n=2
a=1;
b=3;
dx=(b-a)/(n-1);
x=[a:dx:b];
y=f(x);
S=(sum(y)-(f(a)+f(b))/2)*dx
Oblicz całkę z dokładnością do 3 cyfr po przecinku zmieniając n.
Zadanie 5: Oblicz metodą trapezów przybliżoną wartość całki oznaczonej:
3
𝐶 = ∫ (𝑒
−3
z dokładnością do 3 cyfr po przecinku:
−𝑥 2
2 ) 𝑑𝑥
Zadanie 6: Oblicz długość odcinka między punktami P1(x1,y1) i P2(x2,y2) na płaszczyźnie
wg wzoru:
𝐿 = √(𝑥2 − 𝑥1)2 + (𝑦2 − 𝑦1)2
Zadanie 7.
Oblicz przybliżoną długość d krzywej y(x) w przedziale <-4,4> z dokładnością do 0,001 wg
wzorów:
3
𝑦(𝑥) = √𝑥 6 + 3
𝐿𝑖 = √(𝑥𝑖+1 − 𝑥𝑖 )2 + (𝑦𝑖+1 − 𝑦𝑖 )2
𝑛−1
𝑑 = ∑ 𝐿𝑖
𝑖=1
Wykorzystaj funkcję x=linspace(a,b,n), która oblicza n wartości x w równoodległych
punktach, dzieląc przedział [a,b] na n-1 części.
Download