Você está na página 1de 19

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

UNIFACS - Universidade Salvador DEAR - Departamento de Engenharia e Arquitetura Curso: Engenharias Disciplina: Clculo Numrico Professor: Marcelo Machado Cad Aluno(a):

T UTORIAL DE S CILAB
Este material uma continuao do material do Professor Jos lvaro Tadeu Ferreira, que est disponvel na internet no endereo http://www.decom.ufop.br/prof/bob. Uma vez que o mesmo atualizou a verso de suas rotinas e para facilitar o uso de quem no tem domnio do software este tutorial ajudar. O Scilab (http://www-rocq.inria.fr/scilab) um ambiente voltado para o desenvolvimento de software para a resoluo de problemas numricos. desenvolvido e mantido por um grupo de pesquisadores do INRIA (Institut de Recherche en Informatique et en Automatique), um instituto francs de pesquisa em informtica e automao. Possui um ambiente de programao numrica bastante exvel. Suas principais caractersticas so: 1. um software de distribuio gratuita, com cdigo fonte disponvel; 2. um ambiente poderoso para gerao de grcos; 3. Implementa diversas funes para manipulao de matrizes. As operaes de concatenao, extrao de elementos, transposio, adio e multiplicao de matrizes so facilmente realizadas; 4. Permite trabalhar com polinmios, funes de transferncia, sistemas lineares e grafos; 5. Apresenta facilidade para a denio de funes, que podem ser passadas para outras funes como argumento de entrada ou de sada; 6. Permite interface com rotinas escritas em linguagem FORTRAN ou C; 7. Suporta o desenvolvimento de conjunto de funes para aplicaes especcas (toolboxes). Estas notas tratam da utilizao do Scilab na sua verso 5.1. Sua tela de abertura apresentada na Figura 1. Observe-se que o prompt do Scilab representado por uma seta, >. chamado de prompt de primeiro nvel. Convenes bsicas 1. Para EXECUTAR um comando digitado basta pressionar a tecla enter. A execuo de um comando apresenta o resultado da sua avaliao; 2. Um nico comando em vrias linhas possvel com a utilizao de ... ao nal do comando; 3. Um ponto e vrgula no nal do comando suprime a apresentao do resultado, mas, no inibe o seu clculo internamente; 4. Letras maisculas e minsculas so distintas dentro do Scilab; 5. Argumentos de funes devem vir entre parnteses; 6. Comentrios podem ser inseridos em qualquer ponto utilizando-se //. Exemplo: // este um comentrio. 11/05/2010 Pgina 1 de 19 Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Figura 1: Tela de abertura do Scilab verso 5.1 Denio de variveis O Scilab sempre interpreta uma letra como sendo uma varivel. Para atribuir um valor a uma varvel "x"faz-se:

x = valor Operadores aritmticos O Scilab indica as operaes aritmticas por smbolos usuais como: x + y + z > + para adio; x - t > - para subtrao; x*z > * para multiplicao; x/y > / para diviso; xy > acento circunexo para potenciao; A ordem de precedncias, na realizao dos clculos, a usual, mas parnteses podem ser empregados para indicar a ordem desejada, sempre que houver necessidade. Funes pr-denidas O Scilab carregado com algumas funes pr-denidas, chamadas de primitivas, a seguir alguns exemplos: > sqrt(x) -> raiz quadrada de x > sqrt(16) ans = 4. > sqrt(-2) ans = 1.4142136i > log(x) > logaritmo neperiano de x > log(%e) ans = 1

11/05/2010

Pgina 2 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

> log10(x) > logaritmo de x na base 10 > log10(100) ans = 2. > exp(x) > e elevado a x > exp(2) ans = 7.3890561 > sin(x) -> seno de x > cos(x) -> cosseno de x > tg(x) -> tangente de x > cotg(x) -> cotangente de x > Como obter ajuda Em caso de dvida, h vrias formas de se obter ajuda.

