Вы находитесь на странице: 1из 16

1 AULA PRTICA DE CLCULO NUMRICO

Software utilizado: Matlab.

Comando diary
o DIARY salva em um arquivo texto a sesso MATLAB.
o DIARY NOME DO ARQUIVO salva todos os comandos utilizados
no prompt de comando do Matlab.
o DIARY OFF para de salvar a sesso.
o DIARY ON comea a salvar a sesso novamente.
EXEMPLO:
>> diary teste
>> a=2
a=
2
>> diary off
o OBS.: O
C:\MATLAB7\work

arquivo

fica

salvo

com

extenso

txt

no

diretrio:

1. MATLAB: Fundamentos
No MATLAB trabalhamos essencialmente com um tipo de objeto: uma matriz
retangular numrica cujos elementos podem se constituir de nmeros complexos. Em
diversas situaes, um significado especial atribudo a uma matriz 1x1, que representa um
escalar, e para matrizes com uma linha ou uma coluna, que representam vetores.
1.1. Entrada de uma matriz
Uma matriz pode ser introduzida de diversas maneiras:
Entrada atravs de uma lista explcita de seus elementos.
Gerando a matriz com uso de uma declarao ou funo.
Criando um arquivo M.
Carregando a matriz a partir de um arquivo de dados externo.
EXEMPLO:

1. Entrar com as matrizes A e

2
9
7

3
8

e B 1 e2

5 8 .

>> A=[sqrt(3) -2 pi;exp(-3) 9 3;5 -7 8]


A=
1.7321 -2.0000 3.1416
0.0498 9.0000 3.0000
5.0000 -7.0000 8.0000
>> B=[1-exp(2) 5 8]
B=
-6.3891

5.0000

8.0000

OBS.: A sada padro do matlab sempre ser decimal com 4 casas


decimais com arredondamento.

EXERCCIOS:
1. Entrar com as matrizes dadas no Matlab:

a) C

7 e

e 4

10

b) D

2
13
8

1.2. Nmeros e expresses numricas


Os nmeros so escritos na notao convencional, com ponto decimal opcional.
Uma potncia de 10 como fator de escala pode ser includa como sufixo. Alguns exemplos
de nmeros aceitos pelo MATLAB:
3 -99

0.0001

9.6397238

1.60210E-20

6.02252e23.

O MATLAB aceita exponenciais de 10 a 10 .


As expresses podem ser construdas usando os operadores aritmticos:
-308

+ adio
- subtrao

* multiplicao
/ diviso direita

308

\ diviso esquerda
^ potenciao.

EXEMPLO:
2
1. Calcule o valor da expresso numrica 2 (3)
3
3

>> 2-(-3)^3+(2/3)^2-sqrt(33-3^3)/12
ans =
29.2403
ou
>> 2-(-3)^3+(2/3)^2-(33-3^3)^(1/2)/12
ans =
29.2403
EXERCCIOS:

33 33 : 12

1. Calcule o valor numrico das expresses:


a) 2 3 1 0 25 3 2 5 3 : 25 Resposta: 0
2 3 27
2

b)

Resposta: 7

3 5 0 2

1
1
1
2

c)
3
4

1
4
5

Resposta: 5,6667

1
1

0,19 : 4 0,8 : 0,5


4
2

d)

Resposta: 0,35

0,1 0,01

e) 0,2 0,02
1

f)

g)

Resposta: 0,5

1
4 1
2

1

6

Resposta: 3

125 6 25 5

2 3

Resposta: 625

25 7

h)

12 10 3 10 4 10 9
3 10 1 10 4

Resposta: 0,4

i)

3,2 4000 0,0008


25,6 0,002

Resposta: 200

2. Calcule o valor de:


a)

64

b)

c)

7
9

3. Calcule o valor das expresses:

81

d) 25 2

e) 8 3

f)

a) 3 8 16 4 2 27 3
2

b) 4 0,5 4 0,25 8 3

Resposta: 5
Resposta: 1

1.3. Formato de sada


O resultado de qualquer declarao MATLAB mostrado na tela. O formato
numrico de sada pode ser controlado com uso do comando format. Esses formatos
afetam somente a forma como as matrizes so exibidas, e no como elas so calculadas ou
salvas.
Tipos de formatos

Format short Escala fixa com 5 dgitos (Padro Matlab).


Format long Escala fixa com 15 dgitos.
Format rat Resultado em forma fracionria.

EXEMPLO:
>> format short
>> a=sqrt(3)
a=
1.7321
>> format long
>> a=sqrt(3)
a=
1.73205080756888
>> format rat
>> a=sqrt(3)
a=
1351/780

