add octave 03 and 04
This commit is contained in:
parent
8fecab6dcf
commit
389e4c7dbd
8 changed files with 125 additions and 0 deletions
4
1sem/octave/03/coin_flip.m
Normal file
4
1sem/octave/03/coin_flip.m
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Ôóíêöèÿ ìîäåëèðóåò ïîäáðàñûâàíèå ìîíåòêè, ãäå îð¸ë = false
|
||||||
|
function [r] = coin_flip(N)
|
||||||
|
r = rand(1, N) > .5;
|
||||||
|
endfunction
|
||||||
9
1sem/octave/03/flip_stats.m
Normal file
9
1sem/octave/03/flip_stats.m
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# Ôóíêöèÿ ìîäåëèðóåò nexp ýêñïåðèìåíòîâ ïî ïîäáðàñûâàíèþ ìîíåòêè
|
||||||
|
# nflip ðàç
|
||||||
|
function [s] = flip_stats(nflip, nexp)
|
||||||
|
s = zeros(1, nflip+1);
|
||||||
|
for i = 1:nexp;
|
||||||
|
r = sum_heads(coin_flip(nflip));
|
||||||
|
s(r+1) = s(r+1) + 1;
|
||||||
|
endfor
|
||||||
|
endfunction
|
||||||
73
1sem/octave/03/main.m
Normal file
73
1sem/octave/03/main.m
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
# Часть 1
|
||||||
|
# Номер варианта
|
||||||
|
V = 33
|
||||||
|
# Инициализация ГПСЧ номером варианта
|
||||||
|
rand('state', V)
|
||||||
|
|
||||||
|
# Часть 2
|
||||||
|
# Вектор чисел 1..100
|
||||||
|
v1 = 1:100
|
||||||
|
v2 = randi([0, 1], [1, 100])
|
||||||
|
# Суммируем векторы v1 и v2
|
||||||
|
v3 = v1 + v2
|
||||||
|
v3 = v3 .* ~mod(v3, 2)
|
||||||
|
|
||||||
|
# Часть 3
|
||||||
|
# Создаём вектор из 99*V случайных значений на 0..3
|
||||||
|
r = rand([1, 99*V]) .* 3;
|
||||||
|
t = 0:0.01:3;
|
||||||
|
# Функция, находящая кол-во элементов r < t
|
||||||
|
f = @(x) length(r(r < x));
|
||||||
|
figure;
|
||||||
|
plot(t, arrayfun(f, t));
|
||||||
|
print("3.png")
|
||||||
|
|
||||||
|
# Часть 4
|
||||||
|
# Рисуем 4 ломаных линии в одной плоскости
|
||||||
|
figure;
|
||||||
|
plot(rand([V+12, 4]), rand([V+12, 4]));
|
||||||
|
print("4.png")
|
||||||
|
# Часть 5
|
||||||
|
# Рисуем 4 ломаных линии в одном пространстве
|
||||||
|
figure;
|
||||||
|
plot3(rand([V+12, 4]), rand([V+12, 4]), rand([V+12, 4]));
|
||||||
|
print("5.png")
|
||||||
|
# Часть 6
|
||||||
|
# Рисуем спираль с 3 + V витков
|
||||||
|
t = 0:pi/20:2*pi*(3+V);
|
||||||
|
r = t .^ 2;
|
||||||
|
x = r .* cos(t);
|
||||||
|
y = r .* sin(t);
|
||||||
|
figure;
|
||||||
|
plot(x, y);
|
||||||
|
print("6.png")
|
||||||
|
# Часть 7
|
||||||
|
# Построить в пространстве график функции z=cos(0.5Vx)x3+y2 в
|
||||||
|
# виде незакрашенной сетки и в виде закрашенной поверхности в
|
||||||
|
# области от -4 до 4 по каждой координате с шагом 0,1. В
|
||||||
|
# обоих случаях подписать оси координат.
|
||||||
|
X = -4:0.1:4;
|
||||||
|
Y = -4:0.1:4;
|
||||||
|
[x, y] = meshgrid(X, Y);
|
||||||
|
z = (cos(x .* (V*0.5)) .* x.^3) + y.^2;
|
||||||
|
figure;
|
||||||
|
mesh(z)
|
||||||
|
xlabel("x");
|
||||||
|
ylabel("y");
|
||||||
|
zlabel("z");
|
||||||
|
print("7_1.png")
|
||||||
|
figure;
|
||||||
|
surf(z)
|
||||||
|
xlabel("x");
|
||||||
|
ylabel("y");
|
||||||
|
zlabel("z");
|
||||||
|
print("7_2.png")
|
||||||
|
|
||||||
|
# Часть 11
|
||||||
|
nflip = 9*V
|
||||||
|
nexp = 1001+V
|
||||||
|
s = flip_stats(nflip, nexp)
|
||||||
|
result = s / nexp
|
||||||
|
figure;
|
||||||
|
bar(result)
|
||||||
|
print("11.png")
|
||||||
4
1sem/octave/03/sum_heads.m
Normal file
4
1sem/octave/03/sum_heads.m
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Функция считает кол-во выпавших орлов в логическом векторе r
|
||||||
|
function [h] = sum_heads(r)
|
||||||
|
h = sum(r ~= 1);
|
||||||
|
endfunction
|
||||||
3
1sem/octave/03/wdq.m
Normal file
3
1sem/octave/03/wdq.m
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
function [s] = wdq(s)
|
||||||
|
s(:, max(s) < 0.5) = 0;
|
||||||
|
endfunction
|
||||||
4
1sem/octave/04/alph_entropy.m
Normal file
4
1sem/octave/04/alph_entropy.m
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
function [h] = alph_entropy(P);
|
||||||
|
P = P(P ~= 0);
|
||||||
|
h = -sum(P.*log2(P));
|
||||||
|
endfunction;
|
||||||
5
1sem/octave/04/alph_redundancy.m
Normal file
5
1sem/octave/04/alph_redundancy.m
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
function [r] = alph_redundancy(P);
|
||||||
|
ent = alph_entropy(P);
|
||||||
|
mx_ent = log2(length(P))
|
||||||
|
r = 1 - ent/mx_ent;
|
||||||
|
endfunction;
|
||||||
23
1sem/octave/04/main.m
Normal file
23
1sem/octave/04/main.m
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
# stage 1
|
||||||
|
V=33
|
||||||
|
rand("state", V)
|
||||||
|
|
||||||
|
#stage 4
|
||||||
|
c = rand(1, 10);
|
||||||
|
ralph = c./sum(c);
|
||||||
|
save -ascii "ralph.txt" ralph;
|
||||||
|
|
||||||
|
#stage 5
|
||||||
|
load -ascii "coin.txt" coin;
|
||||||
|
load -ascii "crime.txt" crime;
|
||||||
|
load -ascii "unfair.txt" unfair;
|
||||||
|
load -ascii "ventsel.txt" ventsel;
|
||||||
|
|
||||||
|
results = [
|
||||||
|
alph_entropy(coin), alph_redundancy(coin);
|
||||||
|
alph_entropy(crime), alph_redundancy(crime);
|
||||||
|
alph_entropy(unfair), alph_redundancy(unfair);
|
||||||
|
alph_entropy(ventsel), alph_redundancy(ventsel);
|
||||||
|
alph_entropy(ralph), alph_redundancy(ralph);
|
||||||
|
]
|
||||||
|
save -ascii "results.txt" results;
|
||||||
Loading…
Add table
Add a link
Reference in a new issue