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