(i) Utilizando a opo Help na barra de ferramentas; (ii) Digitando help e o nome da funo. > Pacotes no Scilab Se por um lado o Scilab pode ser considerado um software bastante prossional, por outro no tem qualquer preocupao com o aspecto didtico, por este motivo o aprendizado da sua utilizao no to simples, principalmente no que se refere programao. Alm destes inconvenientes, h tambm, o fato de que no disponibiliza funes que utilizam alguns dos mtodos numricos tratados na disciplina Clculo Numrico. Com o objetivo de suprir estas decincias e de facilitar o uso do Scilab como ferramenta de auxlio na aprendizagem de Clculo Numrico, foram implementadas algumas funes, utilizando a linguagem de programao do software, sobre os seguintes assuntos: Resoluo de sistemas de equaes lineares simultneas; Interpolao polinomial; Resoluo de equaes algbricas e transcendentes. Este texto tem a nalidade de ser um manual de utilizao das funes implementadas. Os cdigos fonte esto disponveis, podendo ser livremente copiados e modicados, desde que seja feita referncia ao autor; que receber de bom grado qualquer sugesto que possibilite aperfeioar as rotinas implementadas e, de um modo geral, este trabalho. Todas as funes implementadas esto armazenadas na forma de pacotes. Pacotes so arquivos de extenso sci, em cdigo ASCII, de funes que no so intrinsecamente construdas no ncleo do Scilab. Todos os pacotes do Scilab esto armazenados em pastas em: C:\Arquivos de programas\scilab-5.1 Para disponibilizar ao usurio as funes contidas em um pacote, basta acessar o comando Execute atravs da opo File do menu horizontal. Outra forma a utilizao do comando getf, que tem a seguinte sintaxe getf(C:\Arquivos de programas\Scilab-5.1\macros\pasta do pacote\nome do pacote); Por exemplo, para carregar o pacote gauss.sci, disponibilizando, assim, a funo nele denida, usada a sintaxe:

11/05/2010

Pgina 3 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\gauss.sci); importante observar que o Scilab exibe a mensagem Execution done., conrmando que o pacote foi carregado com sucesso; ou exibe outra mensagem quando h algum problema. Neste texto est sendo tomado como referncia que os pacotes esto armazenados na pasta cn em macros.

Pacotes para a resoluo de sistemas de equaes lineares simultneas

1.1 Mtodo de eliminao de Gauss


Este pacote est contido no arquivo gauss.sci. Possibilita a resoluo de um sistema de equaes lineares simultneas utilizando o mtodo da eliminao de Gauss, com pivotao parcial. Disponibiliza a funo gauss(a,b). Para utiliz-la basta fornecer a matriz dos coecientes (a) e a matriz dos resultados (b) do sistema de equaes, e ter-se- como retorno o vetor x, soluo do sistema Ax = b. Exemplo Seja resolver o sistema de equaes Ax = b, a seguir, utilizando o mtodo de eliminao de Gauss. 1 5 1 8 A = 10 2 1 e b = 7 2 3 10 6 > Entrando com a matriz dos coecientes (A) e dos resultados (b) do sistema de equaes >a=[1,5,1;10,2,1;2,3,10],b=[-8;7;6] a= 1 5 1 10 2 1 2 3 10 b= 8 7 6 Observe-se que os elementos de uma linha da matriz so separados por vrgula e que as linhas por ponto e vrgula. > Carregando a funo gauss.sci getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\gauss.sci); > Usando a funo gauss.sci >gauss(a,b) Troca de posio entre as linhas 1 e 2 1 5 1 7 10 2 1 8 2 3 10 6 11/05/2010 Pgina 4 de 19 Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Passo 1 do processo de eliminao O piv neste passo 10.000000 10. 2. 1. 7. 0. 4.8 0.9 8.7 0. 2.6 9.8 4.6 Passo 2 do processo de eliminao O piv neste passo 4.800000 10. 2. 1. 7. 0. 4.8 0.9 8.7 0. 0. 9.3125 9.3125 O vetor soluo ans = 1. 2. 1.

1.2 Mtodo de Jacobi


