MATLAB (abreviação de Matrix Laboratory) é uma plataforma de computação numérica que combina programação, visualização de dados e análise matemática. Ele é amplamente utilizado em engenharia, matemática, física, economia e muitas outras áreas devido à sua capacidade de lidar com cálculos complexos, análise de dados e gráficos interativos. O MATLAB é conhecido por sua linguagem de programação que facilita a manipulação de matrizes, resolução de equações, modelagem e simulações numéricas.
Essa sessão mostra exemplos de exercícios utilizando o MATLAB, abordando tópicos como cálculos numéricos e outras aplicações matemáticas e científicas.
Matlab - Método da Bissecção
(EXERCÍCIO 01) Encontrar a raiz aproximada da equação x^3 - 2*x + 1 = 0, no Intervalo [-2;-1], usando as cinco primeiras iterações. Usar o método da bissecção.
Método da Bisseção
Algoritmo
function [x] = bisection(f, a, b, tol)
% Método da Bisseção para encontrar uma raiz da função f no intervalo [a, b]
%
% INPUTS:
% f - Função anônima ou handle @(x)
% a - Limite inferior do intervalo
% b - Limite superior do intervalo
% tol - Tolerância para critério de parada (opcional, padrão: 1e-6)
%
% OUTPUT:
% x - Aproximação da raiz
%
% EXEMPLO:
% >> x = bisection(@(x) x^2 - 2*x + 1, 0, 2, 1e-6)
if nargin < 4
tol = 1e-6; % Valor padrão da tolerância
end
% Verifica se há mudança de sinal
if f(a) * f(b) > 0
error('O intervalo [a, b] não contém uma raiz. Escolha outro intervalo.');
end
i = 1; % Contador de iterações
x_array = []; % Armazena as aproximações da raiz
while (b - a) / 2 > tol % Critério de parada melhorado
x = (a + b) / 2; % Ponto médio
x_array = [x_array x]; % Armazena o valor atual da raiz
fprintf('Iteração %d: x = %.6f, f(x) = %.6f\n', i, x, f(x));
if f(x) == 0 % Se encontrar a raiz exata
break;
elseif f(a) * f(x) < 0
b = x; % Atualiza limite superior
else
a = x; % Atualiza limite inferior
end
i = i + 1; % Incrementa contador
end
x = x_array(end); % Última estimativa da raiz
% Exibir as primeiras 5 iterações (se houver)
num_iters = min(5, length(x_array));
fprintf('Primeiras %d iterações:\n', num_iters);
disp(x_array(1:num_iters));
end
Execução do algoritmo
Executar usando o comando: x = bisection(@(x) x^3 - 2*x + 1, -2, -1)
Resolução:
As cinco primeiras iterações são:
| Iteração |
Valor |
| 1 |
-1.5000 |
| 2 |
-1.7500 |
| 3 |
-1.6250 |
| 4 |
-1.5625 |
| 5 |
-1.5938 |
| x |
-1.6180 |
Matlab - Método da Bissecção II
(EXERCÍCIO 02) Encontrar a raiz aproximada da equação cos(x) + x = 0, no intervalo [-1;-0.5], com 20 iterações, usando o método da bissecão.
Método da Bisseção
Algoritmo
% Pedir ao usuário que digite a equação
equation = input('Digite a equação na forma @(x) f(x): ');
% Pedir ao usuário que digite o intervalo inicial
a = input('Digite o valor inicial do intervalo: ');
b = input('Digite o valor final do intervalo: ');
% Pedir ao usuário que digite o número máximo de iterações
max_iter = input('Digite o número máximo de iterações: ');
% Executar o método da bissecção
for i = 1:max_iter
c = (a + b)/2;
if equation(c) == 0
break
elseif equation(c)*equation(a) < 0
b = c;
else
a = c;
end
end
% Traçar o gráfico da equação e destacar o intervalo e a aproximação encontrada
fplot(equation, [a, b]);
hold on;
plot([a, b], [0, 0], 'r--');
plot(c, 0, 'go', 'MarkerSize', 10);
hold off;
grid on;
% Imprimir o valor de c e o número de iterações necessárias
fprintf('O valor aproximado da raiz é %.6f.\nForam necessárias %d iterações.\n', c, i);
Execução do algoritmo
Executar usando o comando: @(x)cos(x)+x
Resolução:
Matlab - Equações quadráticas
(EXERCÍCIO 03) Agoritmo em matlab, que resolve uma equação quadrática e traça o gráfico, destacando as raízes.
Método da Bisseção
Algoritmo
function quadratic(a,b,c)
% Esta função resolve uma equação quadrática da forma ax^2 + bx + c = 0
% e traça o gráfico da função com as raízes destacadas.
% a, b e c são os coeficientes da equação quadrática.
% Calcula as raízes da equação quadrática
x1 = (-b + sqrt(b^2 - 4*a*c)) / (2*a);
x2 = (-b - sqrt(b^2 - 4*a*c)) / (2*a);
% Define o intervalo para traçar o gráfico
x = linspace(min(x1,x2)-1,max(x1,x2)+1);
y = a*x.^2 + b*x + c;
% Traça o gráfico da função
plot(x,y)
hold on
% Destaca as raízes no gráfico
plot(x1,0,'ro')
plot(x2,0,'ro')
% Adiciona título e rótulos aos eixos
title('Gráfico da Função Quadrática')
xlabel('x')
ylabel('y')
end
Execução do algoritmo
Executar usando o comando: quadratic(1,-5,6);
Resolução:
Matlab - Método de Newton-Raphson
(EXERCÍCIO 04) Ao digitar uma equação na forma , @(x) x^3 - 3*x +1, no MATLAB,usando o Método de Newton-Raphson com o valor inicial x = 0, e poderemos visualizar esse resultado graficamente.
Método da Bisseção
Algoritmo
% Pedir ao usuário que digite a equação
equation = input('Digite a equação na forma @(x) f(x): ');
% Pedir ao usuário que digite o valor inicial
x0 = input('Digite o valor inicial: ');
% Definir o número máximo de iterações
max_iter = 20;
% Definir a tolerância desejada
tolerance = 1e-6;
% Executar o método de Newton-Raphson
for i = 1:max_iter
f = equation(x0);
df = (equation(x0 + tolerance) - equation(x0 - tolerance)) / (2 * tolerance);
x1 = x0 - f/df;
if abs(x1 - x0) < tolerance
break
end
x0 = x1;
end
% Imprimir os resultados
fprintf('A aproximação encontrada é %.6f.\nForam necessárias %d iterações.\n', x1, i);
% Traçar o gráfico da equação
figure;
fplot(equation, [-10 10]);
hold on;
plot([x1 x1], ylim, 'r--');
xlabel('x');
ylabel('f(x)');
title('Gráfico da Equação');
% Adicionar legenda
legend('Equação', 'Aproximação Encontrada');
Execução do algoritmo
Obs: a equação digitada tem que ser na forma:
@(x) x^3 - 3*x +1
Resolução: