add octave 03 and 04

This commit is contained in:
Andrew 2019-11-22 22:51:59 +07:00
parent 8fecab6dcf
commit 389e4c7dbd
8 changed files with 125 additions and 0 deletions

View file

@ -0,0 +1,4 @@
# Ôóíêöèÿ ìîäåëèðóåò ïîäáðàñûâàíèå ìîíåòêè, ãäå îð¸ë = false
function [r] = coin_flip(N)
r = rand(1, N) > .5;
endfunction

View 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
View 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")

View file

@ -0,0 +1,4 @@
# Функция считает кол-во выпавших орлов в логическом векторе r
function [h] = sum_heads(r)
h = sum(r ~= 1);
endfunction

3
1sem/octave/03/wdq.m Normal file
View file

@ -0,0 +1,3 @@
function [s] = wdq(s)
s(:, max(s) < 0.5) = 0;
endfunction