Este pacote est contido no arquivo jacobi.sci. Disponibiliza a funo jacobi(A,b,x), que permite resolver um sistema de equaes lineares, AX=B, usando o mtodo iterativo de Jacobi. Para a construo da funo foi utilizada uma formulao matricial do mtodo. Para utilizar esta funo basta fornecer a matriz dos coecientes, o vetor dos termos independentes e o valor inicial de X e ter-se- como retorno o vetor soluo do sistema. Exemplo Ser utilizado o mesmo sistema de equaes do item 1.1 trocando a ordem das equaes 1 e 2. > Entrando com a matriz dos coecientes e vetor dos termos independentes e o valor inicial da interao >A=[10,2,1;1,5,1;2,3,10],b=[7,-8,6],x=[0,0,0] A= 10 2 1 5 2 1 2 3 10 b= 7 8 6 x= 0 0 0 > Carregando a funo jacobi.sci getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\jacobi.sci); > Usando a funo jacobi.sci >jacobi(A,b,x) Ir aparecer uma tela solicitando o Nmero mximo de iteraes e a Preciso desejada conforme mostrado na Figura 2. Aps a escolha do Nmero mximo de iteraes e a Preciso desejada, click em OK e ir aparecer: 11/05/2010 Pgina 5 de 19 Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Figura 2: Tela da funo jacobi. Iterao 1 0.8000 1.4000 0.6000 Maior diferena entre os vetores 1 e 0 = 1.4000 Iterao 2 1.1400 1.4400 0.3400 Maior diferena entre os vetores 2 e 1 = 0.3400 Iterao 3 1.1200 1.5600 0.3960 Maior diferena entre os vetores 3 e 2 = 0.1200 Iterao 4 1.1516 1.5452 0.3564 Maior diferena entre os vetores 4 e 3 = 0.0396 Iterao 5 1.1447 1.550 0.3668 Maior diferena entre os vetores 5 e 4 = 0.0138 Iterao 6 1.1485 1.5556 0.3612 Maior diferena entre os vetores 6 e 5 = 0.0055 Iterao 7 1.1472 1.5575 0.3630 Maior diferena entre os vetores 7 e 6 = 0.0019 Iterao 8 1.1478 1.5568 0.3622 Maior diferena entre os vetores 8 e 7 = 0.0008 Para a preciso 0.00100 a soluo o vetor:

11/05/2010

Pgina 6 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

- 1.1477926

1.5568435

0.3622122

1.3 Mtodo de Gauss - Seidel


Este pacote est contido no arquivo gseidel.sci. Disponibiliza a funo gseidel(A,b,x), que permite resolver um sistema de equaes lineares, AX=B, usando o mtodo iterativo de Gauss - Seidel. Para a construo da funo foi utilizada uma formulao matricial do mtodo. Para utilizar esta funo basta fornecer a matriz dos coecientes e o vetor dos termos independentes e ter-se- como retorno o vetor soluo do sistema. Exemplo Ser utilizado o mesmo sistema de equaes do item 1.1 trocando a ordem das equaes 1 e 2. -> Entrando com a matriz dos coecientes, o vetor dos termos independentes e o vetor com os valores iniciais de x. >A=[10,2,1;1,5,1;2,3,10],b=[7,-8,6],x=[0,0,0] A= 10 2 1 5 2 1 2 3 10 b= 7 8 6 x= 0 0 0 > Carregando a funo gseidel.sci getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\gseidel.sci); > Usando a funo gseidel.sci >gseidel(A,b,x) Aparecer uma tela solicitando o Nmero mximo de iteraes e a Preciso desejada conforme mostrado na Figura 3.

Figura 3: Tela da funo Gauss-Seidell.

11/05/2010

Pgina 7 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Aps a escolha do Nmero mximo de iteraes e a Preciso desejada, click em OK e ir aparecer: Iterao 1 0.8000 1.5600 0.2920 Maior diferena entre os vetores 1 e 0 = 1.5600 Iterao 2 1.1412 1.5598 0.3573 Maior diferena entre os vetores 2 e 1 = 0.3412 1.1497 1.5585 0.3624 Iterao 3 1.1497 1.5585 0.3624 Maior diferena entre os vetores 3 e 2 = 0.0114 Iterao 4 1.1479 1.5571 0.3625 Maior diferena entre os vetores 4 e 3 = 0.0018 Iterao 5 1.1477 1.5570 0.3624 Maior diferena entre os vetores 5 e 4 = 0.0003 Para a preciso 0.00100 uma soluo o vetor: - 1.1476671 1.5570425 0.3624207

