Você está na página 1de 12

UTILIZAO DO MAPLE, MATLAB E SCILAB

NOS CURSOS DE ENGENHARIA


Viviana Cocco Mariani viviana.mariani@pucpr.br
Programa de Ps-Graduao em Engenharia Mecnica PPGEM
Pontifcia Universidade Catlica do Paran - PUCPR
Rua Imaculada Conceio, 1155, Prado Velho
81611-970 - Curitiba, PR, Brasil
Tnia Martins Preto - tania@inf.ufpr.br
Andr Luiz Pires Guedes - andre@inf.ufpr.br

Resumo: O presente trabalho tem como objetivo apresentar as principais caractersticas dos
ambientes computacionais Maple, Matlab e Scilab aplicados no ensino de Clculo Numrico,
disciplina presente em todos os cursos de Engenharia. Estes ambientes computacionais so
utilizados com o intuito de estimular e facilitar o aprendizado tornando mais atrativo o estudo e
entendimento dos principais mtodos de Clculo Numrico. Em todos estes ambientes o aluno
tem a opo de entrar com os dados e obter as respostas prontas, alm de utilizar estes
ambientes para criar os seus prprios cdigos e analisar suas respostas. Assim, ocorre um
melhor aproveitamento por parte dos alunos, capacitando-os a interpretar os fenmenos fsicos
envolvidos nos problemas propostos.
Palavras-chave: Clculo Numrico, Matlab, Scilab, Engenharia, Programao

1.

INTRODUO

Hoje vivemos o desenvolvimento tecnolgico em todas as reas o que causa uma revoluo
na criao e explorao de novas metodologias de ensino. O aluno que chega a Universidade
um aluno crtico e ativo, ele quer saber porque e onde ir utilizar os contedos que esto sendo
ministrados, a pergunta mais ouvida em sala de aula : Para que serve isto?. Algumas vezes
esta questo no tem resposta, at porque nem todo contedo tem uma aplicao imediata, alguns
contedos so bsicos para a resoluo de problemas mais avanados que sero apresentados no
decorrer do curso.
O professor deve ver o aluno como uma pessoa engajada em uma sociedade que convive
diariamente, mesmo que no diretamente, com a tecnologia. Esta se popularizou e utilizada por
muitos, contudo poucos conhecem os seus mecanismos de funcionamento. O papel do professor
estar em constante atualizao para usar exemplos aplicados e instigantes para os alunos, uma vez
que esto sendo formados novos Cientistas da Computao, Engenheiros.

Geralmente os mtodos de ensino no tm se beneficiado de forma significativa de todas as