2. OPERAES: Elemento por elemento

As operaes que de elemento por elemento de uma matriz ou vetor, no Matlab,


tem um ponto . antecedendo a operao desejada.
EXEMPLO:
1) Multiplicao matricial
2
3

2 3

3 2

3
10 10

2
15 15

>> A=[2 2;3 3]


A=
2
3

2
3

>> B=[3 3;2 2]


B=
3
2

3
2

>> A*B
ans =
10
15

10
15

2) Multiplicao de elemento por elemento


2
3

2 3

3 2

3
6

2
6

>> A
A=
2
3
>> B
B=

2
3

6
6

3
2

3
2

>> A.*B
ans =
6
6

6
6

3. OPERADORES
3.1. Operadores relacionais
Os operadores relacionais so <, >, <=, >=, = = e ~=. Os operadores relacionais
fazem comparao de elemento por elemento entre dois arranjos quaisquer. A resposta um
arranjo de mesmo tamanho, com elementos com valor igual a 1 quando a relao
verdadeira, e com elemento de valor 0 quando a relao falsa.
Operador
<
<=
>
>=
==
~=
EXEMPLO:
>> A = [2 7 6;9 0 5;3 0.5 6];
>> B = [8 7 0;3 2 5;4 -1 7];
>> A = = B
ans =
0
0
0

1
0
0

0
1
0

3.2. Operadores lgicos

Descrio
Menor que
Menor ou igual que
Maior que
Maior ou igual que
Igual que
Diferente que

1
0

Dadas duas matrizes A

1
0

para verificar o funcionamento das mesmas.


3.2.1. Operador & (and, e)
A
1
1
0
0

B A&B
1
1
0
0
1
0
0
0

EXEMPLO:
>> A=[1 1;0 0];
>> B=[1 0;1 0];
>> A&B
ans =
1
0

0
0

3.2.2. Operador | (or, ou)


A
1
1
0
0

B A|B
1
1
0
1
1
1
0
0

EXEMPLO:
>> A=[1 1;0 0];
>> B=[1 0;1 0];
>> A|B
ans =
1
1

1
0

3.2.2. Operador ~= (not, no)

1
1

e B

0
, efetuaremos as operaes lgicas
0

A ~A
1 0
0 1
EXEMPLO:
>> A=[0;1];
>> ~A
ans =
1
0
4. MANIPULAO DE VETORES E MATRIZES
Servem para criar o domnio de uma funo qualquer.
4.1. Gerando vetores
Os dois pontos, : , um caracter muito til no MATLAB. A declarao
x = 1:5
gera um vetor linha contendo os nmero de 1 a 5 com incremento de uma unidade.
EXEMPLO:
>> x=1:5
x=
1

Outros incrementos podem ser usados (y = valor inicial: incremento: valor final).
EXEMPLO:
>> y=0:pi/4:pi
y=
0

0.7854

1.5708

2.3562

3.1416

O uso de incremento negativo tambm possvel.

EXEMPLO:
>> z=6:-1:1
z=
6

4.1.1. Comando linspace


O comando linspace gera um vetor linearmente espaado. Utilizando o comando:

linspace(x1,x2) gerado um vetor com 100 pontos igualmente espaados entre x1


(valor inicial) e x2 (valor final).
linspace(x1,x2, N) gera N pontos entre x1 e x2.

EXEMPLO:
>> linspace(1,2,3)
ans =
1.0000

1.5000

2.0000

4.2. Subscritos
Os elementos de uma matriz podem ser referenciados por seus subscritos entre
parnteses. Uma expresso usada como subscrito arredondada para o inteiro mais
prximo.
EXEMPLO:

notao: A(linha,coluna)

>> A=[1 2 3;4 5 6;7 8 9]


A=
1
4
7

2
5
8

3
6
9

Pegando um elemento da matriz;

>> A(2,1)
ans =
4

Trocando um elemento da matriz

>> A(3,3)=A(1,1)-A(2,3)
A=
1
4
7

2
5
8

3
6
-5

Utilizando um vetor como subscrito

>> X=[-2 3 4 -1];


>> V=[3 1 4 2];
>> W=X(V)
W=
4

-2

-1

Escolhendo parte de matrizes

>> A=[1 2 3;4 5 6;7 8 9]


A=
1
4
7

2
5
8

3
6
9

>> A(1:2,2:3) (escolhemos a 1 e 2 linha com a 2 e 3 colunas)


ans =
2
5

3
6

5. GRFICOS

5.1. Grficos 2-D


