Nota prévia: uma
matriz A (n x n) é não-singular se se verificarem as seguintes propriedades:
·
A tem uma inversa, designada por A-1;
·
O determinante de A (det(A)) é diferente de zero (det(A)¹0);
·
Para qualquer z¹ 0, A*z¹0.
2 Carlos
A resolução de sistemas de equações lineares
(não singulares) é muito fácil com o Matlab. Vamos lidar com equações simples
do tipo Ax=b em que A representa uma matriz dos coeficientes com dimensão m
por n, x é o vector coluna das incógnitas e b é o vector correspondente
aos termos independentes do sistema de equações. Imaginemos que temos um sistema de 2 equações (cada uma com duas incógnitas e um termo independente):
7x+8y=100
2x-9y=10
Seguindo a forma clássica de resolução teríamos que separar as equações nos seus componentes (coeficientes, incógnitas e termos independentes) e fazer os cálculos através dos determinantes. Tarefa árdua!
Teríamos então que fazer o seguinte:
x = D1/D, em que D significa determinante;
y = D2/D
Assim, resolvendo os determinantes obtemos:
D = 7*(-9)-8*2=-79 (determinante dos coeficientes);
D1 = 100*(-9)-10*8=-980 (determinante dos termos independentes e do vector das “segundas” incógnitas (y));
D2 = 7*10-2*100=-130 (determinante dos termos independentes e do vector das “primeiras” incógnitas (x));
Calculando as respectivas razões obtemos as soluções para as duas incógnitas:
x = 12.4051
y = 1.6456
Com este procedimento facilmente se verifica a quantidade de cálculos que têm que ser feitos para chegar a uma solução (com o perigo de nos enganarmos nos sinais dos escalares).
Com o Matlab tudo é mais simples pois só precisamos de decompor o sistema de equações e usar uma única instrução (\ - “backslash”).
O sistema de equações usado como exemplo é do tipo Ax=b em que A representa a matriz dos coeficientes com dimensão n por n, x é o vector coluna das incógnitas (x e y) e b é o vector correspondente aos termos independentes (100 e 10).
Sendo do tipo Ax=b a instrução a usar no Matlab é: x=A\b. Vamos ver:
A=[7 8; 2 -9];
b=[100; 10];
x=A\b
x =
12.4051
1.6456
Como se vê não foi necessária muita ginástica mental, a instrução \ resolveu tudo num instante!
Para verificar se os resultados estão certos basta fazer a operação inversa:
b=A*x
b =
100.0000
10.0000
Sem comentários:
Enviar um comentário