Guia Prático de Métodos Numéricos no MATLAB
Classificado em Matemática
Escrito em em
português com um tamanho de 3,36 KB
Métodos Numéricos no MATLAB
Operações Básicas com Matrizes
Crie uma matriz 3x3:
>> A = [1 5 6; 7 4 2; -3 6 7]A transposta de [A]:
>> A'Criaremos uma outra matriz 3x3 com base em linhas individuais. Primeiro são criados 3 vetores linha:
>> x = [8 6 9];
>> y = [-5 8 1];
>> z = [4 8 2];Depois, podemos combiná-los para formar a matriz:
>> B = [x; y; z]Podemos somar ou subtrair A e B:
>> C = A + BDuas formas de multiplicação (com dimensões internas compatíveis):
>> A * B
>> A .* BInversão e Identidade
A inversa da matriz pode ser calculada com a função inv:
>> AI = inv(A)Para verificar se o resultado está correto, a inversa multiplicada pela matriz original fornece a matriz identidade:
>> A * AIA função eye pode ser usada para gerar uma matriz identidade:
>> I = eye(3)Permutação e Manipulação
Podemos definir uma matriz de permutação para trocar linhas e colunas:
>> P = [0 0 1; 0 1 0; 1 0 0]
>> PA = P * A % Troca de linhas
>> AP = A * P % Troca de colunasMatrizes podem ser aumentadas:
>> Aum = [A I]As dimensões de uma matriz podem ser determinadas utilizando a função size:
>> [n, m] = size(Aum)Sistemas de Equações Lineares
O MATLAB fornece dois meios diretos para resolver sistemas lineares:
- Operador barra invertida (divisão à esquerda):
x = A \ b - Inversão da matriz:
x = inv(A) * b
Determinantes e Regra de Cramer
O determinante pode ser calculado com a função det:
>> D = det(A)Implementação de Algoritmos
Eliminação de Gauss Ingênua
function x = GaussIngenua(A, b)
[m, n] = size(A);
if m ~= n, error('A matriz A deve ser quadrada'); end
nb = n + 1; Aum = [A b];
for k = 1:n-1
for i = k+1:n
fator = Aum(i, k) / Aum(k, k);
Aum(i, k:nb) = Aum(i, k:nb) - fator * Aum(k, k:nb);
end
end
x = zeros(n, 1);
x(n) = Aum(n, nb) / Aum(n, n);
for i = n-1:-1:1
x(i) = (Aum(i, nb) - Aum(i, i+1:n) * x(i+1:n)) / Aum(i, i);
end
endEliminação de Gauss com Pivotamento
function x = GaussPivot(A, b)
[m, n] = size(A);
if m ~= n, error('A matriz A deve ser quadrada'); end
nb = n + 1; Aum = [A b];
for k = 1:n-1
[maior, i] = max(abs(Aum(k:n, k)));
ipr = i + k - 1;
if ipr ~= k, Aum([k, ipr], :) = Aum([ipr, k], :); end
for i = k+1:n
fator = Aum(i, k) / Aum(k, k);
Aum(i, k:nb) = Aum(i, k:nb) - fator * Aum(k, k:nb);
end
end
x = zeros(n, 1);
x(n) = Aum(n, nb) / Aum(n, n);
for i = n-1:-1:1
x(i) = (Aum(i, nb) - Aum(i, i+1:n) * x(i+1:n)) / Aum(i, i);
end
endDecomposição LU
Utilize o MATLAB para calcular a decomposição LU:
>> [L, U] = lu(A)