opes de programas especficos e ambientes de programao. Sob este aspecto, programas como
o Maple, Matlab e Scilab tm grande potencial para melhorar a relao ensino-aprendizado dos
cursos de Engenharia e Computao. Estes programas oferecem diversas funcionalidades para a
resoluo de problemas matemticos tais como clculos matriciais, resoluo de integrais,
derivadas, manipulao de vetores em geometria, anlise numrica, alm de permitir a
visualizao de grficos de funes. Os mesmos so utilizados para resolver diversos problemas
de Engenharia, Matemtica, possibilitando a soluo numrica dos problemas como a maioria
dos programas convencionais. Alm disso, representam boas opes de ferramentas para o ensino
de matemtica, possuindo a capacidade de permitir a formulao dos mesmos a partir dos
princpios fundamentais e a soluo algbrica desses mesmos problemas em um ambiente
computacional integrado e interativo.
Outra grande vantagem desses ambientes que possuem uma linguagem de programao de
alto nvel, exigindo que o usurio tenha apenas conhecimentos bsicos de programao, no
sendo necessrio usar tcnicas avanadas de programao e estruturas de dados. Em especial o
Scilab um programa livre oferecendo vantagens ao usurio quanto a possibilidades de uso.
O uso dos citados programas no ensino, deve ser feito com cautela, pois o aluno at pode
exercitar e expandir a concepo intelectual dos fundamentos embutidos nos modelos a serem
estudados e estimular a sua criatividade no desenvolvimento de modelos mais apropriados para a
situao fsica, porm deve preocupar-se tambm com o tratamento matemtico, algbrico e as
solues das equaes geradas. Os programas so manipulados pelos alunos e no esto isentos
de erros, logo os alunos devem interpretar a soluo fornecida pelos mesmos, tendo
conhecimento dos mtodos utilizados e da soluo esperada.
O ensino de Clculo Numrico deve abranger cinco etapas fundamentais (Lima, 1995):
1) Conceituao: Ato de formular corretamente e objetivamente as definies, enunciados e
proposies de Clculo Numrico, mostrando as conexes entre os diversos conceitos e mtodos
e desenvolvendo o raciocnio dedutivo.
2) Manipulao: Prtica principalmente de exerccios de carter algbrico e numrico.
Permitindo adquirir habilidade e destreza no manuseio de equaes, frmulas, construes
geomtricas, algoritmos, preparando o aluno para a aquisio de novos conceitos.
3) Aplicaes: Utilizao das noes e teorias aprendidas para obter resultados, concluses e
previses em problemas que podem variar desde os mais simples at aplicaes em outras reas,
sejam elas cientficas, tecnolgicas ou mesmo sociais. A conceituao e manipulao so
indispensveis para o entendimento das aplicaes. As aplicaes incluem a resoluo de
problemas que, pelo fato de representar desafios, auxiliam no desenvolvimento da criatividade,
estimulam a imaginao e recompensam o esforo de aprender. As aplicaes representam a
parte mais interessante do processo, pois possibilita que o aluno entenda a origem de tantos
conceitos e a sua importncia na resoluo de problemas matemticos e de outras reas.
4) Programao: Elaborao de programas computacionais envolvendo os mtodos de Clculo
Numrico os quais devem ter como objetivo principal contemplar a aquisio do conhecimento
tanto na matemtica como na programao. A aprendizagem de conceitos de programao e
algoritmos envolve a aquisio de alguns conhecimentos e habilidades especficas, que sero
citadas no decorrer deste trabalho.
5) Avaliao: Ato ou efeito de apreciao e anlise dos resultados obtidos pelo aluno no decorrer
do programa de Clculo Numrico, visando julg-lo proferindo um conceito ou nota.

A tarefa de ensinar uma tarefa profissional que, no entanto, exige amor, criatividade,
competncia cientfica. Programar e avaliar no so momentos separados, um a espera do outro,
so momentos interligados. Avaliar implica, quase sempre, em re-programar, retificar. A
avaliao, por isso mesmo, no se d no momento que nos parece ser o final de certa prtica
(Freire, 2003). A avaliao um processo contnuo que envolve muitas variantes, tanto relativas
aos contedos avaliados quanto s concepes do professor sobre os fins da avaliao e tambm
quanto s diversas habilidades que os alunos disponibilizam em uma resoluo de questo.
O uso do computador como ferramenta de apoio ao ensino tema de muitos trabalhos e tem
contribudo para a melhoria na qualidade do ensino. Diversos ambientes computacionais foram
desenvolvidos nos ltimos anos, sendo que uma boa parte destes, concentra-se na tarefa de apoiar
as etapas de conceituao e manipulao, porm tambm existem diversos ambientes
computacionais que atendem a etapa de aplicao.
Em geral os ambientes onde as etapas de conceituao e manipulao so o maior foco no
exigem que o aluno execute tarefas relacionadas com a elaborao de algoritmos, j em algumas
situaes na etapa de aplicaes propem-se ao aluno situaes onde ele responsvel por
elaborar uma soluo atravs de alguma ferramenta computacional. Os programas
computacionais abordados neste trabalho podem ser utilizados para auxiliar o ensino de
matemtica apoiando a formulao e execuo de programas.
As aplicaes envolvendo programao e matemtica devem objetivar a aquisio do
conhecimento tanto na matemtica como na programao. A aprendizagem de conceitos de
programao e algoritmos envolve a aquisio de alguns conhecimentos e habilidades
especficas, dentre eles pode-se citar o domnio dos aspectos relacionados com sintaxe (regras de
escrita), semntica (significado de comandos), estratgias para decomposio (dividir um
problema grande em subproblemas menores), estratgias para composio (unio e comunicao
entre diferentes partes de um programa), conhecimento pragmtico (usar recursos bsicos do
sistema), escolha da metodologia de desenvolvimento, capacidade de adaptar solues
conhecidas para a resoluo de novos problemas e capacidade de entender o que a memria do
computador faz durante a execuo de um programa (Direne e Pimentel, 1998).
Em alguns cursos como Engenharia Mecnica, Engenharia da Computao e Cincia da
Computao, desejvel que os alunos pratiquem as tcnicas de programao, j em outros
cursos como Engenharia Qumica, Engenharia de Alimentos etc, os alunos podem utilizar os
ambientes computacionais Matlab, Maple ou Scilab sem a necessidade de programar em
linguagens que exigem conhecimentos avanados de tcnicas de programao, como C, Fortran ,
Pascal, dentre outras.
O presente artigo apresenta uma descrio breve dos ambientes de programao que so
utilizados para o ensino de Clculo Numrico em alguns cursos de Engenharia, dando nfase ao
Scilab por estar na categoria de software livre, fazendo um comparativo entre exemplos de
rotinas feitas nos trs programas, finalizando com as concluses e as perspectivas de trabalhos
futuros.
2.

