Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aula
Ricardo Vargas Dorneles
27 de junho de 2016
1 / 324
Layout do Ambiente
2 / 324
Janela de Comando
4 / 324
Histrico de Comandos
5 / 324
6 / 324
7 / 324
Outras teclas
Alm das teclas com setas, pode-se usar outras teclas para
reeditar a linha de comando.
A seguir dada uma breve descri o destas teclas:
Seta para cima
retorna linha anterior
Seta para baixo
retorna linha posterior
Seta para a esquerda move um espao para a esquerda
Seta para a direita
move um espao para a direita
Ctrl seta esquerda
move uma palavra para a esquerda
Ctrl seta direita
move uma palavra para a direita
Home
move para o comeo da linha
End
move para o nal da linha
Del
apaga um caracter direita
Backspace
apaga um caracter esquerda
8 / 324
Diretrio Atual
9 / 324
Editor
Janela de Comando
Janela Grca
12 / 324
Primeiros passos
Abra o Matlab (Menu Iniciar->Matemtica->Matlab)
Na janela central (Command Window) digite:
2+3
3*2
32
3/2
14 / 324
15 / 324
+, -, *, /
resto de diviso inteira: rem(X,Y)
x(X) - arredonda em direo a zero
para obter o quociente da diviso inteira utiliza-se a funo x.
Assim, o equivalente a 5\2 seria x(5/2).
round(X) - arredonda para o inteiro mais prximo
potenciao: operador (ex: 3 2)
sqrt(X): raiz quadrada de X
16 / 324
Funes trigonomtricas:
asin(X): arco seno
atanh(X): arco tangente hiperblico
cosh(X): coseno hiperblico
sinh(X): seno hiperblico
acos(X): arco coseno
asinh(X): arco seno hiperblico
acosh(X): arco coseno hiperblico
atan(X): arco tangente
tan(X): tangente de X
atan2(x,y):arco tangente de x/y
cos(x): coseno
sin(X): seno
tanh(X): tangente hiperblica
pi: gera o valor de pi (3.1415)
18 / 324
Digite agora:
a=1
b=4
c = 3;
19 / 324
Digite:
delta = sqrt (b 2 - 4 * a * c)
r1 = (-b+delta)/(2*a)
r2 = (-b-delta)/(2*a)
20 / 324
22 / 324
24 / 324
Comando de escrita
A escrita de mensagens e valores pode ser feita pelo comando
disp. Seu formato :
disp(texto, varivel ou expresso)
O comando disp exibe apenas um elemento. Se for necessrio
exibir mais de um, os elementos devem ser concatenados com
o operador [ ]. Por exemplo:
disp([a,b]) ou disp([a b])
O operador [ ] exige que os operandos sejam todos do mesmo
tipo.
Assim, se um dos elementos da lista um texto (p.ex.: 'O
valor ' ), os valores numricos devem ser convertidos tambm
para texto com a funo num2str(valor).
Ex: disp(['O resultado ' num2str(valor)])
25 / 324
+ a2 x 2 + a1 x + a0 = 0
26 / 324
= q3 + r 2
q
3
= r+ d
q
3
= r d
Deve-se tomar cuidado ao extrair a raiz cbica no clculo de S e T. Se o nmero a ser extrada a
raiz for negativo, a aplicao do operador de potenciao (x (1/3)) retorna uma das razes
complexas ao invs da real necessria no mtodo.
Pode-se extrair a raiz real usando sign(x)*abs(x) (1/3)
27 / 324
=s +t
1
a
3 2
1
1
3
z2 = (s + t )
a + i
(s t )
2
3 2
2
1
1
3
z3 = (s + t )
a i
(s t )
2
3 2
2
28 / 324
Exerccios
Exerccios
1
31 / 324
ou
if condicao
comandos
end
se condicao
entao comandos
mse
if condicao
comandos
else
comandos
end
se condicao
entao comandos
senao
comandos
mse
32 / 324
elseif condio 2
comandos 2
end
Nesse caso, os "end"s dos dois if's so substitudos por um nico
"end"
33 / 324
if condio 1
comandos1
elseif condio 2
comandos2
elseif condio 3
comandos3
else comandos4
end
se
condio 1
entao comandos1
senao se condio 2
entao comandos2
senao se condio 3
entao comandos3
senao comandos4
mse
mse
mse
34 / 324
== - igual
- diferente
>, >=, <, <= - maior, menor, maior ou igual, menor ou igual
35 / 324
Ex:
clear
a=i n p u t ( ' Entre com o l a d o 1 : ' ) ;
b=i n p u t ( ' Entre com o l a d o 2 : ' ) ;
c=i n p u t ( ' Entre com o l a d o 3 : ' ) ;
i f a<b+c & b<a+c & c<a+b
i f a= =b & b= =c
disp ( ' Equilatero ' )
e l s e i f a= =b | b= =c | a= =c
disp ( ' Issceles ' )
e l s e d i s p ( ' Es ca l en o ' )
end
e l s e d i s p ( ' Sorry , no forma ' )
end
36 / 324
37 / 324
Figuras geomtricas
38 / 324
41 / 324
42 / 324
C00001950
Uma fbrica produz um recipiente de plstico com sua tampa
(tambm de plstico).
Ambos os componentes utilizam o mesmo equipamento para
fabricao (ou seja, no podem ser fabricados ao mesmo
tempo).
A fabricao do recipiente consome duas horas; a fabricao
da tampa consome uma hora.
Um cliente deseja o mximo de recipientes (com tampa) para
10 dias.
A fbrica trabalha 24 horas/dia e j dispe de uma quantidade
r de recipientes e t de tampas em seu estoque (no
necessariamente iguais).
Faa um algoritmo que leia os valores de r e t e informe o
mximo de conjuntos recipiente-tampa que ela pode fornecer
em 10 dias.
43 / 324
44 / 324
Observaes
Cada case pode conter uma lista de comandos;
Os valores nos cases no precisam estar em qualquer ordem;
Caso haja mais de uma entrada com o mesmo valor, o matlab
executar somente os comandos da primeira entrada
encontrada;
Pode-se ter entradas com mais de um valor. Nesse caso os
diferentes valores so agrupados com {}. Ex:
case {1, 2}
Comando fprintf
Seu formato :
49 / 324
comandos
50 / 324
Equivalncia entre o
enquanto e o while
i1
enquanto i<=10 faca
escreva(i)
ii+1
menquanto
i = 1;
while i<=10
end
disp(i)
i=i+1;
51 / 324
comandos
52 / 324
Equivalncia entre o
para e o for
for i=1:2:20
end
disp(i)
53 / 324
ex:
soma=0;
f o r i =1:10
soma=soma+i ;
end
d i s p ( soma )
como o incremento no especicado, assumido ser 1.
54 / 324
end
Altere o script para que escreva em cada linha, alm do seno,
tambm o coseno, tangente, cotangente (1/tangente), secante
(1/coseno) e cosecante (1/seno) de x.
55 / 324
end
end
56 / 324
57 / 324
Cores
Marcadores
smbolo descrio
smbolo
y
amarelo
.
m
lils
*
c
azul claro
o
r
vermelho
+
g
verde
x
b
azul escuro
s
w
branco
d
k
preto
v
<
>
p
h
descrio
ponto
asterisco
crculo
+
x
quadrado
losango
tringulo para baixo
tringulo para cima
tringulo p/ esquerda
tringulo p/ direita
pentagrama
hexagrama
58 / 324
end
59 / 324
a x i s ( [ 0 10 p i 1 1 ] )
hold on
f o r i =0:0.01:10 p i
plot ( i , sin ( i ) , 'v ' )
pause ( 0 . 1 )
hold on
60 / 324
61 / 324
62 / 324
63 / 324
64 / 324
65 / 324
h = v0y t at2
2
v0y t = at2
v0y = at2
tmax = 2va0y
=0
66 / 324
h = v0y t at2
h0 = v0y 22at
thnax = va0y
= v0y at = 0
2
hmax
v0y
2a
67 / 324
clear ;
v=i n p u t ( ' Entre com a v e l o c i d a d e ' ) ;
angulo=i n p u t ( ' Entre com o angulo ' ) ;
angr=angulo 2 p i /360;
vx=v cos ( angr ) ;
vy=v s i n ( angr ) ;
t f =2 vy / 9 . 8 ;
hmax=vy ^ 2 / ( 2 9 . 8 ) ;
a x i s ( [ 0 vx t f 0 hmax ] )
hold on
f o r t =0: t f /100: t f
a l t= vy t 9.8 t ^2/2
d i s t=vx t
plot ( dist , alt , ' ' )
hold on
pause ( 0 . 0 0 5 )
end
68 / 324
69 / 324
70 / 324
% p r i m e i r a s l i n h a s i g u a i s ao a n t e r i o r
a x i s ( [ 0 vx t f 0 hmax ] )
hold on
d i s t t o t a l =0;
f o r k=1:4
f o r t =0: t f /1000: t f
a l t= vy t 9.8 t ^2/2
d i s t=vx t
p l o t ( d i s t+d i s t t o t a l , a l t )
hold on
end
d i s t t o t a l=d i s t t o t a l+d i s t ;
v=v /2;
vx=v cos ( angr ) ;
vy=v s i n ( angr ) ;
t f =2 vy / 9 . 8 ;
a x i s ( [ 0 vx t f+d i s t t o t a l 0 hmax ] )
end
71 / 324
3
5
ou, de modo geral...
4X
sin (2(2k 1)ft )
(2 k 1 )
k =1
72 / 324
73 / 324
a x i s ( [ 0 2 4/ p i 4/ p i ] )
f =2;
hold on
f o r t =0:0.001:2
y=4/ p i ( s i n (2 p i f t )+1/3 s i n (6 p i f t ) ) ;
plot (t , y)
hold on
end
74 / 324
Comando subplot
75 / 324
76 / 324
77 / 324
78 / 324
79 / 324
80 / 324
81 / 324
155 20(t 8)
p /t > 8
e
t <= 15.75
82 / 324
83 / 324
0 t 0.5s
0.5 t
Faa um script no Matlab para plotar a corrente no circuito em
funo do tempo para 0 t 2 com um passo de 0.001.
/
p/
p
84 / 324
1.4t
14
+ 5sin( 10
(t 10))
v (t ) =
9
9 95 (t 35)
/
/
p/
p/
0 t 10 s
10 t 25 s
25 t 35 s
35 t 40 s
85 / 324
Resumo
plot(X,Y): plota o ponto X,Y na janela de grcos
axis([Xmin Xmax Ymin Ymax]): dene os limites da janela
grca
hold on: mantem a janela atual como ativa. Deve ser dado a
cada plot e axis
for id=1:2:10...end para id de 1 ate 10 passo 2 faca...
if...elseif...elseif...else...end se...senao se ...senao
se...senao...mse
clear: apaga todas as variveis
exp(x): e x
sin(x): seno(x)
pi:
86 / 324
Comandos
Break e Continue
87 / 324
Comandos
Break e Continue
88 / 324
89 / 324
f o r i =0:0.1:20 p i
Referncias
91 / 324
n=0
(2n + 1)(2n + 2)
converge para ln 2. Faa isso calculando o somatrio para:
a) n=50
b) n=500
c) n=5000
92 / 324
soma=0;
f o r i =2:2:100
soma=soma+i ;
end
d i s p ( soma )
93 / 324
b MDC
6 6 divide b, mas no divide a
6 5 no divide nenhum dos dois
6 4 no divide nenhum dos dois
6 3 Achei!!! divide a e b
94 / 324
a b divisores
30 50
2
divide a e b, entra no MDC
3
divide somente o a. No entra no MDC
15 25
5 25
5
divide a e b, entra no MDC
5
divide somente o b, no entra no MDC
1 5
1 1
m da fatorao. MDC 2 * 5 = 10
95 / 324
96 / 324
98 / 324
+ ...
99 / 324
...
1 3 5 7 9
Faa um programa no Matlab que leia um valor N e escreva a
soma dos N primeiros termos da srie a seguir:
1 1 1 1 1 1 1
+ + + +
+
+
+ ...
2 3 5 7 11 13 17
ou seja, a srie onde os denominadores so os nmeros primos
100 / 324
101 / 324
22446688
= . . . . . . . ...
2 13355779
Escreva um script em Matlab que gere uma tabela para o valor
de pela srie descrita utilizando de 1 at 100 termos.
Mostre tambm, para cada valor calculado, a diferena em
relao ao valor de pi fornecido pelo Matlab.
102 / 324
X
4
2
1
1
1
)
=
( )k (
16
8
k + 1
8
k + 4
8
k + 5
8
k + 6
k =0
Escreva um script em Matlab que gere uma tabela para o valor
de pela srie descrita utilizando de 1 at 10 termos.
Mostre tambm, para cada valor calculado, a diferena em
relao ao valor de pi fornecido pelo Matlab.
103 / 324
clear ;
clc ;
soma=0;
f o r k=0:9
soma=soma+(1/16)^k (4/(8 k+1) 2/(8 k+4) 1/(8 k+5) 1/(8 k +6));
f p r i n t f ( '%2d termos p i =%10.8 f e r r o =%10.8 f \n ' , k+1,soma , abs ( pi soma ) ) ;
end
104 / 324
106 / 324
a x i s ([ 10 10 10 1 0 ] )
hold on
y=0;
f o r i =0:1000
x=rem (8121 y +28411 ,134456)
y=rem (8121 x +28411 ,134456)
p l o t ( x /134456 20 10 , y /134456 20 10 , ' ' )
hold on
pause ( 0 . 0 1 )
end
107 / 324
108 / 324
Diagramas Polares
g=0.5
f o r t h e t a =0: p i /200:2 p i
r =2 g (1+ cos ( t h e t a ) )
p o l a r ( theta , r )
hold on
end
110 / 324
111 / 324
A equao da reta que passa por dois pontos (x1 ,y1 ) e (x2 ,y2 )
dada por y = ax + b onde a o coeciente angular, obtido a
partir de yx xy11 = xy22 xy11 .
y2 y1
a =
x2 x1 e b = y1 ax1
Faa um script no Matlab que leia as coordenadas de dois
pontos (x1 ,y1 ) e (x2 ,y2 ) e desenhe uma reta ligando os dois
pontos.
A reta deve ser plotada com 1000 pontos e os eixos devem
estar distanciados uma unidade das extremidades da reta.
112 / 324
113 / 324
114 / 324
115 / 324
116 / 324
Vs=10;
R1=50000;
R2=100000;
C=0.000001;
a x i s ( [ 0 0.35 0 Vs ] )
hold on
for t =0:0.001:0.35
p l o t ( t , Vs (1 exp( t /(R1 C ) ) ) )
hold on
p l o t ( t , Vs (1 exp( t /(R2 C ) ) ) , ' ' )
hold on
end
l e g e n d ( [ 'RC_1=' num2str (R1 C ) ] , . . .
[ 'RC_2=' num2str (R2 C ) ] , ' l o c a t i o n ' , ' b e s t ' )
117 / 324
118 / 324
( ) = E (e RC )
Vo t
119 / 324
120 / 324
121 / 324
Diagramas Polares
g=0.5
for theta=0:pi/200:2*pi
r=2*g*(1+cos(theta))
polar(theta,r)
hold on
end
123 / 324
124 / 324
Desenho de rbitas
1 cos
onde r e so a distncia e o ngulo do satlite medidos a partir
do centro da Terra, p um parmetro que especica o tamanho da
rbita e um parmetro que representa a excentricidade da rbita.
Considere um satlite com p=1000 kms. Desenhe a rbita desse
satlite para = 0, = 0.5 e = 0.7
r
125 / 324
A espiral de Arquimedes
126 / 324
A equao da reta que passa por dois pontos (x1 ,y1 ) e (x2 ,y2 )
dada por y = ax + b onde a o coeciente angular, obtido a
partir de yx xy11 = xy22 xy11 .
y2 y1
a =
x2 x1 e b = y1 ax1
Faa um script no Matlab que leia as coordenadas de dois
pontos (x1 ,y1 ) e (x2 ,y2 ) e desenhe uma reta ligando os dois
pontos.
A reta deve ser plotada com 1000 pontos e os eixos devem
estar distanciados uma unidade das extremidades da reta.
127 / 324
Vetores em Matlab
128 / 324
[B,I]=sort(A)
129 / 324
130 / 324
131 / 324
133 / 324
134 / 324
.* - multiplicao
./ - diviso
.\ - diviso esquerda (divide o operando da direita pelo da
esquerda)
. - potenciao
135 / 324
136 / 324
138 / 324
139 / 324
3
5
ou, de modo geral...
4X
sin (2(2k 1)ft )
(2 k 1 )
k =1
140 / 324
141 / 324
142 / 324
t=0:0.01:pi/4;
f=3;
s=t*0;
for k=1:50
s1=sin((2*k-1)*2*pi*f*t)/(2*k-1);
s=s+s1;
plot(t,s);
hold on
legend(['k=' num2str(k)])
hold o
pause(1);
end
143 / 324
a = [b b]
no exemplo acima, o vetor a recebe a concatenao de duas
ocorrncias do vetor b. Se b tinha 1 2 3 4 ento o vetor a
car com 1 2 3 4 1 2 3 4
a = [b 3]
Concatena o valor 3 ao nal do vetor, aumentando seu
tamanho em uma posio
144 / 324
145 / 324
aux=v(1);
v(1:9)=v(2:10);
v(10)=aux;
146 / 324
147 / 324
148 / 324
ex: I=iplr(V)
V00001100 - Escrever um algoritmo que l um vetor N(10) e o
escreve. Troque, a seguir, o 1 elemento com o ltimo, o 2
com o penltimo, etc at o 5 com o 6 e escreva o vetor N
assim modicado.
149 / 324
150 / 324
152 / 324
154 / 324
155 / 324
156 / 324
157 / 324
158 / 324
159 / 324
160 / 324
161 / 324
162 / 324
163 / 324
164 / 324
165 / 324
166 / 324
167 / 324
Matrizes
end
end
M(i,j)=0;
168 / 324
Dimenso
A dimenso da matriz determinada automaticamente pelo
MATLAB.
Exemplo:
B(2, 3) = 5; produz
B
0 0 0
0 0 5
0 0 0
0 0 0
1 2 3
169 / 324
1 2 5
3 9 0
Entrada do comando no
MATLAB
A = [1 2 5;3 9 0]
170 / 324
171 / 324
1
1,1
2,1
3,1
4,1
5,1
2
3
1,2 1,3
2,2 2,3
3,2 3,3
4,2 4,3
5,2 5,3
4
5
1,4 1,5
2,4 2,5
3,4 3,5
4,4 4,5
5,4 5,5
173 / 324
1
0
9
8
7
6
5
4
3
2
2
1
0
9
8
7
6
5
4
3
3
2
1
0
9
8
7
6
5
4
4
3
2
1
0
9
8
7
6
5
5
4
3
2
1
0
9
8
7
6
6
5
4
3
2
1
0
9
8
7
7
6
5
4
3
2
1
0
9
8
8
7
6
5
4
3
2
1
0
9
9
8
7
6
5
4
3
2
1
0
174 / 324
175 / 324
Ordenao de matrizes
176 / 324
1
2
3
1,1 1,2 1,3
2,1 2,2 2,3
3,1 3,2 3,3
4,1 4,2 4,3
5,1 5,2
5,3
4
1,4
2,4
3,4
4,4
5,4
5
1,5
2,5
3,5
4,5
5,5
177 / 324
3 2 4
5 7 3
1 2 3
M'
3 5 1
2 7 2 sum(M')
4 3 3
[9 15 6]
178 / 324
1 2 0
5 6
B = 4
7 8 9
179 / 324
180 / 324
1
1,1
2,1
3,1
4,1
5,1
2
3
1,2 1,3
2,2 2,3
3,2 3,3
4,2 4,3
5,2 5,3
4
5
1,4 1,5
2,4 2,5
3,4 3,5
4,4 4,5
5,4 5,5
181 / 324
1
2
3
1,1 1,2 1,3
2,1 2,2 2,3
3,1 3,2 3,3
4,1 4,2 4,3
5,1 5,2
5,3
4
1,4
2,4
3,4
4,4
5,4
5
1,5
2,5
3,5
4,5
5,5
182 / 324
1 2 3 4
0 1 2 3
9 0 1 2
8 9 0 1
7
6
5
4
3
2
8
7
6
5
4
3
9
8
7
6
5
4
0
9
8
7
6
5
5
4
3
2
1
0
9
8
7
6
6
5
4
3
2
1
0
9
8
7
7
6
5
4
3
2
1
0
9
8
8
7
6
5
4
3
2
1
0
9
9
8
7
6
5
4
3
2
1
183 / 324
184 / 324
185 / 324
186 / 324
Intervalos de ndices
Dada uma matriz, pode-se selecionar regies da matriz
especicando o intervalo de linhas e o de colunas com que se
deseja trabalhar no formato M(LInic:Ln, Cinic:Cn)
Para selecionar todas as linhas ou todas as colunas, utiliza-se
somente ":".
Exemplos:
A = [1 2 3; 4 5 6; 7 8 8]
A=
1 2 3
4 5 6
7 8 8
B = A(2:3,1:3)
B=
4 5 6
7 8 9
B = A(2:3,:)
B=
4 5 6
7 8 9
B(:,2) = []
B=
4 6
7 9
188 / 324
189 / 324
190 / 324
Comparao de matrizes
191 / 324
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
192 / 324
Reformatando matrizes
193 / 324
194 / 324
195 / 324
196 / 324
197 / 324
198 / 324
199 / 324
201 / 324
202 / 324
203 / 324
3
1
2
8
7
5
3
1
2
8
4
5
3
1
2
6
4
5
3
1
204 / 324
205 / 324
206 / 324
207 / 324
Matrizes de Hadamard
208 / 324
209 / 324
210 / 324
211 / 324
213 / 324
Exerccios
2 6
3 9
B
1 2
3 4
C
5
5 3
214 / 324
0 0 0
0 0 0
0 0 0
5 0 0
0 5 0
0 0 5
F
3 3
3 3
215 / 324
2
3
0
0
0
0
6
9
0
0
0
0
0
0
1
3
0
0
0
0
2
4
0
0
0
0
0
0
5
5
0
0
0
0
5
3
216 / 324
217 / 324
218 / 324
219 / 324
220 / 324
221 / 324
223 / 324
Matriz
B=
2x
5i
log (x ) + sin(y )
3 + 2i
Obs.: Usa-se a mesma notao para vetores com uma linha ou com
uma coluna.
224 / 324
Continuao
225 / 324
Manipulao de Matrizes
Exemplo:
Se Q =
2
0
1
2
5
3
0
2
5
10
6 0 5
20 4 3
3 9 8
5 5 6
15 20 25
e v = [ 1 4 5] ento,
Q(v, : ) =
2
2
5
3
10
6
5
15
0
20
5
6
25
e Q( : , v) =
2 0
0 4
1 9
2 5
5 20
5
3
8
6
25
227 / 324
228 / 324
229 / 324
1 0 0
0 1 0
0 0 1
5 6 7
1
0
0
5
2
3
4
Ento
A=[A;u] produz
0
1
0
6
0
0
1
7
230 / 324
1 0 0
0 1 0
0 0 1
5 6 7
1 0 0 2
0 1 0 3
0 0 1 4
2
3
4
Ento
A=[A,v] produz A =
A = [A u] produz um erro.
231 / 324
B = [ ]; B = [B; 1 2 3] produz B = [ 1 2 3 ], e
B = [ ];
for k = 1:3
B = [B; k k+1 k+2 ];
end
produz
1 2 3
2 3 4
3 4 5
232 / 324
233 / 324
eye(3)
1 0 0
0 1 0
ans =
0 0 1
B = [ones(3) zeros(3,2); zeros(2,3) 4*eye(2)]
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
4
0
0
0
0
0
4
234 / 324
diag(B)'
ans =
[1 1 1 4 4]
diag(B,1)'
ans =
1100
d = [2 4 6 8];
d1 = [-3 -3 -3];
d2 = [-1 -1];
D = diag(d) + diag(d1,1) + diag(d2,-2)
2 -3 0 0
0 4 -3 0
D = -1
0 6 -3
0 -1 0 8
235 / 324
236 / 324
Diviso direita
Ordem de operaes
238 / 324
Exemplos:
239 / 324
1
2
3
x'*x
ans =
14
240 / 324
x*x'
ans =
A*x
ans =
1 2 2
2 4 6
3 6 9
14
32
50
241 / 324
A 2
ans
30 36 42
66 81 96
102 126 150
A. 2
1 4 9
ans = 16 25 36
49 64 81
242 / 324
Funes de Matrizes
243 / 324
asqrt =
1.0000 1.4142
1.7321 2.0000
Asqrt = sqrtm(A) - matriz que multiplicada por si mesmo resulta
em A
Asqrt =
0.5537 + 0.4644i 0.8070 - 0.2124i
1.2104 - 0.3186i 1.7641 + 0.1458i
244 / 324
expaij = exp(A)
expaij =
2.7183 7.3891
20.0855 54.5982
expA = expm(A)
expA =
51.9690 74.7366
112.1048 164.0738
245 / 324
[A|I ] [I |A1 ].
Exemplo:
2 1 1 0
4 3 0 1
L2 (L2 2L1 )
2 1
0 1
1 0
2 1
247 / 324
L1 (L1 L2 )
2 0
0 1
3 1
2 1
L1 (L1 /2)
248 / 324
1 0
0 1
3
2
21
249 / 324
=
3
2
12
250 / 324
31
34
2
12
22
23
4
14
14
45
5 a
7
b 17
15
25 c = 27
53 d
37
252 / 324
1
2
3
P1 + P2 + P3
254 / 324
256 / 324
O Jogo da Vida
O jogo da Vida (Game of Life) uma simulao de populao
sobre uma matriz de 0's e 1's onde cada clula representa um
indivduo.
A clula com 1 representa um indivduo vivo e a clula com 0
representa um no-vivo
Nessa simulao, a cada iterao gerada uma nova matriz, a
partir da anterior, pelas seguintes regras:
Qualquer clula viva com menos de 2 vizinhos vivos morre (de
solido)
Qualquer clula viva com 2 ou 3 vizinhos vivos continua viva
na prxima gerao
Qualquer clula viva com mais de 3 vizinhos vivos morre (de
superpopulao)
Qualquer clula no-viva com exatamente 3 vizinhos vivos
estar viva na prxima gerao
258 / 324
259 / 324
Alguns padres
260 / 324
261 / 324
Difuso de Calor
262 / 324
Grcos sobrepostos
264 / 324
265 / 324
267 / 324
O mesmo grco acima pode ser feito com o comando line ao invs
de ser feito com o comando hold, conforme a seguir:
x = linspace(0,2*pi,100);
y1 = sin(x);
y2 = x;
y3 = x-(x.3)/6+(x.5)/120;
plot(x,y1)
line(x,y2,'linestyle','r')
line(x,y3,'linestyle','go')
axis([0 5 -1 5])
xlabel('x')
ylabel('Aproximao do sen(x)')
legend('sin(t)','Aprox. linear','Aprox. de 5a ordem')
268 / 324
271 / 324
pie
273 / 324
fplot
f(t) = t sen(t), 0 t 10
fplot('x.*sin(x)', [0 10*pi])
Note que a funo para ser desenhada deve ser escrita como uma
funo de x.
274 / 324
semilogx
x = e t , y = t,
0 t 2*
semilogy
x = t, y = e t , 0 t 2
loglog
x = e t , y = 100 + e 2t ,
0 t 2
polar
= 2 sen (5t), 0 t 2
278 / 324
ll
= 2 sen (5t), 0 t 2
x = r cos (t), y = r sen (t);
r
bar
= 2 sen (5t), 0 t 2
y = r sen (t);
r
errorbar
= x - x 3 /3!, 0 t 2
error = faprox sen(x ).
faprox
x = 0: .1: 2;
aprx2 = x - x. 3/6;
er = aprx2 - sin(x);
errorbar (x, aprx2, er);
281 / 324
barh
282 / 324
plotyy
y1 = e x sen(x), 0 t 10
y2 = e x
x = 1: .1:10;
y1 = exp(-x).*sin(x);
y2 = exp(x);
Ax = plotyy (x, y1, x, y2);
hy1 = get(Ax(1),'ylabel');
hy2 = get(Ax(2),'ylabel');
set (hy1, 'string','e -x .sen(x)');
set (hy2, 'string','e x');
283 / 324
area
y = sen(x)/x, -3 x 3
284 / 324
hist
285 / 324
stem
f = e t /5 sen t, 0 t
2
t = linspace(0, 2*pi, 200);
f = exp(-.2*t).* sin(t);
stem(t, f)
286 / 324
stairs
= 2 sen 5t, 0 t 2
y = r sen t
compass
z = cos + i sen ,
0 2
th = -pi: pi/5:pi;
zx = cos(th);
zy = sin(th);
z = zx + i*zy;
compass (z);
288 / 324
comet
y = t sen t, 0 t 10
contour
z = - (x 2 /2) + xy + y 2
-5 y 5
r = -5: .2:5;
[X, Y] = meshgrid (r, r);
Z = -.5*X. 2 + X.*Y + Y. 2;
cs = contour (X ,Y, Z);
clabel (cs);
290 / 324
quiver
z = x 2 + y 2 -5sen(xy),
-2 x 2, -2 y 2
r = -2: .2: 2;
[X, Y] = meshgrid (r, r);
Z = X. 2 + Y. 2 - 5.*sin(X.*Y);
[dx, dy] = gradient (Z, .2, .2);
quiver (X, Y, dx, dy, 2);
291 / 324
pcolor
z = x 2 + y 2 -5sen(xy),
-2 x 2, -2 y 2
r = -2: .2: 2;
[X, Y] = meshgrid (r, r);
Z = X. 2 + Y. 2 - 5.*sin(X.*Y);
pcolor (Z), axis('o');
shading interp
292 / 324
Grcos 3D
293 / 324
syms a,b,c,x
296 / 324
297 / 324
syms x
f=sin(x)
ezplot(f) ou ezplot(sin(x)): plota a funo no intervalo -2 a
2
h=ezplot(f,[x1 x2]): plota a funo no intervalo [x1,x2]
set(h,'Color','r','Marker','v'): dene cor e estilo da linha do
plot,onde 'h' recebeu o ezplot anterior
298 / 324
299 / 324
Integrao e Derivao
300 / 324
301 / 324
Clculo de Razes
302 / 324
z x y
2 y 2
303 / 324
i =1;
f o r x = 2:0.5:2
j =1;
f o r y = 2:0.5:2
end
end
i=i +1;
304 / 324
-1,-2.0
-1,-1.5
-1,-1.0
-1,-0.5
-1,0.0
-1,0.5
-1,1.0
-1,1.5
-1,2.0
-0.5,-2.0
-0.5,-1.5
-0.5,-1.0
-0.5,-0.5
-0.5,0.0
-0.5,0.5
-0.5,1.0
-0.5,1.5
-0.5,2.0
0,-2.0
0,-1.5
0,-1.0
0,-0.5
0,0.0
0,0.5
0,1.0
0,1.5
0,2.0
0.5,-2.0
0.5,-1.5
0.5,-1.0
0.5,-0.5
0.5,0.0
0.5,0.5
0.5,1.0
0.5,1.5
0.5,2.0
1.0,-2.0
1.0,-1.5
1.0,-1.0
1.0,-0.5
1.0,0.0
1.0,0.5
1.0,1.0
1.0,1.5
1.0,2.0
1.5,-2.0
1.5,-1.5
1.5,-1.0
1.5,-0.5
1.5,0.0
1.5,0.5
1.5,1.0
1.5,1.5
1.5,2.0
305 / 324
-1
-1
-1
-1
-1
0
0
0
0
0
1
1
1
1
1
2
2
2
2
2
-2
-1
0
1
2
-2
-1
0
1
2
-2
-1
0
1
2
-2
-1
0
1
2
-2
-1
0
1
2
306 / 324
307 / 324
mesh(Z)
308 / 324
surf(Z)
309 / 324
contour(Z)
310 / 324
311 / 324
disp(length(nd(Vle0)))
V00000300
disp(a(nd(rem(a,2)==0)))
disp(a(nd(rem(a,2)==1)))
ou
disp([a(nd(rem(a,2)==0)) a(nd(rem(a,2)==1))])
V00000700
a(nd(a<0))=abs(a(nd(a<0)))
V00000800
disp(max(V))
V00000900
[min pos]=min(V);
disp(['O menor elemento de N ' numstr(min) ' e a sua posio ' pos])
312 / 324
V00001100
disp(iplr(V))
V00002600
[max pos]=max(V);
V=[V(pos:10) V(1:pos-1)]
313 / 324
M00000100
disp(sum(diag(M)))
M00000150
disp(sum(diag(iplr(M))))
M00000200
disp(sum(sum(triup(M,1))))
M00000300
disp(sum(sum(triup(iplr(M),1))))
M00000350
N=triup(M,1)
disp(sum(sum(triup(iplr(N),1))))
314 / 324
M00000400
[mv lmv]=max(M)
[maior colmaior]=max(mv)
linmaior=lmv(colmaior)
M00000600
M=[M(1,:);M(4,:);M(3,:);M(2,:);M(5,:)]
M00000700
disp(isequal(M,eye(5,5)))
M00000800/900
[m p]=sum(M')
disp(p)
M00001000
SomaCol=sum(M)
Somalin=sum(M')
315 / 324
M00001010
if (isequal(M(1,:),ones(1,3)) || isequal(M(2,:),ones(1,3))||
isequal(M(3,:),ones(1,3)) ||isequal(M'(1,:),ones(1,3)) ||
isequal(M'(2,:),ones(1,3)) || isequal(M'(3,:),ones(1,3)) ||
isequal(diag(M),ones(1,3)) || isequal(diag(M'),ones(1,3)))
disp(1)
elseif ...
M00001100
dif=sum(M')-diag(M)
if (size(nd(dif>0))>0 && size(nd(dif<0))==0)
disp(1)
else disp(0)
316 / 324
317 / 324
319 / 324
320 / 324
321 / 324
324 / 324