2 Pacotes para interpolao polinomial


2.1 Mtodo de Lagrange
Este pacote est contido no arquivo lagrange.sci. Disponibiliza a funo lagrange(x,y), que permite obter a equao do polinmio que interpola uma funo em um conjunto de pontos dados e, ainda, determinar um ponto no tabelado. Se o valor a ser interpolado estiver fora do intervalo dado para x, emitida uma mensagem e a execuo abortada. Para utilizar esta funo basta fornecer os vetores x e y. Exemplo Seja y = f(x) uma funo conhecida nos pontos a seguir. i 0 1 2 3 xi 0 1 2 4 yi 4 11 20 44 > Entrando com os vetores x e y >x=[0 1 2 4],y=[4 11 20 44] 11/05/2010 Pgina 8 de 19 Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

x= 0. 1. 2. 4. y= 4. 11. 20. 44. > Carregando a funo lagrange.sci getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\lagrange.sci); > Usando a funo lagrange.sci >lagrange(x,y) Aparecer ento uma janela informando os dados com relao a funo e uma outra janela perguntando se vai querer ver o grco da funo ou no, conforme ilustra a Figura 4. Fica a seu critrio. Caso queira clique em sim e ento ter de escolher o nmero de pontos que ter o grco, o padro e 100 pontos, conforme mostra a Figura 5, caso no queria ver o grco basta clicar em no.

Figura 4: Tela de escolha se quer ou no ver o grco da Figura 5: Tela de escolha do nmero de pontos para o grfuno interpolada. co da funo interpolada.

Escolhendo no, aparecer uma janela perguntando se deseja fazer a interpolao?, como mostra a Figura 6, clique em Sim e depois escolha o valor a ser interpolado como mostra a Figura 7. Aparecer ento a resposta.

Figura 6: Tela: Deseja fazer a interpolao?

Figura 7: Tela: Valor a ser interpolado?

Feito isso surgir uma tela perguntando se Deseja fazer outra interpolao? Veja a Figura 8. Caso queira clique em Sim, seno clique em No. Ir aparecer a resposta, ou seja, o valor interpolado, conforme Figura 9.

11/05/2010

Pgina 9 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Figura 8: Tela: Deseja fazer outra interpolao?

Figura 9: Resposta do valor interpolado.

E na janela do Scilab aparecer o polinmio interpolador. No nosso exemplo: O polinmio interpolador ans = 4 + 6x + x2

2.2 Mtodo das diferenas nitas (ascendentes)


Este pacote est contido no arquivo difasc.sci. Disponibiliza a funo difasc(x,y), que permite obter a equao do polinmio que interpola uma funo em um conjunto de pontos dados igualmente espaados e, ainda, determinar um ponto no tabelado. Se o valor a ser interpolado estiver fora do intervalo dado para x, emitida uma mensagem e a execuo abortada. Para utilizar esta funo basta fornecer os vetores x e y. Exemplo Seja y = f(x) uma funo conhecida nos pontos a seguir. i xi yi 0 3 1.10 1 6 1.27 2 9 1.36 3 12 1.53

> Entrando com os vetores x e y >x=[3 6 9 12],y=[1.10 1.27 1.36 1.53] x= 3. 6. 9. 12. y= 1.1 1.27 1.36 1.53 > Carregando a funo difasc.sci getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\difasc.sci); > Usando a funo difasc.sci >difasc(x,y)

11/05/2010

Pgina 10 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Assim como na funo Lagrange, aparecer as telas perguntando se quer ver o grco da funo e tambm perguntar se Deseja fazer a interpolao. Seguindo o mesmo procedimento de Lagrange, obteremos o valor interpolado bem como a tabela das diferenas ascendentes conforme mostrado a seguir: Diferenas nitas ascendentes de ordem zero 1.1 1.27 1.36 1.53 Diferenas nitas ascendentes de ordem 1 0.17000 0.09000 0.17000 Diferenas nitas ascendentes de ordem 2 -0.08000 0.08000 Diferenas nitas ascendentes de ordem 3 0.16000 A equao do polinmio interpolador ans = 1.1 + 0.2633333z 0.12z 2 + 0.0266667z 3