CARACTERSTICAS DOS AMBIENTES COMPUTACIONAIS

2.1 Matlab

A primeira verso do Matlab foi escrita na Universidade do Novo Mxico e na Universidade


de Stanford, no final da dcada de 70, e foi destinado a cursos de teoria matricial, lgebra linear e
anlise numrica. Hoje sua capacidade foi estendida, e o Matlab muito utilizado no
desenvolvimento de projetos de Engenharia, devido a sua poderosa capacidade de processamento
matemtico e visualizao grfica. Matlab apresenta diversos conjuntos de funes voltadas para
aplicaes especficas, os chamados toolboxes.
O Matlab pode funcionar tanto como uma simples calculadora como um ambiente para
desenvolvimento de aplicativos atravs de uma linguagem de programao, proporcionado o
desenvolvimento de projetos de diversos tipos de complexidade. Sua utilizao faz com que o
aluno se prenda mais ao entendimento fsico dos problemas, pois no exige conhecimentos
profundos de programao e estruturas de dados. O uso do Matlab nos Cursos de Engenharia
interessante porque coloca o aluno em contato com diversas funcionalidades, no envolvendo a
utilizao direta de tcnicas avanadas de programao e estruturas de dados, assim a ateno do
aluno fica concentrada na resoluo do problema e na anlise dos resultados obtidos (Martim e
Mariani, 2004).
2.2 Maple
O Maple um programa verstil onde, pode-se explorar computao algbrica e numrica,
grficos, animaes, possuindo uma linguagem de programao. Devido a esta versatilidade, o
Maple tem encontrado grande aplicao, tanto do ponto de vista tcnico como do ponto de vista
educacional. O aplicativo Maple foi desenvolvido pela Universidade de Waterloo, Canad, e pelo
Instituto ETH, de Zurich, Suia.
A capacidade principal do Maple est nos algoritmos para resoluo de problemas
simblicos. Ao contrrio dos programas matemticos convencionais, que podem trabalhar
somente com nmeros em ponto flutuante, compreendendo e operando, por exemplo, com
fraes, razes quadradas de nmeros no perfeitos, valores inexatos de senos, co-senos,
logaritmos e outros.
2.3

Scilab

O Scilab um programa livre disponvel em www.scilab.org. O uso do programa livre na


educao uma alternativa imprescindvel a qualquer projeto educacional, tanto no setor pblico
como no privado. Fatores tais como liberdade, custo, flexibilidade so estratgicos para a
conduo bem sucedida de projetos educacionais mediados por computador. Para o setor
educacional, muitas vezes carente de recursos, o programa livre uma alternativa vivel e que
deve ser considerada seriamente (Almeida, 2002).
Desenvolvido no INRIA, na Frana, o Scilab tem sido utilizado para aplicaes em sistemas de
controle e processamento de sinais. um cdigo fonte livre feito de trs partes distintas: um
interpretador, livrarias de funes (procedimentos Scilab) e livrarias de rotinas em Fortran e C. Estas
rotinas no pertencem ao Scilab mas so interativamente chamadas pelo interpretador, algumas foram
modificadas para melhor compatibilidade com o interpretador do Scilab.
O Scilab um ambiente de programao numrica bastante flexvel, cujas principais
caractersticas so (Pires, 2004): (1) um programa de distribuio gratuita, com cdigo fonte
disponvel, sua linguagem simples e de fcil aprendizado; (2) possui um sistema de auxlio ao
usurio (help); (3) apresenta recursos para gerao de grficos bidimensionais, tridimensionais e

