[MPEI] Aula03
Signed-off-by: Tiago Garcia <tiago.rgarcia@ua.pt>
This commit is contained in:
parent
20ee11c3a9
commit
bef7898a0d
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
% Definindo os valores da variável aleatória
|
||||
x = 1:6; % Faces do dado
|
||||
p = ones(1, 6) / 6; % Probabilidade de cada face (distribuição uniforme)
|
||||
|
||||
figure;
|
||||
|
||||
% (a) Gráfico da função massa de probabilidade
|
||||
subplot(2, 1, 1); % Duas linhas, uma coluna, primeiro gráfico
|
||||
bar(x, p, 'FaceColor', [0 0.5 0.8]);
|
||||
xlabel('Valores de X (Faces do dado)');
|
||||
ylabel('P(X)');
|
||||
xticks(x); % Colocar ticks em cada face do dado
|
||||
grid on;
|
||||
|
||||
% (b) Gráfico da função de distribuição acumulada
|
||||
subplot(2, 1, 2); % Duas linhas, uma coluna, segundo gráfico
|
||||
F = cumsum(p); % Função de distribuição acumulada
|
||||
stairs(x, F, 'LineWidth', 2, 'Color', [0.8 0 0]);
|
||||
xlabel('Valores de X (Faces do dado)');
|
||||
ylabel('F(X)');
|
||||
xticks(x); % Colocar ticks em cada face do dado
|
||||
grid on;
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
xi = 0 : 4;
|
||||
p = [0.9 0.09 0.01];
|
||||
b = [0 cumsum(p) 1];
|
||||
|
||||
stairs(xi, b);
|
||||
xlabel('Valor da Nota (Euros)');
|
||||
ylabel('F_X(x)');
|
|
@ -0,0 +1,107 @@
|
|||
% Number of simulations
|
||||
num_simulations = 10000;
|
||||
|
||||
%% a)
|
||||
fprintf("e)\n");
|
||||
% Simulate coin tosses
|
||||
results = randi([0, 1], num_simulations, 4); % 0 = tails (C), 1 = heads (K)
|
||||
|
||||
% Count the number of heads (K) in each simulation
|
||||
num_heads = sum(results, 2);
|
||||
|
||||
% Estimate the probability mass function
|
||||
pX = zeros(1, 5); % For 0 to 4 heads
|
||||
for x = 0:4
|
||||
pX(x + 1) = sum(num_heads == x) / num_simulations;
|
||||
end
|
||||
|
||||
% Values of x (number of heads)
|
||||
values_x = 0:4;
|
||||
|
||||
% Plotting the probability mass function
|
||||
bar(values_x, pX);
|
||||
xlabel('Number of Heads (K)');
|
||||
ylabel('Probability P(X=x)');
|
||||
title('Probability Mass Function P(X)');
|
||||
xticks(values_x);
|
||||
|
||||
% Display the results
|
||||
disp('P(X=x) values:');
|
||||
for x = 0:4
|
||||
fprintf('P(X=%d) = %.4f\n', x, pX(x + 1));
|
||||
end
|
||||
|
||||
%% b)
|
||||
fprintf("\n====================\n\nb)\n");
|
||||
% Calculando o valor esperado E(X)
|
||||
E_X = sum(values_x .* pX);
|
||||
|
||||
% Calculando E(X^2)
|
||||
E_X2 = sum((values_x.^2) .* pX);
|
||||
|
||||
% Calculando a variância Var(X)
|
||||
Var_X = E_X2 - E_X^2;
|
||||
|
||||
% Calculando o desvio padrão
|
||||
std_X = sqrt(Var_X);
|
||||
|
||||
% Exibindo os resultados
|
||||
fprintf('Valor Esperado E(X) = %.4f\n', E_X);
|
||||
fprintf('Variância Var(X) = %.4f\n', Var_X);
|
||||
fprintf('Desvio Padrão σ(X) = %.4f\n', std_X);
|
||||
|
||||
%% d)
|
||||
fprintf("\n====================\n\nd)\n");
|
||||
% Número total de lançamentos
|
||||
n = 4;
|
||||
p = 0.5;
|
||||
|
||||
% Calculando os valores teóricos da função massa de probabilidade
|
||||
pX_teorico = zeros(1, 5);
|
||||
for k = 0:n
|
||||
pX_teorico(k + 1) = nchoosek(n, k) * (p^k) * ((1-p)^(n-k));
|
||||
end
|
||||
|
||||
% Comparando os valores teóricos com os estimados
|
||||
fprintf('Comparação entre valores teóricos e estimados:\n');
|
||||
fprintf('%-10s %-10s %-10s\n', 'Coroas (K)', 'Teórico', 'Estimado');
|
||||
for x = 0:4
|
||||
fprintf('%-10d %-10.4f %-10.4f\n', x, pX_teorico(x + 1), pX(x + 1));
|
||||
end
|
||||
|
||||
%% e)
|
||||
fprintf("\n====================\n\ne)\n");
|
||||
% Parâmetros da distribuição
|
||||
n = 4; % número de lançamentos
|
||||
p = 0.5; % probabilidade de obter uma coroa
|
||||
|
||||
% Cálculo teórico do valor esperado
|
||||
E_X_teorico = n * p;
|
||||
|
||||
% Cálculo teórico da variância
|
||||
Var_X_teorico = n * p * (1 - p);
|
||||
|
||||
% Exibindo os resultados
|
||||
fprintf('Comparação entre valores teóricos e estimados:\n');
|
||||
fprintf('%-20s %-10s %-10s\n', 'Descrição', 'Teórico', 'Estimado');
|
||||
fprintf('%-20s %-10.4f %-10.4f\n', 'E[X]', E_X_teorico, E_X);
|
||||
fprintf('%-20s %-10.4f %-10.4f\n', 'Var(X)', Var_X_teorico, Var_X);
|
||||
|
||||
%% f)
|
||||
fprintf("\n====================\n\nf)\n");
|
||||
% Valores teóricos da função massa de probabilidade
|
||||
pX_teorico = zeros(1, 5);
|
||||
for k = 0:n
|
||||
pX_teorico(k + 1) = nchoosek(n, k) * (p^k) * ((1-p)^(n-k));
|
||||
end
|
||||
|
||||
% Cálculo das probabilidades
|
||||
P_ge_2 = 1 - (pX_teorico(1) + pX_teorico(2)); % P(X >= 2)
|
||||
P_le_1 = pX_teorico(1) + pX_teorico(2); % P(X <= 1)
|
||||
P_between_1_and_3 = pX_teorico(2) + pX_teorico(3) + pX_teorico(4); % P(1 <= X <= 3)
|
||||
|
||||
% Exibindo os resultados
|
||||
fprintf('Probabilidades:\n');
|
||||
fprintf('P(X >= 2) = %.4f\n', P_ge_2);
|
||||
fprintf('P(X <= 1) = %.4f\n', P_le_1);
|
||||
fprintf('P(1 <= X <= 3) = %.4f\n', P_between_1_and_3);
|
|
@ -0,0 +1,48 @@
|
|||
% Parâmetros do problema
|
||||
n = 5; % número de peças
|
||||
p = 0.3; % probabilidade de uma peça ser defeituosa
|
||||
num_simulacoes = 10000; % número total de simulações
|
||||
|
||||
% Simulação
|
||||
defeituosas = binornd(n, p, num_simulacoes, 1);
|
||||
|
||||
% Cálculo da PMF
|
||||
pmf = histcounts(defeituosas, 0:n+1, 'Normalization', 'probability');
|
||||
|
||||
% Cálculo da CDF
|
||||
cdf = cumsum(pmf);
|
||||
|
||||
% Cálculo da probabilidade de no máximo 2 defeituosas
|
||||
prob_max_2 = sum(pmf(1:3)); % PMF para 0, 1 e 2 peças defeituosas
|
||||
|
||||
% Exibição dos resultados
|
||||
disp('PMF:');
|
||||
disp(pmf);
|
||||
disp('CDF:');
|
||||
disp(cdf);
|
||||
disp(['Probabilidade de no máximo 2 peças defeituosas: ', num2str(prob_max_2)]);
|
||||
|
||||
% Gráfico na mesma figura, gráficos diferentes
|
||||
figure;
|
||||
|
||||
% Subplot para a PMF
|
||||
subplot(2, 1, 1); % 2 linhas, 1 coluna, 1º gráfico
|
||||
bar(0:n, pmf, 'FaceColor', 'b', 'EdgeColor', 'k');
|
||||
title('Função Massa de Probabilidade (PMF)');
|
||||
xlabel('Número de Peças Defeituosas');
|
||||
ylabel('Probabilidade');
|
||||
xlim([-0.5 n + 0.5]);
|
||||
grid on;
|
||||
|
||||
% Subplot para a CDF
|
||||
subplot(2, 1, 2); % 2 linhas, 1 coluna, 2º gráfico
|
||||
cdf_plot = [0; cdf(:)]; % Adiciona um zero no início
|
||||
x_values = 0:n; % Valores do eixo x
|
||||
x_values = [0; x_values(:)]; % Adiciona um zero no início
|
||||
|
||||
plot(x_values, cdf_plot, '-o', 'Color', 'r');
|
||||
title('Função Distribuição Acumulada (CDF)');
|
||||
xlabel('Número de Peças Defeituosas');
|
||||
ylabel('Probabilidade Acumulada');
|
||||
xlim([-0.5 n + 0.5]);
|
||||
grid on;
|
|
@ -0,0 +1,22 @@
|
|||
% Valores de p variando de 0.001 a 0.5
|
||||
p = logspace(-3, log10(0.5), 100);
|
||||
|
||||
% Probabilidades de despenho
|
||||
P_2_motores = p.^2;
|
||||
P_4_motores = 4 * p.^3 .* (1 - p) + p.^4;
|
||||
|
||||
% Plotando os resultados
|
||||
figure;
|
||||
plot(p, P_2_motores, 'b-', 'LineWidth', 2);
|
||||
hold on;
|
||||
plot(p, P_4_motores, 'r-', 'LineWidth', 2);
|
||||
hold off;
|
||||
|
||||
% Configurações do gráfico
|
||||
xlabel('Probabilidade de falha (p)');
|
||||
ylabel('Probabilidade de despenho');
|
||||
title('Probabilidade de Despenho vs. Probabilidade de Falha');
|
||||
legend('2 Motores', '4 Motores');
|
||||
grid on;
|
||||
set(gca, 'XScale', 'log');
|
||||
ylim([0 1]);
|
|
@ -0,0 +1,21 @@
|
|||
% Parâmetros
|
||||
n = 8000;
|
||||
p = 1/1000;
|
||||
k = 7;
|
||||
|
||||
% (a) Cálculo usando a distribuição binomial
|
||||
% Cálculo da combinação diretamente
|
||||
comb = 1;
|
||||
for i = 1:k
|
||||
comb = comb * (n - (i - 1)) / i; % Cálculo da combinação n!/(k!(n-k)!)
|
||||
end
|
||||
|
||||
P_binomial = comb * (p^k) * ((1 - p)^(n - k));
|
||||
|
||||
% (b) Cálculo usando a aproximação de Poisson
|
||||
lambda = 8; % média de defeituosos em 8000 chips
|
||||
P_poisson = (lambda^k * exp(-lambda)) / factorial(k);
|
||||
|
||||
% Resultados
|
||||
fprintf('Probabilidade (Binomial) de 7 defeituosos: %.6f\n', P_binomial);
|
||||
fprintf('Probabilidade (Poisson) de 7 defeituosos: %.6f\n', P_poisson);
|
|
@ -0,0 +1,14 @@
|
|||
% Parâmetros
|
||||
lambda = 60; % média em 4 segundos
|
||||
|
||||
% (a) Probabilidade de não receber nenhuma mensagem
|
||||
P_0 = exp(-lambda); % P(X = 0)
|
||||
|
||||
% (b) Probabilidade de receber mais de 40 mensagens
|
||||
% Usando a soma das probabilidades de 0 a 40
|
||||
P_leq_40 = sum(exp(-lambda) * (lambda.^(0:40)) ./ factorial(0:40)); % P(X <= 40)
|
||||
P_gt_40 = 1 - P_leq_40; % P(X > 40)
|
||||
|
||||
% Resultados
|
||||
fprintf('Probabilidade de não receber nenhuma mensagem: %.10f\n', P_0);
|
||||
fprintf('Probabilidade de receber mais de 40 mensagens: %.10f\n', P_gt_40);
|
|
@ -0,0 +1,12 @@
|
|||
% Parâmetros
|
||||
lambda = 2; % média de erros em 100 páginas
|
||||
|
||||
% Cálculo das probabilidades
|
||||
P_0 = exp(-lambda); % P(X = 0)
|
||||
P_1 = (lambda^1 * exp(-lambda)) / factorial(1); % P(X = 1)
|
||||
|
||||
% Probabilidade de no máximo 1 erro
|
||||
P_leq_1 = P_0 + P_1;
|
||||
|
||||
% Resultados
|
||||
fprintf('Probabilidade de no máximo 1 erro em 100 páginas: %.6f\n', P_leq_1);
|
|
@ -0,0 +1,31 @@
|
|||
% Parâmetros
|
||||
mu = 14; % média
|
||||
sigma = 2; % desvio padrão
|
||||
n_samples = 100000; % número de amostras
|
||||
|
||||
% Gerar amostras da distribuição normal
|
||||
X = mu + sigma * randn(n_samples, 1); % amostras
|
||||
|
||||
% (a) Probabilidade de um aluno ter classificação entre 12 e 16
|
||||
P_a = mean(X >= 12 & X <= 16);
|
||||
|
||||
% (b) Probabilidade de os alunos terem classificações entre 10 e 18
|
||||
P_b = mean(X >= 10 & X <= 18);
|
||||
|
||||
% (c) Probabilidade de um aluno passar (classificação maior ou igual a 10)
|
||||
P_c = mean(X >= 10);
|
||||
|
||||
% Exibir resultados
|
||||
fprintf('Estimativa da probabilidade (a) entre 12 e 16: %.4f\n', P_a);
|
||||
fprintf('Estimativa da probabilidade (b) entre 10 e 18: %.4f\n', P_b);
|
||||
fprintf('Estimativa da probabilidade (c) para passar (>= 10): %.4f\n', P_c);
|
||||
|
||||
% Verificação usando normcdf()
|
||||
P_a_exact = normcdf(16, mu, sigma) - normcdf(12, mu, sigma);
|
||||
P_b_exact = normcdf(18, mu, sigma) - normcdf(10, mu, sigma);
|
||||
P_c_exact = 1 - normcdf(10, mu, sigma); % P(X >= 10)
|
||||
|
||||
% Exibir resultados da verificação
|
||||
fprintf('Probabilidade exata (a) entre 12 e 16: %.4f\n', P_a_exact);
|
||||
fprintf('Probabilidade exata (b) entre 10 e 18: %.4f\n', P_b_exact);
|
||||
fprintf('Probabilidade exata (c) para passar (>= 10): %.4f\n', P_c_exact);
|
Loading…
Reference in New Issue