🧩 Exercícios: O Ambiente MATLAB, Tipos de Dados e Operações Básicas
🧩 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)
- Salve o arquivo como:
Atividade_01_1_SeuNome.m - 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)
- Salve o arquivo como:
Atividade_01_2_SeuNome.m - 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)
- Salve o arquivo como:
Atividade_01_3_SeuNome.m - 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)
- Salve o arquivo como:
Atividade_01_4_SeuNome.m - 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);