animaes; (4) implementa diversas funes para manipulao de matrizes, incluindo operaes
de unio, acesso e extrao de elementos, transposio, adio e multiplicao de matrizes; (5)
permite trabalhar com polinmios, funes de transferncia, sistemas lineares e grafos; (6)
apresenta facilidades para a definio de funes; (7) permite o acesso a rotinas escritas nas
linguagens FORTRAN ou C; (8) pode ser acessado por programas de computao simblica
como o Maple, que um programa comercial, ou o MuPAD, que um programa livre para uso
em instituies de ensino/pesquisa; (9) suporta o desenvolvimento de conjuntos de funes
voltadas para aplicaes especficas, os chamados toolboxes.
Um dos objetivos secundrios deste trabalho mostrar que a utilizao de programas livres e
de cdigo aberto traz grandes vantagens do ponto de vista do usurio. Algumas destas vantagens
so apresentadas em Palacios (2001) e destacadas a seguir: (1) a ltima verso do programa est
sempre disponvel, geralmente atravs da Internet; (2) o programa pode ser legalmente utilizado,
copiado, distribudo, modificado; (3) os resultados obtidos podem ser divulgados sem nenhuma
restrio; (4) os programas desenvolvidos podem ser transferidos para outras pessoas sem
imposies ou constrangimentos de qualquer natureza; (5) o acesso ao cdigo fonte, evitando
surpresas desagradveis; (6) participao em uma comunidade cujo principal valor a irrestrita
difuso do conhecimento.
O presente trabalho tem como objetivo principal propor sugestes de como utilizar os
programas Matlab, Maple e Scilab no ensino de Clculo Numrico e relatar a experincia dos
autores no uso destes programas em aula. Alm disso, pretende-se mostrar um comparativo entre
a implementao atravs dos trs programas, atravs dos exemplos apresentados. Nota-se que a
aprendizagem independe do ambiente computacional adotado, o aluno deve desenvolver a lgica
ao elaborar as etapas para a soluo de um problema, para depois program-lo e analisar os
resultados obtidos. A chave da disciplina Clculo Numrico o uso da lgica matemtica na
soluo dos problemas.
3.

APLICAES EM CLCULO NUMRICO

Com o objetivo de apresentar a versatilidade e robustez destes programas, na soluo


numrica de problemas, so apresentados alguns mtodos da disciplina Clculo Numrico e a
forma como os mesmos podem ser resolvidos atravs dos trs programas abordados neste
trabalho.
A disciplina de Clculo Numrico consiste na resoluo de vrios problemas que podem ser
resolvidos manualmente ou por programas. A soluo fornecida pelos programas geralmente so
aproximaes da soluo real, isto ocorre devido ao sistema de representao da mquina, ou a
base numrica empregada, ou o nmero total de dgitos na mantissa, ou da forma como so
realizadas as operaes ou do compilador utilizado (Mariani, 2002). Estes aspectos no sero
abordados neste trabalho, no entanto vale ressaltar que todos os mtodos so interrompidos
quando um determinado valor aproximado satisfaz o problema.
A seguir sero descritas trs aplicaes: desenho de grficos, zero de funes e resoluo de
sistemas lineares.
3.1 Gerao de Grficos
Um tpico usado em vrias disciplinas, no s em Clculo Numrico, a representao
grfica de funes no espao bidimensional ou tridimensional. Assim, na tabela 2 so

apresentados os principais comandos utilizados para ilustrar as funes f(x) = x2 e g(x, y) = z = x2


+ y2, em cada um dos programas. Na figura 1 so ilustrados os grficos obtidos primeiro para o
Matlab, em seguida o Maple e aps o Scilab. A tabela 1 ilustra os comandos usados para a
gerao dos grficos nos respectivos programas. Percebe-se que todos os programas ilustram
adequadamente as funes solicitadas. Nota-se na figura 1 que a representao grfica do
programa Scilab ainda est deficiente, principalmente para o grfico tridimensional. Para criar
este grfico foi necessrio criar uma matriz g(i,j), conforme apresentado na tabela 2, e o Scilab s
permite utilizar no lao do for valores positivos o que prejudicou a representao grfica.
Tabela 1. Comandos para construir grficos 2D e 3D.
Matlab
Maple
Scilab
X=-10:10;
y=x^2;
y=x.^2;
plot(x,y)
[x,y]=meshgrid(-10:0.1:10);
z=x.^2+y.^2;
mesh(x,y,z)

plot(x^2,x);

plot3d(x^2+y^2,x=10..10,y=-10..10);

x=[-10:0.1:10]';
y=x^2;
plot2d(x,y,rect=[-10,0,10,100])
x=1:10; y=1:10
for i=1:10 for j=1:10
g(i,j)=i^2+j^2;end;end;
plot3d(x,y,u)

100
200

90

180

80

160

70

140

120

60
Z

100

50
80

40
60

30

40

20

20

10

0
1

10

10

-10

-8

-6

-4

-2

10

Figura 1. Funes f(x) (esquerda) e g(x,y) (direita) no Matlab, Maple e Scilab.

3.2 Zero de Funes


Um assunto importante na disciplina Clculo Numrico a obteno numrica de zeros de
funes ou razes de equaes. O zero de uma classe restrita de funes algbricas pode ser
obtido de forma rpida e fcil, contudo na maior parte das funes algbricas e transcendentes
esta no uma tarefa simples e os mtodos numricos foram criados para auxiliar na obteno de
tais zeros (Penny e Lindfield, 2000). Um dos mtodos vastamente usado o mtodo de NewtonRaphson. O algoritmo deste mtodo (Burden e Faires, 2000) apresentado na tabela 2.

Tabela 2. Algoritmo do mtodo de Newton-Raphson.

Algoritmo do mtodo de Newton-Raphson


Seja f(x) contnua em [a, b] e tal que f(a).f(b) < 0. Supor que as condies f(x) e f(x)
sejam no nulas e preservem o sinal em [a, b] e tal que f(x0)*f(x0) > 0 , f(x) 0 estejam
satisfeitas (Burden e Faires, 2000).
Dados iniciais
preciso
k = 0 (contador de iteraes)
x0 (aproximao inicial da raiz)
Calcular f = f(x0) e df = f(x0).
2) Enquanto |f/df| > ento
xk+1 = xk

f
df

k = k+1
xk = xk+1
f = f(xk)
df = f(xk)
seno escolha

= xk+1 fim.

Nas tabelas 3, 4 e 5 so ilustradas as formas como o mtodo de Newton-Raphson pode ser


programado nos trs ambientes computacionais.
Tabela 3. Mtodo de Newton-Raphson no programa Matlab.
function [x, iter] = fnewton(f,df,x,tol)
%
% Encontra a raiz de f(x) usando Newton
% Chame no prompt do Matlab
% [x, iter] = fnewton(f,df,x,tol)
% onde f e a funcao f(x), df e a derivada
% x e o valor inicial e tol e a tolerancia
% f e df devem ser fornecidas
% Ex. fnewton('x*log(x)-3.2','1+log(x)',3,0.0001)

iter = 0;x0 = x;
d = eval(f,x0)/eval(df,x0);
while abs(d)>tol
x1 = x0-d;
iter = iter+1;
x0 = x1;
x=x0;
d = eval(f,x0)/eval(df,x0);
end
res = x0;

Tabela 4. Mtodo de Newton-Raphson no programa Maple.


newtonraphson := proc(x0,f,erro,itmax)
print("i", "xk=", "f(xk)=");
df:= unapply(diff(f(x),x),x);
x1:=evalf(x0-f(x0)/df(x0));
for i from 0 by 1 while (abs(f(x1)) > erro or abs(x1-x0) > erro) and (i < itmax) do
x0 := x1;
x1 := evalf(x0-f(x0)/df(x0));
end do;
print(i, x1, evalf(f(x1)));

end proc;

Tabela 5. Mtodo de Newton-Raphson no programa Scilab.

function fnewton(x0,tol) //arquivo fnewton.sci


// Encontra a raiz de f(x) usando Newton
// f a funo f(x), df a derivada da funo
f(x)
// x0 o valor inicial e tol a tolerncia
requerida
//
iter = 0;
d = f(x0)/df(x0);
while (abs(d)> tol)
x1 = x0-d
iter = iter+1;
x0 = x1;

d = f(x0)/df(x0);
end;
printf('iter=%d\n x0=%f\n',iter,x0)
endfunction
// arquivo func1.sci
function[a] = f(x)
a = x.*log(x)-3.2
// arquivo func2.sci
function[b] = df(x)
b = log(x) +1

Na tabela 5 nota-se a especificao de trs funes diferentes, uma declarando a prpria


funo f(x) (arquivo func1.sci) outra declarando a derivada da funo f(x) (arquivo func2.sci) e a
ltima funo apresenta a resoluo do prprio mtodo de Newton-Raphson (arquivo
fnewton.sci), implementado no programa Scilab. Para executar o programa no Scilab deve-se
seguir as etapas:
-->getf('func1.sci')
-->getf('func2.sci')
-->getf('fnewton.sci')
-->fnewton(1,0.00001)
Neste caso, os valores 1 e 10-5 foram utilizados como dados de entrada para obter o zero da
funo especificada.
No Maple para obter a raiz de uma funo tambm pode-se usar o comando solve com suas
variantes. Os arquivos salvos no Matlab possuem extenso .m, no Maple a extenso .mws e no
Scilab a extenso .sci. Para avaliar uma funo ou expresso no Matlab usa-se o comando feval
(quando o nome da funo chamado) ou eval (quando a prpria funo chamada), no Maple o
comando evalf e no Scilab basta digitar f(x0), onde x0 o valor onde a funo ser avaliada. O
Matlab no calcula algebricamente a derivada de uma funo, enquanto o Maple o faz com o
comando diff. O Scilab calcula numericamente a derivada atravs do comando diff, sendo
necessrio especificar o intervalo de derivao. No exemplo dado a funo derivada foi
fornecida.
3.3

Resoluo de Sistemas Lineares

Outro tpico apresentado na disciplina Clculo Numrico a soluo de sistemas de


equaes lineares, assunto este que de grande importncia nos Cursos de Computao e de
Engenharia. No Matlab pode-se resolver um sistema de equaes lineares atravs de mtodos
diretos. Mtodos diretos so aqueles que a menos de erros de arredondamento, fornecem a
soluo exata do sistema linear, caso ela exista, aps um nmero finito de operaes. A inversa
da matriz pode ser usada atravs do comando inv ou atravs do comando linsolve; a
decomposio de Cholesky usando o comando chol ou a decomposio LU usando o comando
lu. Porm os demais mtodos devem ser programados utilizando as ferramentas disponveis no

Matlab. At mesmo os mtodos anteriormente citados podem ser programados e os alunos so


incentivados a faz-lo.
No Maple os mtodos diretos esto todos disponveis em forma de funes no pacote linalg
(de lgebra Linear), a funo inverse pode ser usada para obter a matriz inversa, a funo
gaussjord para utilizar o mtodo de Gauss-Jordan, a funo LUdecomp para utilizar o mtodo de
Decomposio LU e a funo cholesky para o mtodo de Cholesky. Da mesma forma no Scilab
muitos comandos j esto disponveis para resolver sistemas, alguns semelhantes ao Matlab.
Nas tabelas 6 a 8 ser apresentado o mtodo de Eliminao de Gauss para os programas
Matlab, Maple e Scilab, respectivamente. O mtodo de eliminao de Gauss consiste em
transformar o sistema linear original num sistema linear equivalente cuja matriz dos coeficientes
fique na forma triangular superior, onde a soluo feita de forma retroativa. Dois sistemas so
equivalentes quando possuem a mesma soluo (Burden e Faires, 2000).
Tabela 6. Mtodo de Eliminao de Gauss no programa Matlab.
end
function [x,iter] = EliGauss (Ab)
n_l = size(Ab,1); % no. linhas da matriz estendida end
Ab
n_c = size(Ab,2); % no. colunas da matriz x(n_l) = Ab(n_l,n_c)/Ab(n_l,n_l);
for i=(n_l-1):-1:1
estendida Ab
s=0
for j=i+1:n_l
for k=1:(n_l-1)
s = s + Ab(i,j)*x(j)
for i=(k+1):n_l
end
m = -Ab(i,k)/Ab(k,k)
x(i) = (Ab(i,n_c)-s)/Ab(i,i)
Ab(i,k) = 0
end
for j=(k+1):n_c
Ab(i,j) = Ab(i,j) + m*Ab(k,j)
End

