Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


scilab - ufrn, Notas de estudo de Engenharia Mecânica

Apostila de informatica para engenharia...programa scilab

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 22/09/2010

tamires-natja-3
tamires-natja-3 🇧🇷

1 documento

1 / 26

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal do Rio Grande do Norte
Centro de Tecnologia
Dept°. de Engenharia de Computação e Automação
Prof. Fábio Meneghetti Ugulino de Araújo Fevereiro de 2007 Natal - RN
C
CO
OM
MP
PU
UT
TA
AÇ
ÇÃ
ÃO
O
N
NU
UM
MÉ
ÉR
RI
IC
CA
A
N
No
ot
ta
as
s
d
de
e
A
Au
ul
la
a
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Pré-visualização parcial do texto

Baixe scilab - ufrn e outras Notas de estudo em PDF para Engenharia Mecânica, somente na Docsity!

Universidade Federal do Rio Grande do Norte

Centro de Tecnologia

Dept°. de Engenharia de Computação e Automação

Prof. Fábio Meneghetti Ugulino de Araújo Fevereiro de 2007 Natal - RN

CO COMMPPUUTTAAÇÇÃÃOO

NUNUMMÉÉRRIICCAA

No Nottaass ddee AAuullaa

ÍNDICE...............................................................................................................................................

Índice CCOOMMPPUUTTAAÇÇÃÃOO NNUUMMÉÉRRIICCAA.......................................................................................................... NNOOTTAASS DDEE AAUULLAAÍNDICE ..............................................................................................................

  • CCOOMMPPUUTTAAÇÇÃÃOO NNUUMMÉÉRRIICCAA..........................................................................................................
  • NNOOTTAASS DDEE AAUULLAAÍNDICE ..............................................................................................................
  • ÍNDICE...............................................................................................................................................
  • 1 INTRODUÇÃO AO SCILAB....................................................................................................
    • 1.1 GERAÇÃO DE MATRIZES ........................................................................................................
    • 1.2 VARIÁVEIS.............................................................................................................................
    • 1.3 COMANDOS ELEMENTARES ...................................................................................................
    • 1.4 NÚMEROS E EXPRESSÕES ARITMÉTICAS................................................................................
    • 1.5 FORMATO DE SAÍDA ..............................................................................................................
    • 1.6 OUTROS COMANDOS .............................................................................................................
    • 1.7 OPERAÇÕES COM MATRIZES..................................................................................................
    • 1.8 OPERAÇÕES ELEMENTO A ELEMENTO ...................................................................................
    • 1.9 OPERADORES RELACIONAIS ..................................................................................................
    • 1.10 OPERADORES LÓGICOS......................................................................................................
    • 1.11 FUNÇÕES ELEMENTARES ...................................................................................................
    • 1.12 VETORES E SUBSCRITOS ....................................................................................................
    • 1.13 GERAÇÃO DE TABELAS DE VALORES.................................................................................
    • 1.14 MANIPULAÇÃO DE LINHAS E COLUNAS DE MATRIZES.......................................................
    • 1.15 POLINÔMIOS ......................................................................................................................
    • 1.16 RECURSOS GRÁFICOS ......................................................................................................
    • 1.17 COMANDOS PARA CONTROLE DE FLUXO .........................................................................
    • 1.18 PROGRAMANDO NO SCILAB...........................................................................................
    • 1.19 FUNÇÕES NO SCILAB .....................................................................................................
  • 2 REPRESENTAÇÃO NUMÉRICA E ERROS .......................................................................
    • 2.1 INTRODUÇÃO E DEFINIÇÕES ................................................................................................
    • 2.2 MUDANÇA DE BASE.............................................................................................................
    • 2.3 REPRESENTAÇÃO NUMÉRICA...............................................................................................
    • 2.4 ARREDONDAMENTO ............................................................................................................
    • 2.5 PRECISÃO ............................................................................................................................
  • 3 SISTEMA DE EQUAÇÕES ALGÉBRICAS LINEARES ....................................................
    • 3.1 INTRODUÇÃO .......................................................................................................................
    • 3.2 FORMULAÇÃO......................................................................................................................
    • 3.3 CLASSIFICAÇÃO DOS SISTEMAS ...........................................................................................
    • 3.4 MÉTODOS DE SOLUÇÃO .......................................................................................................
    • 3.5 MÉTODO DE GAUSS .............................................................................................................
      • 3.5.1 Principio do método: ..................................................................................................
      • 3.5.2 Transformações Elementares......................................................................................
      • 3.5.3 Substituição Reversa...................................................................................................
      • 3.5.4 Triangulação...............................................................................................................
      • 3.5.5 Técnicas para Aprimorar a Solução...........................................................................
    • 3.6 MÉTODO DE JORDAN ...........................................................................................................
      • 3.6.1 Cálculo de Determinantes...........................................................................................
    • 3.7 MÉTODO DA FATORAÇÃO LU..............................................................................................
      • 3.7.1 Aplicação da fatoração LU na solução de sistemas de equações lineares:................
    • 3.8 MÉTODOS ITERATIVOS ........................................................................................................
      • 3.8.1 Introdução...................................................................................................................
      • 3.8.2 Forma Geral ...............................................................................................................
    • 3.9 MÉTODO DE JACOBI.............................................................................................................
    • 3.10 MÉTODO DE GAUSS-SEIDEL ............................................................................................
    • 3.11 CONVERGÊNCIA DOS MÉTODOS ITERATIVOS ....................................................................

1.2 Variáveis

Variável = expressão 12.4/6. ans =

s = 1-1/2+1/3-1/4+1/5-1/6+1/7... -1/8+1/9-1/10; ...? Continua uma expressão em outra linha ;? Ao final de uma expressão o cálculo é feito mas o resultado não é apresentado O nome de uma variável pode ter no máximo 24 caracteres e o primeiro caracter tem que ser uma letra.

O SCILAB na forma normal é “case-sentive” – variável A é diferente de a.

1.3 Comandos Elementares

  • whos ( ) → Lista e dimensiona as variáveis
  • clear → Remove todas as variáveis do espaço de trabalho
  • who → Lista as variáveis
  • predef →Predefine e protege variáveis, evitando de ser excluídas com clear.

1.4 Números e Expressões Aritméticas

  • Representação: 3, -3, 0.0001, 5.0e-20, 2.1e
  • Números complexos: %i = sqrt(-1): z = 3 + 4*%i;
  • Os cálculos são feitos internamente com 16 dígitos significativos (dupla precisão).

Operadores Aritméticos

+? Adição

-? Subtração *? Multiplicação /? Divisão à direita ? Divisão à esquerda ^? Potenciação

1.5 Formato de Saída

%pi %pi =

format ([type], [long])

type : “e” (exponencial) ou “v” (variável default)

long : nº máximo de dígitos (default: 8)

1.6 Outros Comandos

help : Informa sobre os comandos e funções do SCILAB.

Ex.: help inv, help help

quit : Encerra o Scilab. ( quit ou exit ) save : Grava variáveis em um arquivo

Ex.: save(‘varsalva’, a)? Grava a variável a no arquivo ‘varsalva’

load : Carrega as variáveis do arquivo.

Ex. load varsalva

1.7 Operações com Matrizes

  • Transposta de uma matriz: B = A'
  • Adição e Subtração: (^) C = A + B
  • Multiplicação: (^) C = A*B , (^) C = α*A
  • Divisão: o Divisão à esquerda: (^) X = A\Bsolução de (^) A *X = B o Divisão à direita: (^) X = A/Bsolução de (^) X *A = B

Obs.: A matriz deve ser quadrada com (^) det(A) ≠ 0

1.9 Operadores Relacionais

< Menor que

<= Menor ou igual

> Maior que

>= Maior ou igual

= = Igual

~ = Diferente

1.10 Operadores Lógicos

& and

| or

~ not

1.11 Funções Elementares

Através do comando HELP do Scilab tem- se acesso a uma lista de funções elementares ( Elementary Functions ), cada uma acompanhada de uma breve descrição

Ex.: sin , cos , abs , log , exp , etc.

1.12 Vetores e Subscritos

Geração automática: x = xi : dx : xf Ex.: x = 1:5 → x = [1 2 3 4 5] Ex.: x = 3:-1:1 → x = [3 2 1] Ex.: x = 0:0.1:0.2 → x = [0 0.1 0.2]

1.13 Geração de Tabelas de Valores

Dados dois vetores colunas x e y gera-se uma matriz [x y] Ex.: [0:0.1:0.5]’ ; y = [x.*sin(x)]; [x y] ans = !0. 0.! ! .1 .0099833! ! .2 .0397339! ! .3 .0886561! ! .4 .1557673! ! .5 .2397128!

1.14 Manipulação de Linhas e Colunas de Matrizes

O SCILAB apresenta grande facilidade na manipulação de vetores e matrizes, como mostra os exemplos abaixo:

Sejam A e B matrizes quadradas de ordem 10, então: A(1:5,3) → Apresenta 5 elementos da 3ª coluna de A. A(:,3) → Apresenta a 3ª coluna de A. A(1:5,:) → Apresenta as 5 primeiras linhas de A. A(1:5,7:10) → Apresenta as 5 primeiras linhas e as 4 últimas colunas de A, ou seja, apresenta uma sub-matriz de A contendo os 4 últimos elementos de cada uma das 5 primeiras linhas.

A(:,[3 5 10])=B(:,1:3)→ Substitui a 3ª, 5ª e 10ª colunas de A pelas 3 primeiras colunas de B. b = A(:) → Coloca todos os elementos da matriz A em um vetor coluna. x = [ ] → Representa uma matriz vazia (dimensão zero). A(:,[2 4]) = [ ] → Apaga as colunas 2 e 4.( A = [ ] apaga toda matriz ). size(A) → Fornece a dimensão da matriz; Ex.: [m n] = size(A). A = [1 2 3; 4 5 6; 7 8 9;]; B = [A(:,1) A(:,3)] B = !1. 3.! !4. 6.! !7. 9.! A = [A;[10 11 12]] A= !1 2 3! !4 5 6! !7 8 9! !10 11 12!

1.15 Polinômios

x = poly(0, “x”) → Define x como variável. p = poly(v, “x”, “flag”) → Define p como um polinômio em x.

onde:

“flag” = “coeff” ou “roots” v é um vetor contendo os coeficientes ou as raízes do polinômio

1.17 Comandos para Controle de Fluxo

comando for

Ex.:

m=3; n=3; for i=1:m for j=1:n A(i,j)=1/(i+j-1); end end

comando while

Ex.:

n=1; while sqrt(n)< n=n+1; end

comando if

Ex.:

if n< a=-n; else a=n; end

1.18 Programando no SCILAB

O SCILAB possui uma linguagem própria de programação sendo os programas armazenados em arquivos .sci ou .sce. Os programas são escritos, utilizando um editor de textos ASCII qualquer, como, por exemplo, o bloco de notas. Nas versões mais recentes, o SCILAB traz seu próprio editor ASCII, o SciPad, basta clicar sobre a opção EDITOR, da barra de menu do SCILAB.

Ex.: Programa para traçar a curva do seno de a * t. plotseno.sci // Este programa traça o gráfico da função y = seno(at) // A variável a deve estar definida no espaço de trabalho t = [0:0.1:2%pi]; y = sin(at); plot(t,y, “t”, “y”, “Gráfico do Seno de a * t”)*

No ambiente SCILAB digitam-se os comandos:

    • > a = 1; exec(“plotseno.sci”) O SCILAB abre uma janela gráfica na qual é mostrada a variação de y com t.

1.19 Funções no SCILAB

O SCILAB dispõe de um grande número de funções, que nada mais são do que programas com entrada de dados via argumentos. Ex.: sin(x).

2 REPRESENTAÇÃO NUMÉRICA E ERROS .......................................................................

2.1 Introdução e Definições

Fases do processo de solução de um problema real:

Na passagem de cada fase para a fase seguinte é inevitável que erros sejam incorporados. Por exemplo, a transformação do problema real em um modelo matemático introduz erros devido à desconsideração de fenômenos com grau de incerteza elevado (resistência do ar, velocidade do vento).

Já nas transformações entre as etapas designadas por (b), (c), (d) e (e) existe um outro tipo de erro associado:

O erro numérico. Esse erro depende fundamentalmente do tipo de representação numérica, bem como do volume de cálculos efetuado.

O erro numérico pode ser formalmente definido como: Ev = Valor verdadeiro – Valor aproximado. Podendo ser classificado como:

  • Erro de truncamento: é decorrente da representação de um processo infinito através de um processo finito.

Ex.: A avaliação de funções “implícitas” em computadores, tais como: exponencial, funções trigonométricas, etc., é realizada através do seu desenvolvimento em série de Taylor:

n!

f (x)^ h 3!

f (x)h 2!

f(x + h) = f(x) + f(x)h + f ′′ (x)h^2 + ′′′^3 +L + (n)^ n

  • Erro de arredondamento: é proveniente da representação finita de um número em um computador.

O arredondamento pode ser efetuado de duas formas: descarte, ou, assumindo o número significativo mais próximo.

A representação científica de um número é feita na forma:

xm × b^ e onde: m? mantissa b? base e? expoente

Problema Real (^) MatemáticoModelo NuméricoModelo Algoritmo

Implementação Solução Computacional

2.2 Mudança de Base

a) 1110 =? 2