2.3 Mtodo das diferenas divididas


Este pacote est contido no arquivo difdiv.sci. Disponibiliza a funo difdiv(x,y), que permite obter a equao do polinmio que interpola uma funo em um conjunto de pontos dados e, ainda, determinar um ponto no tabelado. Se o valor a ser interpolado estiver fora do intervalo dado para x, emitida uma mensagem e a execuo abortada. Para utilizar esta funo basta fornecer os vetores x e y. Exemplo Seja y = f(x) uma funo conhecida nos pontos a seguir. i xi yi 0 3 1.10 1 5 1.27 2 6 1.36 3 8 1.53

> Entrando com os vetores x e y >x=[3 5 6 8],y=[1.10 1.27 1.36 1.53] x= 3. 5. 6. 8. y= 1.1 1.27 1.36 1.53 > Carregando a funo difdiv.sci

11/05/2010

Pgina 11 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\difdiv.sci); > Usando a funo difdiv.sci >difdiv(x,y) Assim como na funo Lagrange, aparecer as telas perguntando se quer ver o grco da funo e tambem perguntar se Deseja fazer a interpolao. Seguindo o mesmo procedimento de Lagrange, obteremos o valor interpolado bem como a tabela das diferenas nitas conforme mostrado a seguir: Diferenas divididas de ordem zero 1.1 1.27 1.36 1.53 Diferenas divididas de ordem 1 0.08500 0.09000 0.08500 Diferenas divididas de ordem 2 0.00167 0.00167 Diferenas divididas de ordem 3 0.00067 A equao do polinmio interpolador ans = 0.93 + 0.0296667p + 0.011p2 0.0006667p3

3 Pacotes para o clculo das razes reais de uma equao


3.1 Equaes algbricas polinomiais
3.1.1 Limites das razes reais Este pacote est contido no arquivo limites.sci. Trata-se de uma implementao do teorema de Lagrange para delimitao das razes reais de uma equao algbrica polinomial. Disponibiliza a funo limites(coef), onde coef um vetor que contm os coecientes da equao que deve ser passado de forma completa, ou seja, coecientes nulos, devem ser considerados. Exemplo Seja determinar os limites das razes reais da equao y = x3 6x + 2 = 0 > Carregando a funo limites(coef) getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\limites.sci); > Determinando os limites utilizando a funo limites(coef)

11/05/2010

Pgina 12 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

>limites() Surgir ento uma tela pedindo para entrar com os coecientes.(Figura 10), aonde voc usar os valores do exerccio (Figura 11)

Figura 10: Tela para entrar com os coecientes.

Figura 11: Coecientes do exemplo.

A equao dada de grau 3 Equao dada. Usada no clculo do LSRP 2 6R + R3 k = 1 M = 6.000000 Equao auxiliar para o clculo do LIRP f1(x) = f(1/x) = 0 1 6R2 + 2R3 k = 2 M = 6.000000 Equao auxiliar para o clculo do LIRN f2(x) = f(-x) = 0 2 6R + R3 k = 1 M = 6.000000 Equao auxiliar para o clculo do LSRN f3(x) = f(-1/x) = 0 1 + 6R2 + 2R3 k = 0 M = 1.000000 As razes positivas, se existirem, esto no intervalo: [.25 3.45] As razes negativas, se existirem, esto no intervalo: [3.45 .56]

11/05/2010

Pgina 13 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

3.2 Mtodos de clculo das razes reais de equaes algbricas e transcendentes