Resumo: Comando plot

plot(x,y): para plotar os dados no vetor x versus vetor y.


plot(x,y,tipo da linha): para acrescentar o tipo e cor da linha, conforme tabela
abaixo.
plot(x1,y1,tipo 1,x2,y2,tipo2, ...): para plotar diversas linhas ao mesmo tempo.
Tipo da linha
. ponto
o circunferncia
x xis
+ sinal de mais
* asterisco
- linha contnua
: dois pontos
- . trao e ponto
-- trao-trao

Cor
y amarela
m magenta
c cyan
r vermelha
g verde
b azul
w branca
k preta

EXEMPLO:
(1) Representar graficamente a parbola de equao y = x2 + x 6, no intervalo -3 x 2.
>> x=-3:0.01:2;
>> y=x.^2+x-6;
>> plot(x,y)
0
-1
-2
-3
-4
-5
-6
-7
-3

-2.5

-2

6. RAZES DE UMA FUNO

-1.5

-1

-0.5

0.5

1.5

6.1. Comando ginput


Entra com dados usando o mouse sobre um grfico. D as coordenadas de (x,y) de
um grfico com o click do mouse.
Sintaxe
>> [x,y] = ginput (n) (onde n o nmero de pontos que desejo pegar no meu grfico)
EXEMPLO:
1. Plotar o grfico da funo abaixo e achar as aproximaes das razes com o
comando ginput.
a) f(x) = x2 3x + 2 (domnio: de -1 a 4, incremento: 0,01)
>> x=-3:0.01:2;
>> y=x.^2+x-6;
>> plot(x,y)
>> x=-1:0.01:4;
>> y=x.^2-3*x+2;
>> plot(x,y)
>> grid
>> [x,y]=ginput(2)
x=
0.9873 (raiz 1)
2.0012 (raiz 2)
y=

6
5
4
3
2
1
0
-1
-1

-0.5

0.5

1.5

2.5

3.5

-0.0073
0.0132
EXERCCIOS:
1. Plotar o grfico da funo abaixo e achar as aproximaes das razes com o
comando ginput.

a) f(x) = x3 8x + 6 (domnio: de -5 a 5, incremento: 0,01)

b)

y 6 x ln x 2

(domnio: de 0 a 2, incremento: 0,01)

c) f x e 2 x x 2 (domnio: de -2 a 2, incremento: 0,01)


d) f x 4 2 x x 2 (domnio: de -2 a 2, incremento: 0,01)
e) f(x) = 50x3 65x2 + 26x 3 (domnio: de 0 a 0,7, incremento: 0,01)
7. DERIVADA DE UMA FUNO SIMBLICA
7.1. Entrada de funo simblica
Para se entrar com uma funo de forma simblica no Matlab, devemos definir
quais as variveis independentes envolvidas nos clculos atravs do comando syms.
EXEMPLO:
Dada a funo y = x3, entrar com ela simbolicamente no Matlab.
>> syms x
>> y=x^3
y=
x^3
7.2. Derivada de uma funo simblica
7.2.1. Comando diff
Calcula a derivada de uma funo.
Sintaxe
>> diff (y,n) (onde: y = funo a ser derivada (deve estar com entrada na forma simblica);
n = ordem da derivada).
EXEMPLO:
Dada a funo y = x3, encontrar a derivada primeira e a derivada segunda da
mesma pelo Matlab.
>> syms x
>> y=x^3

y=
x^3
>> diff(y)
ans =
3*x^2
>> diff(y,2)
ans =
6*x
8. SUBSTITUIO DE VALORES NUMA FUNO
Para se encontrar o valor numrico de uma funo simblica utiliza-se o comando
inline. Este comando substitui o valor da varivel independente de interesse por um valor
numrico.
Sintaxe
>> g = inline (funo) (A funo deve estar na forma simblica)
EXEMPLO:
Dada a funo f(x) = x2 x +3, achar os valores de y para x = 1; x=10 e x = 3,54,
utilizando o comando inline.
>> syms x
>> y=x^3-x+3
y=
x^3-x+3
>> g=inline(y)

g=

Inline function:
g(x) = x.^3-x+3
>> g(1)
ans =
3
>> g(10)
ans =
993
>> g(3.54)
ans =
43.8219
EXERCCIOS:
1. Calcular o valor de f(x) nas funes abaixo:
a) f(x) = x3 8x + 6, para x = -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 e 5.
b) f(x) = 50x3 65x2 +26x 3, para x = -1, 0, 0.31, 0.554, 1, 2 e 3.

Вам также может понравиться