3 2 1 0 ⇒ 1110 = 10112 = 1 × 2 + 0 × 2 + 1 × 2 + 1 × 2

b) 0 , 6510 =? 2

⇒ 0 , 6510 = 0 , 101001 L 2

c) 11 , 2510 = 11 + 0 , 25

⇒ 0 , (^012)

10

3 2 1 0 1 2 2 8 0 2 1 0 0 , 25 11 , 25

= × + × + × + × + ×−+ × −=

2.3 Representação Numérica

Representação Geral: x d d dtt βe β β β

= ±^ + +L+

(^122)

onde:

di? inteiros / 0 ≤ di ≤ β − 1 ; i = 1 , 2 ,L,n

t? nº de dígitos significativos e? expoente ; e^ i ≤e≤es

Ex1: Para β = 10

0 10 2 103 10

= +^ + + ⇒ 2

41 , 510 = 0 , 41510 × 102 = 10^^4 + 1012 + 1053 ⋅ 10

Ex2: A representação binária do decimal 5 é: 1012 = 1 × 22 + 0 × 21 + 1 × 20 = 510.

De acordo com a representação geral, tem-se: (^) 2 2 3 2 3 23 2

= × =^ + + , onde

o expoente 3 pode ainda ser escrito na forma binária: 310 = 112.

Exercício: Uma máquina de 16 bits possui β = 4 e t = 10. Determinar:

a) O maior número que pode ser representado na máquina; b) A sua precisão. c) Representar o número 15,25 nessa máquina. Solução:

16 bits t

Logo, como β = 4 ( β – 1 = 3), os valores máximo e mínimo para o expoente serão, respectivamente:

0 33 33 e 1 3 33 3

e, o maior número que pode ser representado nesta máquina é:

0 3 3 3 3 3 3 3 3 3 3 0 3 3 3 3

que equivale:

⋅^ ⇒

= ^ + + + + + + + + + e xmáx (^) 4 4

2 3 4 5 6 7 8 9 10

xmáx = [ 3 ⋅ 49 + 3 ⋅ 48 + 3 ⋅ 47 + 3 ⋅ 46 + 3 ⋅ 45 + 3 ⋅ 44 + 3 ⋅ 43 + 3 ⋅ 42 + 3 ⋅ 41 + 3 ⋅ 40 ] ⋅ 4 −^10 ⋅ 4 e

xmáx = [1.048.575 ] ⋅ 4 −^10 ⋅ 4 e ≈ 1 ⋅ 4 exmáx ≈ 4 e

onde: (^) ⋅ =[ (^) ⋅ + ⋅ + ⋅ + ⋅ ] (^) ⋅ ⋅ ⇒ 

= ^ + + +^43210 −^44

e^3^ e =^255 ⋅^4 −^4 ⋅^44 =^255

logo: xmáx ≈^4255 =3,3520×^10153

A precisão da máquina em questão é dada por: 10 9,5367^10 -^7106 4

precisão ≤ 1 =^1 = × ≈ − βt

O número 15,25 é representado nessa máquina, por:

; e 0 ,^2510 0 ,^14 1,

× ⇒ =

logo: 15 ,^2510 =^33 ,^14 =(^0 ,^331 ×^42 ) 4 ≡ 0 3 3 1 0 0 0 0 0 0 0 0 0 0 0 2

3 SISTEMA DE EQUAÇÕES ALGÉBRICAS LINEARES ....................................................

3.1 Introdução

São inúmeros os problemas de engenharia que recaem na solução de um sistema de equações lineares.

  • Como exemplos, podemos citar:
  • O cálculo de esforços em problemas de estática;
  • O cálculo de tensões e correntes em um circuito elétrico composto por elementos lineares;
  • O balanço de massa em sistemas físicos lineares;
  • A solução de equações diferenciais lineares por métodos numéricos como elementos finitos e diferenças finitas, etc.

3.2 Formulação

Forma geral:

n1 1 n2 2 nn n n

31 32 3n n 3

21 22 2n n 2

11 12 1n n 1

a x a x ... a x b

a x1 a x2 ... a x b

a x2 a x2 ... a x b

a x1 a x2 ... a x b

M M M M

;

onde a e b são constantes e n é o número de equações.

Representação Matricial:

n n nn n n

n

n

b

b

b

x

x

x

a a a

a a a

a a a

2

1 2

1

1 2

21 22 2

11 12 1

; ou: Ax = b

3.3 Classificação dos Sistemas

Incompatível. Ex.: 

4 x 2 x 18

2 x x 6 1 2

1 2

