🧩 Exercícios Práticos: Cap 01 — O Ambiente MATLAB, Tipos de Dados e Operações Básicas

Especialização em Computação Científica com MATLAB • Caderno de Exercícios nos 4 Níveis


🎯 Nível 1: Fundamentos

Problema 01.1 — Fixação Conceitual e Sintaxe Elementar

Crie um script MATLAB que calcule o volume e a área superficial de uma esfera de raio R = 2.5.

Resultado Esperado

Volume e área superficial calculados com precisão double exibidos no Command Window.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_1_SeuNome.m
  2. Envie na tarefa: Atividade Cap 01 - O Ambiente MATLAB, Tipos de Dados e Operações Básicas
🔑 Gabarito de Código & Solução Comentada
% solucao_n1_esfera.m
R = 2.5;
volume = (4/3) * pi * R^3;
area_superficial = 4 * pi * R^2;

fprintf('Raio: %.2f\n', R);
fprintf('Volume: %.4f\n', volume);
fprintf('Área: %.4f\n', area_superficial);

🔍 Nível 2: Prática

Problema 01.2 — Aplicação com Regras de Cálculo e Análise

Crie um script que receba temperaturas em graus Fahrenheit de um vetor de medições e converta para Celsius e Kelvin com verificação de tipo.

Resultado Esperado

Tabela de temperaturas convertidas exibidas com formatação técnica.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_2_SeuNome.m
  2. Envie na tarefa: Atividade Cap 01 - O Ambiente MATLAB, Tipos de Dados e Operações Básicas
🔑 Gabarito de Código & Solução Comentada
% solucao_n2_temperaturas.m
temp_f = [32.0, 68.0, 100.0, 212.0];
temp_c = (temp_f - 32) * (5/9);
temp_k = temp_c + 273.15;

disp('   Fahrenheit      Celsius       Kelvin');
disp([temp_f', temp_c', temp_k']);

🚀 Nível 3: Integração

Problema 01.3 — Pipeline Computacional e Resiliência

Construa uma função que receba os coeficientes de uma equação quadrática ax² + bx + c = 0 e retorne as raízes reais ou complexas com tratamento de discriminante nulo e negativo.

Resultado Esperado

Raízes calculadas com validação para raízes reais distintas, raiz dupla e complexas conjugadas.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_3_SeuNome.m
  2. Envie na tarefa: Atividade Cap 01 - O Ambiente MATLAB, Tipos de Dados e Operações Básicas
🔑 Gabarito de Código & Solução Comentada
% solucao_n3_bhaskara.m
function [r1, r2, tipo] = resolver_quadratica(a, b, c)
    if a == 0
        error('Coeficiente "a" não pode ser zero em equação de 2º grau.');
    end
    delta = b^2 - 4*a*c;
    r1 = (-b + sqrt(delta)) / (2*a);
    r2 = (-b - sqrt(delta)) / (2*a);
    
    if delta > 0
        tipo = 'Reais distintas';
    elseif delta == 0
        tipo = 'Raiz real dupla';
    else
        tipo = 'Complexas conjugadas';
    end
end

🏆 Nível 4: Desafio Corporativo

Problema 01.4 — Sistema de Engenharia de Alto Desempenho e Auditoria

Desenvolva um benchmark que meça o impacto da precisão de máquina (eps) na propagação de erros de arredondamento em somatórios sucessivos de séries harmônicas com single vs double.

Resultado Esperado

Relatório comparativo de erro relativo acumulado entre precisão simples e dupla com auditoria.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_01_4_SeuNome.m
  2. Envie na tarefa: Atividade Cap 01 - O Ambiente MATLAB, Tipos de Dados e Operações Básicas
🔑 Gabarito de Código & Solução Comentada
% solucao_n4_auditoria_precisao.m
N = 1e6;
% Precisão simples
soma_single = single(0);
for i = 1:N
    soma_single = soma_single + single(1/i);
end

% Precisão dupla (referência)
soma_double = double(0);
for i = 1:N
    soma_double = soma_double + double(1/i);
end

erro_absoluto = abs(double(soma_single) - soma_double);
erro_relativo = erro_absoluto / soma_double;

fprintf('Soma Single: %.7f\n', soma_single);
fprintf('Soma Double: %.12f\n', soma_double);
fprintf('Erro Relativo: %.4e\n', erro_relativo);