3.2.1 Mtodo da bisseo Este pacote est contido no arquivo bissec.sci. Trata-se de uma implementao do mtodo da bisseo. Disponibiliza a funo bissec(). Exemplo Seja calcular a raiz da equao f (x) = x sin(x) 1 = 0 pertencente ao intervalo [0, 2]. getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\bissec.sci); > Calculando a raiz usando a funo bissec() > bissec() Ao digitar o comando acima, aparecer uma janela pedindo para denir quem a varivel dependente (Figura 12) ao conrmar aparecera uma janela pedindo para denir a varivel independente (Figura 13).

Figura 12: Tela para denir a varivel dependente.

Figura 13: Tela para denir a varivel independente.

Conrmando estes dados, o programa solicitar a equao na qual se deseja encontrar a raz (Figura 14)e a prxima tela pede os limites inferior e superior, a preciso e o nmero de iteraes desejados (Figura 15)(cada um escolhe de acordo com o desejado).

Figura 14: Equao a ser resolvida.

Figura 15: Tela de limites, preciso e nmero de iteraes.

Com isso o programa ir mostrar na tela principal do Scilab a resposta da seguinte maneira: Resultados fornecidos pelo Mtodo da Bisseo

11/05/2010

Pgina 14 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Iter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

a 0.00000 1.00000 1.00000 1.00000 1.00000 1.06250 1.09375 1.10938 1.10938 1.11328 1.11328 1.11328 1.11377 1.11401 1.11414 1.11414 1.11414 1.11415 1.11415

b 2.00000 2.00000 1.50000 1.25000 1.12500 1.12500 1.12500 1.12500 1.11719 1.11719 1.11523 1.11426 1.11426 1.11426 1.11426 1.11420 1.11417 1.11417 1.11416

x 1.00000 1.50000 1.25000 1.12500 1.06250 1.09375 1.10938 1.11719 1.11328 1.11523 1.11426 1.11377 1.11401 1.11414 1.11420 1.11417 1.11415 1.11416 1.11415

fx -0.15853 0.49624 0.18623 0.01505 -0.07183 -0.02836 -0.00664 0.00421 -0.00122 0.00150 0.00014 -0.00054 -0.00020 -0.00003 0.00006 0.00001 -0.00001 0.00000 -0.00000

b-a 2.00000 1.00000 0.50000 0.25000 0.12500 0.06250 0.03125 0.01563 0.00781 0.00391 0.00195 0.00098 0.00049 0.00024 0.00012 0.00006 0.00003 0.00002 0.00001

Para a preciso estabelecida, qualquer valor do intervalo [1.11415 1.11416] pode ser tomado como raiz

3.2.2 Mtodo da falsa posio Este pacote est contido no arquivo falpos.sci. Trata-se de uma implementao do mtodo da falsa posio. Disponibiliza a funo falpos(). Exemplo Seja calcular a raiz da equao f (x) = x 2 sin(x) 0.5 sabendo-se que prxima de 2. > Carregando a funo falpos() getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\falpos.sci); > Calculando a raiz usando a funo falpos() > falpos() Assim como no mtodo da bisseo, ter de preencher qual a varivel dependente, qual a varivel independente, a equao a ser resolvida, os limites superior e inferior, a preciso e o nmero de iteraes. Fazendo isso obtm-se na tela principal do scilab a resposta. No caso do exemplo, uma possvel soluo seria: Resultados fornecidos pelo Mtodo da falsa posio Iter 1 2 3 4 11/05/2010 a 1.80000 2.13865 2.16016 2.16125 b 2.30000 2.30000 2.30000 2.30000 x 2.13865 2.16016 2.16125 2.16131 fx -0.04746 -0.00243 -0.00012 -0.00001 Pgina 15 de 19 Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Para a preciso estabelecida 2.16131 raiz.

3.2.3 Mtodo de Newton-Raphson Este pacote est contido no arquivo nr.sci. Trata-se de uma implementao do mtodo da falsa posio. Disponibiliza a funo nr(). Exemplo Seja calcular a raiz da equao x2 2 = 0. Claramente, as razes desta equao so - 2 e + 2. > Carregando a funo nr() getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\nr.sci); > Calculando a raiz usando a funo nr() > nr() Tambm como o mtodo da bisseo, aparecer uma janela pedindo a varivel dependente (Figura 12), depois pedir a varivel independente (Figura 13). Em seguida a equao a ser resolvida (Figura 14)1 e depois a derivada da equao (Figura 16). Por ltimo deve-se a estimativa inicial (X0 ), a preciso desejada e o nmero de iteraes, conforme mostrado na Figura 17.