Compatível: 



Homogêneo(b= 0)

Indeterminado-diversassoluções.

Determinado-soluçãoúnica

3.4 Métodos de Solução

Classificam-se, numericamente, em Diretos e Iterativos. Os métodos mais comuns são:

3.5.4 Triangulação

Ex.: (^) Ax b

x

x

x

x x x

x x x

x x x ⇔ = 

= 



 

 ⇔ − + =−

  • − =

  • − = . 1

3

5

2 3 1

4 4 3

2 3 1

2 3 1

4 4 3 3

2 3 5

3

2

1

1 2 3

1 2 3

1 2 3

Inicialmente, escreve-se a matriz aumentada do sistema (B = [A | b] ): 

 

 

− −

2 3 1 1

4 4 3 3

2 3 1 5 B (^0 )

Tomando-se o elemento da diagonal principal, a 11 (^0 ), como pivô, encontra-se os multiplicadores para as linhas seguintes:

11 (^0 )

( 0 ) ( 310 ) 31

11 (^0 )

( 0 ) 21 (^0 )^21

=− =− = −

a

m a

a

m a

Em seguida, substituem-se as linhas originais pela seguinte combinação linear:

[ ] [ ] [ ] [ 2 3 1 5 ] [ 2 3 1 1 ]

4 6 2 10 4 4 3 3

2 3 1 5

( 31 ) ( 310 ) ( 10 ) ( 30 )

( 21 ) ( 210 ) ( 10 ) ( 20 )

( 11 ) 1 ( 0 )

− − − + − −

− − − + −

− ⇒  

 

= +

= +

=

L m L L

L m L L

L L ⇒ 

− −

− − −

0 6 2 6

0 2 1 7

2 3 1 5 B (^1 )

Toma-se agora o elemento da diagonal principal, na linha seguinte, a ( 22^0 ), como pivô e encontra-se o multiplicador para as linhas que se sucedem a esta.

3 2

6 22 (^1 )

( 1 ) 32 (^1 ) (^32) − =− = − =−− a

m a

Em seguida, substituem-se as linhas originais pela seguinte combinação linear:

[ ] [ ] [ 0 6 3 21 ] [ 0 6 2 6 ]

0 2 1 7

2 3 1 5

( 32 ) 32 ( 1 ) ( 21 ) ( 31 )

( 22 ) ( 21 )

( 12 ) ( 11 )

  • − −

− − −

− ⇒  

 

= +

=

=

L m L L

L L

L L ⇒ 

 − − −

0 0 5 15

0 2 1 7

2 3 1 5 B (^2 )

Segue-se este procedimento até que se chegue ao pivô da penúltima linha da matriz, obtendo-se assim uma matriz com apenas elementos nulos abaixo da diagonal principal. Uma vez obtida uma matriz nesta forma, procedendo-se uma substituição reversa obtêm-se a solução do sistema triangular superior, representado, neste exemplo, pela matriz aumentada B(2) :

B

3

2

1

3

2 3

1 2 3 ( 2 ) x

x

x

x

x x

x x x

É importante relembrar que, esta é também a solução do sistema original.

Uma forma prática e compacta de realizar a triangulação é através da construção de tabelas. Matriz B Linha Multiplicador Matriz A Vetor b

Transformação

2 3 1

− ( − 62 ) =− 3 0 6 2

1 3

1 2 1 L L

2 L L

6^0 05^15 →−^3 L 4 + L 5

3.5.5 Técnicas para Aprimorar a Solução

Essas técnicas são úteis não apenas para o método de Gauss, mas também para métodos similares.

  1. Uso de mais dígitos significativos (dupla precisão);
  2. Pivotamento: Identificar se existem pivôs de pequeno valor e trocar linhas e/ou colunas de forma a ter os elementos da diagonal diferentes de zero e de maior valor absoluto. Isto minimiza o erro de arredondamento.
  3. Escalonamento: Minimiza o erro de arredondamento. Uma matriz triangular cujos elementos da diagonal principal são diferentes da unidade, pode ter cada uma de suas linhas divididas pelo seu respectivo elemento na diagonal principal.

Obs.: Em alguns problemas é necessário um estudo de condicionamento da matriz e um processo de otimização da solução se faz necessário.

3.6 Método de Jordan

Dado um sistema, o Método de Jordan consiste em obter, através de transformações elementares, um sistema equivalente cuja matriz de coeficientes seja diagonal.

Ex.: Ax b x

x

x

x x x

x x x

x x x ⇔ = 

3

2

1

1 2 3

1 2 3

1 2 3