Tabela 7. Mtodo de Eliminao de Gauss no programa Maple.


restart:with(linalg): gauss:=proc(C,B)
local A,j,i,k,n,m,x,s;
A:=concat(C,B);
n:=rowdim(A):
for k to n-1 do
for i from k+1 to n do
m:=evalf(-A[i,k]/A[k,k]);
for j from k+1 to n+1 do
A[i,j]:=evalf(A[i,j]+m*A[k,j]);
od;
A[i,k]:=0:
od;
od;
# Retrosubstituio
x:=vector(n);

x[n]:=A[n,n+1]/A[n,n];
for i from n-1 to 1 by -1 do
s:=A[i,n+1];
for j from i+1 to n do
s:=s-A[i,j]*x[j];
od;
x[i]:=evalf(s/A[i,i]);
od;
x:=convert(x,matrix); #resultado um vetor coluna
RETURN(op(x));
end:
# Chamando Gauss para um sistema Ax=b.
A1:=linalg[matrix](3,3,[1,2,-3,2,-4,1,3,2,1]);
B1:=linalg[matrix](3,1,[5,0,5]);
x:=gauss(A1,B1);

No Matlab para compilar o programa basta digitar EliGauss(Ab) na linha de comando, o


programa se chama EliGauss.m, onde Ab a matriz estendida, isto , contendo os elementos da
matriz A e do termo independente b, do sistema de equaes lineares. No Maple execuo do
programa apresentada no final da tabela 7. Para executar o programa apresentado na tabela 8 no
Scilab os seguintes passos devem ser seguidos:

-->getf('x.sci')
-->Eg(Ab)
Tabela 8. Mtodo de Eliminao de Gauss no programa Scilab.
function x = Eg(Ab)
// Programa que resolve o sistema Ax=b atravs do
mtodo de Eliminao de Gauss
// nl o nmero de linhas e nc o nmero de
colunas da matriz Ab
[nl, nc]=size(Ab);
for k =1:nl-1,
for i=(k+1):nl,
m=-Ab(i,k)/Ab(k,k);
Ab(i,k)=0;
for j=k+1:nc,
Ab(i,j)=Ab(i,j)+ m*Ab(k,j);
end,
end,
end,

4.

n=nc-1;
A = Ab(:,1:n); // matriz A
b = Ab(:,nc) // vetor b
x = zeros(n,1);
x(n) = b(n)/A(n,n);
for i = n-1:-1:1,
soma = 0,
for j = i+1:n,
soma = soma + A(i,j)*x(j);
end,
x(i)=(b(i)-soma)/A(i,i);
end
Endfunction

CONCLUSES

