UMA INTRODUÇÃO À
MODELAGEM MATEMÁTICA
NO ENSINO MÉDIO
Aula 3
Capı́tulo 1
Uso de novas tecnologias na resolução de sistemas
lineares
Como já foi comentado anteriormente, devido ao tipo de processamento(ponto flutuantetruncamento e/ou arredondamento), o uso de calculadoras e mesmo do computador para
resolver sistemas pode ter resultados ”desastrosos”. Entretanto, existem softwares cientı́ficos que, por trabalharem com programação orientada o objetos, permitem evitar
armadilhas. Mas sempre sob supervisão cuidadosa...
Alguns softwares desde tipo são: MAPLE, MATLAB, Mathematica, MuPAD (antes
gratuito, agora incluı́do no ScientificWorkPlace) e Fermat. A seguir serão apresentados
e comentados alguns comandos essenciais do MAPLE, para resolver Sistemas Lineares.
Em seguida, serão apresentados alguns exemplos de sistemas lineares como aplicação.
1.1
Pacote e comandos importantes
Supondo o software MAPLE já devidamente instalado no computador, deve ser escolhido
o modo ”worksheet”(folha de trabalho), utilizado quando se deseja fazer programação,
e não o modo ”document”(documento), que oculta os comandos necessários para a realização de cálculos. Para isto, verifique, a partir da barra de ferramentas, escolhendo
”opção”, depois ”input display”se está marcada a opção ”maple notation”.
Para resolver sistemas lineares e outros problemas de Álgebra Linear, o MAPLE conta
com um pacote de comandos chamado linalg que deve ser carregado antes de qualquer
2
coisa, exceto do comando de limpeza da memória restart. É importante lembrar que,
apos cada comando tem que ser digitado ; e deve ser clicada a tecla enter do computador,
para que este comando seja implementado.
Se o único interesse for obter rapidamente a solução de um sistema (supondo que
exista tal solução), são poucos os comandos necessários: comandos para entrada dos
dados do sistema, isto é, da matriz dos coeficientes e do vetor contendo os termos independentes. Com mais um comando, o próprio MAPLE, a partir destes dados, armazena
a matriz ampliada. Finalmente, um comando único resolve o sistema.
Exemplo 1
restart;
with(linalg):
A:=matrix(m,n,[a11,...a1n,a21,...,a2n,...,am1,...,amn]);
B:=matrix(m,1,[b1,...,bm]); (ou B:=vector([b1,...,bm]); ou B:=[b1,...,bm]; )
AB:=concat(A,B); (ou AB:=augment(A,B); )
linsolve(A,B);
X0:=linsolve(A,B);
evalm(A & * X0);
Estes dois últimos são para verificar que, substituindo X0 no sistema, ou seja multiplicando a matriz A por X0 , encontra-se B.
Entretanto, como queremos ter um controle rigoroso da obtenção da solução via método
de escalonamento de Gauss, serão necessários mais comandos: são primeiro os comandos que vão controlar as operações elementares com as linhas da matriz aumentada do
sistema (matriz AB do exemplo 1). Estes comandos são:
• swaprow(A,Li ,Lj ); para trocar a linha Li com a linha Lj
• mulrow(A,Li ,k); para multiplicar a linha Li por k
• addrow(A,Li ,Lj ,k); para substituir a linha Lj por k Li + Lj
3
A cada vez que efetuamos uma destas operações a matriz é modificada, logo cada nova
matriz tem que ser identificada, então os comandos acima têm que ser combinados com
a designação das novas matrizes que vão surgindo.
Exemplo 2
AB1=:swaprow(A,1,2);
AB2=:mulrow(AB1,1,1/2);
Finalmente, após um certo número de operações, é obtida uma matriz escalonadatriangular ABi, equivalente a AB. Sendo assim, está autorizado o comando
backsub(ABi);
que encontrará a solução obtendo as incógnitas das equações do sistema equivalente ao
inicial, associado a ABi, atuando de baixo para cima, em relação às linhas da matriz.
No caso em que existe uma infinidade de soluções, ou seja, o sistema tem grau de liberdade (n − p), onde n é o número de incógnitas e p é o posto da matriz aumentada
escalonada, igual ao posto da matriz dos coeficientes escalonada, haverá n − p variáveis
arbitrárias e as outras p incógnitas serão obtidas em função dessas. Supondo que se
deseja que as variáveis arbitrárias sejam designadas pelos sı́mbolos x1 , ... xn−p , ao invés
do comando anterior deve ser usado uma variante
backsub(ABi,false,x);
Quando o sistema não tem solução, aparece uma mensagem de erro, depois deste comando.
Nos exemplos ainda aparece o comando evalm(xxx); que é utilizado para cálculos com
matrizes, por exemplo evalm(A & * B); significa o produto das matrizes A e B.
Na barra de ferramentas do MAPLE, escolhendo ”Help”, pode-se ter acesso a muito mais
informações e também exemplos de aplicação dos comandos e outros pacotes.
4
Serão apresentados agora alguns exemplos de uso do MAPLE para resoluçào de sistemas
lineares (Exemplos 1 a 5).
5
Download

Aula 3