Figura 16: Derivada da equao a ser resolvida.

Figura 17: Tela de estimativa inicial, preciso e nmero de iteraes.

Na Figura 14 o equao mostrada de outro exemplo.

11/05/2010

Pgina 16 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

******** Mtodo de Newton-Raphson ********* ***************************************** Iter x fx dfx deltax 0 1.50000 0.25000 3.00000 1 1.41667 0.00694 2.83333 -0.08333 2 1.41422 0.00001 2.82843 -0.00245 3 1.41421 0.00000 2.82843 -0.00000 Para a preciso estabelecida 1.41421 raiz.

3.3 Mtodos de integrao numrica


Para os mtodos de integrao numrica necessrio o clculo do nmero de subdivises manualmente para depois utilizar qualquer uma das rotinas. 3.3.1 Mtodo do Trapzio Este pacote est contido no arquivo trapezio.sci. Disponibiliza a funo trapezio(). Exemplo 5 Seja calcular a integral 0 sin xdx. Claramente, as razes desta equao so - 2 e + 2. > Carregando a funo trapezio() getf(C:\Arquivos de programas\Scilab-5.1\macros\cn\trapezio.sci); > Calculando a integral usando a funo trapezio() > trapezio Depois de carregara funo trapezio ir aparecer uma tela solicitando o Limite inferior de integrao, conforme mostra a Figura 18, aps digitar em OK, aparecer uma tela solicitando o Limite superior de integrao conforme ilustra a Figura 19.

Figura 18: Lim. inf. de integrao.

Figura 19: Lim. sup. de integrao.

Aps conrmao (tecla OK) aparecer uma tela perguntando se a funo conhecida na sua forma analtica, conforme ilustra a Figura 20. Como a integral que ir ser resolvida conhecida, clique duas vezes em Sim. Ento surgir uma tela na qual dever ser escrita a funo a ser integrada, veja a Figura 21, nesse exemplo estamos integrando y = sin(x).

11/05/2010

Pgina 17 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

Figura 20: A funo conhecida na forma analtica?

Figura 21: Digite a funo

Na sequncia ser solicitado o Nmero de intervalos, conforme mostra a Figura 22, nesse exemplo usaremos 5 (cinco) intervalos entre 0 e 5. Aps conrmado o nmero de intervalos, aparecer duas telas, uma contendo a resposta, conforme mostra a Figura 23 e outra com a pergunta: Deseja ver o grco?, veja a Figura 24.

Figura 22: Nmero de intervalos

Figura 23: Resposta da integral.

Figura 24: Deseja ver o grco?

Caso queira ver o grco clique em Sim e ser pedido o nmero de pontos para o grco, conforme mostra a Figura 25, entre com o nmero de pontos e clique em OK e o grco surgir. Se no quiser visualizar o grco, clique em no e aparecer uma tela perguntando se deseja recalcular a integral, conforme mostra a Figura 26. Se clicar em sim o processo se repete, seno naliza.

Figura 25: Nmero de pontos

Figura 26: Deseja recalcular a integral?

1 a (1 Regra de Simpson) 3 1 Para utilizar o mtodo de Simpson de o procedimento o mesmo utilizado na regra do trapzio. A diferena 3 que utiliza-se o pacote contido no arquivo simpson1.sci. 3.3.2 Mtodo de Simpson

11/05/2010

Pgina 18 de 19

Prof. Marcelo Machado Cad

Clculo Numrico

UNIFACS - Universidade Salvador

Tutorial Scilab

3 a (2 Regra de Simpson) 8 3 Para utilizar o mtodo de Simpson de o procedimento o mesmo utilizado na regra do trapzio. A diferena 8 que utiliza-se o pacote contido no arquivo simpson2.sci. 3.3.3 Mtodo de Simpson

11/05/2010

Pgina 19 de 19

Prof. Marcelo Machado Cad

Você também pode gostar