Aps a apresentao breve dos trs ambientes computacionais e a aplicao dos mesmos para
ilustrar grficos de funes, obter o zero de uma funo via o mtodo de Newton-Raphson e
resolver o sistema Ax = b pelo mtodo de Eliminao de Gauss percebe-se que todos os
programas analisados tm potencial. Contudo, deve-se dar destaque ao programa Scilab, um
programa gratuito e distribudo com o cdigo fonte. Assim, todos os alunos podem ter acesso ao
programa em suas casas sem restries, bastando para isto ter um computador pessoal, enquanto
os demais programas aqui apresentados so comerciais, o que dificulta o acesso de grande parte
dos alunos.
A anlise dos programas mostrou que todos so adequados para o ensino de Clculo
Numrico. O Matlab e o Scilab so excelentes ferramentas de suporte para as linhas de pesquisa
onde o uso de computadores na resoluo numrica de problemas intensivo, enquanto o Maple
tem maior aplicao na soluo simblica e algbrica dos problemas.
Os conceitos de programao de computadores necessrios para a utilizao dos trs
ambientes computacionais esto relacionados a manipulao de estruturas de controle de
repetio e deciso, alm da elaborao de funes. Portanto pode-se afirmar que os alunos com
conhecimentos bsicos de programao tm condies de utilizar os trs ambientes
computacionais analisados.
Observou-se tambm que todos os ambientes computacionais so de fcil assimilao para
os alunos, no havendo diferenas significativas a respeito das facilidades de aprendizagem e
utilizao. Como proposta de trabalhos futuros, pretende-se explorar os trs programas em
aplicaes mais especficas dentro dos cursos de computao e engenharia, como, por exemplo,
explorar determinados toolbox comparando suas funcionalidades e o uso dos programas para a
realizao de visualizao cientfica de dados
REFERNCIAS BIBLIOGRFICAS

ALMEIDA, R. Q. Software Livre na Educao. In: Boletim EAD Unicamp/CentrodeComputao/EquipeEAD.http://www.ead.unicamp.br/ead/index_html?foco=P


ublicacoes, 2002. Acesso em 20/04/2005.
BURDEN, R. L. e FAIRES J. D., Numerical Analysis, 7 Edio, PWS Publishing Co, 2000.
DIRENE, A. I. e PIMENTEL, A. R., Medidas Cognitivas no Ensino de Programao de
Computadores com Sistemas Tutores Inteligentes. In: Simpsio Brasileiro de Informtica na
Educao, Anais: Fortaleza, 1998.
FREIRE, P., Professora sim Tia no Cartas a quem Ousa Ensinar, So Paulo, Olho Dgua,
14a Edio, 2003.
LIMA, E. L., Conceituao, Manipulao e Aplicaes. In: Revista do Professor de Matemtica,
41. SBM. http://cenp.edunet.sp.gov.br/RPM, 1995. Acesso em 10/03/2005.
MARIANI, V. C., Laboratrio Computacional na Disciplina de Clculo Numrico Um Relato,
In: Congresso Brasileiro de Ensino de Engenharia, SP. Anais: Piracicaba, 2002.
MARTIM, E. e MARIANI, V. C., Modelagem Matemtica de um Tanque de Armazenamento,
In: Congresso Brasileiro de Ensino de Engenharia, Anais: Braslia, 2004.
PALACIOS, J. O., An Introduction to the Treatment of Neurophysiological Signals using ScilabVersion 0.02. http://www.neurotraces.com/scilab/scilab2/node2.html, 2001.
PENNY, J. e LINDFIELD, G., Numerical Methods using Matlab, Prentice Hall, 2000.
PIRES, P. S. M., Introduo ao Scilab Verso 3.0. Apostila - UFRN
http://www.leca.ufrn.br/~pmotta/sciport.pdf., 2004. Acesso em 01/03/2005.
ROCHA, A. A., SILVA, B. F., PRUCOLE, E. e BRASIL, O. I., O Ensino da Transferncia de
Calor em um Ambiente Computacional Interativo Integrado utilizando o Maple, In: Congresso
Brasileiro de Ensino de Engenharia, Anais: Braslia, 2004.

USE OF THE MAPLE, MATLAB AND SCILAB INT THE


ENGINEERING COURSES
Abstract. The present work has as objective to present the main characteristics of the
computational programs Maple, Matlab and Scilab in the education of Numerical Calculus
present in all Engineering curses. These computational programs are used with intention to
stimulate and to facilitate to the learning becoming more attractive the study and agreement of
the main methods of Numerical Calculus. In all these programs the students has the option of
only entering with the data and getting the answer and to use these programs to create its codes
and to get its answers. Thus, the programs provide a better exploitation of the students in
discipline, enabling them to interpret the problems and the phenomenon that are present in these
problems.
Key-Words: Numerical Calculus, Maple, Matlab, Scilab, Engineering, Programation

Você também pode gostar