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); 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)

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

100
200

90

180

80 70

160

140

120

60
Z
100

50
80

40
60

30 20

40

20

10 0 -10 -8 -6 -4 -2 0 2 4 6 8 10

0 1

10

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 k = k+1 xk = xk+1 f = f(xk) df = f(xk) seno escolha

f df

= 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, 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

4.

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