Professional Documents
Culture Documents
s para Eng
2007
Estruturas
genharia
2
Srgio Cruz
Estruturas
genharia
>> Fichaaluno.morada='Coimbra'
Fichaaluno =
s para Eng
>> Fichaaluno.idade=22
Fichaaluno =
nome: 'Antnio da Silva'
aes Info
morada: 'Coimbra'
idade: 22
No exemplo
N l anterior,
t i o matlab
tl b vaii criar
i automaticamente
t ti t uma estrutura
t t
Aplica
A qualquer
l momento
t podemos
d aceder
d ao contedo
t d d
de cadad campo
escrevendo o nome da estrutura, seguida de um ponto final e por fim o
nome do campo que pretendemos consultar. Um exemplo:
3
Srgio Cruz
Estruturas
genharia
>> Fichaaluno.idade
ans =
s para Eng
22
Escrevendo apenas o nome da estrutura, o matlab ir mostrar todos os
campos que a compem:
ormticas
>> Fichaaluno
Fichaaluno =
nome: 'Antnio da Silva'
aes Info
morada: 'Coimbra'
idade: 22
Usando o comando fieldnames, podemos saber quais os campos que
compem
uma d
determinada
t i d estrutura:
t t
Aplica
>> fieldnames(Fichaaluno)
ans =
'nome'
'morada'
'idade'
4
Srgio Cruz
Estruturas
genharia
>> Fichaaluno(2)
ans =
nome: 'Brbara
'B b G
Guimares'
i '
Aplica
morada: 'Lisboa'
idade: 35
5
Srgio Cruz
Estruturas
genharia
>> Fichaaluno
s para Eng
Fichaaluno =
1x2 struct array with fields:
nome
ormticas
morada
idade
aes Info
Pode-se criar uma estrutura de uma nica vez com o comando struct. O
mesmo exemplo anterior:
Aplica
>> Fichaaluno=struct('nome','Antnio
Fi h l t t(' ' 'A t i F
Ferreira','morada','Coimbra','idade',23)
i '' d ' 'C i b ' 'id d ' 23)
Fichaaluno =
nome: 'Antnio Ferreira'
morada: 'Coimbra
idade: 23
6
Srgio Cruz
Toolbox de Matemtica Simblica - Introduo
genharia
Para indicar ao matlab que uma dada varivel (ou expresso) deve ser
encarada como objecto simblico usa-se o comando sym
7
Srgio Cruz
Toolbox de Matemtica Simblica - Introduo
genharia
a=
1.4142
ormticas
>> b=sqrt(sym(2))
b=
2^(1/2)
aes Info
Neste ltimo caso, foi indicado ao matlab que ele devia considerar o
nmero 2 como uma constante simblica pelo que ele devolve o resultado
sem efectuar qualquer clculo numrico (b ser encarado em todos os
Aplica
Havendo interesse
interesse, pode
pode-se
se a qualquer momento converter b para o valor
numrico correspondente:
8
Srgio Cruz
Toolbox de Matemtica Simblica - Introduo
genharia
>> double(b)
ans =
s para Eng
1.4142
Outro exemplo
p ilustrativo das diferenas
entre clculo numrico e
ormticas
simblico:
>> sym(2)/sym(3)+sym(1)/sym(5)
ans =
aes Info
13/15
>> 2/3+1/5
ans =
0 8667
0.8667
Aplica
9
Srgio Cruz
Toolbox de Matemtica Simblica - Introduo
genharia
x^2-1
b=
x-1
ormticas
>> simplify(a/b)
ans =
x+1
aes Info
10
Srgio Cruz
Toolbox de Matemtica Simblica - Introduo
genharia
>> syms a b c x
>> f=sym('a*x^2+b*x+c')
y ( ) % em alternativa p
pode-se fazer f=a*x^2+b*x+c
s para Eng
f=
a*x^2+b*x+c
Pode-se agora manipular f da forma desejada, tendo a garantia que o matlab
ormticas
syms x real)
11
Srgio Cruz
Toolbox de Matemtica Simblica
genharia
ans =
7
3
Mais exemplos demonstrativos do uso da funo solve:
12
Srgio Cruz
Toolbox de Matemtica Simblica
genharia
>> equacaosegundograu='a*x^2+b*x+c=0;
>> solve(equacaosegundograu)
( q g g )
s para Eng
ans =
1/2/a*(-b+(b^2-4*a*c)^(1/2))
1/2/a*(-b-(b^2-4*a*c)^(1/2))
ormticas
B=
a: [1x1 sym]
b: [1x1 sym]
c: [1x1 sym]
Aplica
x: [1x1 sym]
>> B.c % v qual o valor de c armazenado na estrutura B
ans =
-70
13
Srgio Cruz
Toolbox de Matemtica Simblica
genharia
S=
x: [2x1 sym]
y: [2x1 sym]
ormticas
>> S.x
ans =
aes Info
1
3
>> S.y
Aplica
ans =
1
-3/2
Neste ltimo exemplo, o resultado do sistema de equaes armazenado
numa estrutura, a qual contm as duas solues para x e y
14
Srgio Cruz
Toolbox de Matemtica Simblica
genharia
>> h=solve(equacaosegundograu);
>> pretty(h)
ormticas
[ 2 1/2]
aes Info
[ -bb + (b - 4 a c)) ]
[1/2 --------------------]
[ a ]
Aplica
[ ]
[ 2 1/2]
[ -b - (b - 4 a c) ]
[1/2 --------------------]
[ a ]
15
Srgio Cruz
Matemtica Simblica - Derivao
genharia
>> f=sym('3*x^3+4*x^2-5');
ormticas
>> diff(f)
ans =
9*x^2+8*x
aes Info
f=
3*x^3+4*x^2-5
>> diff(f)
ans =
9*x^2+8*x
16
Srgio Cruz
Matemtica Simblica Derivao / Integrao
g
genharia
3/4*x^4+4/3*x^3-5*x
Outro exemplo:
>> syms a b c x
Aplica
>> h=a*x^2+b*x+c;
>> int(h,b) % calcula a primitiva de h considerando que b a varivel independente
ans =
a*x^2*b+1/2*b^2*x+c*b
17
Srgio Cruz
Matemtica Simblica Integrao
g / Limites
genharia
f=
sin(x)
>> int(f,0,pi)
int(f 0 pi)
ormticas
ans =
2
aes Info
>> syms x
>> limit(sin(x)/x,x,0)
ans =
1
18
Srgio Cruz
Matemtica Simblica Limites / Somatrios
genharia
ans =
-1
>> limit(x/abs(x),x,0,'right') % calcula o limite direita
ormticas
ans =
1
Pode se tambm calcular somatrios
Pode-se somatrios, neste caso com o comando
aes Info
>> syms k
>> soma=symsum(1/k^2,1,inf)
soma =
1/6*pi^2
19
Srgio Cruz
Matemtica Simblica Srie de Taylor
y
genharia
>> syms x
>> g=exp(x*sin(x))
g=
ormticas
exp(x*sin(x))
>> t=taylor(g,12,2); % decompe g em srie de Taylor, obtendo os 12 primeiros
aes Info
termos no n nulos,
los em torno do ponto x=2.
2
>> syms x
Aplica
>> f=1/(5+4*cos(x));
>> M=taylor(f,8) % obtm os termos da srie de Maclaurin at (mas no
incluindo) o de ordem 8
M=
1/9+2/81*x^2+5/1458*x^4+49/131220*x^6
20
Srgio Cruz
Matemtica Simblica Equaes
q Diferenciais
genharia
tan(t+1/4*pi)
21
Srgio Cruz
Matemtica Simblica Equaes Diferenciais /
Algebra
genharia
>> y=dsolve('D3y=y','y(0)=1','Dy(0)=-1','D2y(0)=pi','x')
y=
s para Eng
1/3*pi*exp(x)-1/3*(1+pi)*3^(1/2)*exp(-1/2*x)*sin(1/2*3^(1/2)*x)+(-1/3*pi+1)*exp(-
1/2*x)*cos(1/2*3^(1/2)*x)
Para calcular os valores e/ou vectores prprios de uma matriz usa-se
usa se o
ormticas
ans =
16.4340
-2.4340
2 4340
Aplica
-0.0000
22
Srgio Cruz
Matemtica Simblica Factorizao e...
genharia
>> syms x
>> f=(x-3)^3+(x+1)^2-3
ormticas
f=
(x-3)^3+(x+1)^2-3
>> expand(f)
aes Info
ans =
x^3-8*x^2+29*x-29
>> factor(x^3+x^2-21*x-45)
f t ( ^3 ^2 21* 45)
Aplica
ans =
(x-5)*(x+3)^2
23
Srgio Cruz
Transformada de Laplace
genharia
exemplos:
>> syms t
ormticas
>> f=5*exp(-5*t)
f=
p( )
5*exp(-5*t)
aes Info
>> g=t^2+5*t-6;
>> laplace(g) % calcula a Transformada de Laplace de g
ans =
2/s^3+5/s^2-6/s
24
Srgio Cruz
Transformada de Laplace, Z e Fourier
genharia
>> syms s
s para Eng
De forma anloga
g Transformada de Laplace,
p , a Transformada Z e a
Transformada de Fourier podem ser calculadas por intermdio dos
comandos ztrans e fourier, respectivamente
25
Srgio Cruz
Transformada Z
genharia
n =0
Um exemplo concreto:
>> syms
y n
ormticas
>> f=n^4
f=
n^4
aes Info
>> sol=ztrans(f)
sol =
z*(z^3+11*z^2+11*z+1)/(z-1)^5
Aplica
>> pretty(sol)
3 2
z (z + 11 z + 11 z + 1)
-------------------------
5
(z - 1)
26
Srgio Cruz
Transformada de Fourier
genharia
Dois exemplos concretos:
>> syms x
ormticas
>> f=exp(-x^2)
f ( ^2)
f=
exp(-x^2)
>> fourier(f)
aes Info
ans =
pi^(1/2)*exp(-1/4*w^2)
>> h=x*exp(-abs(x))
h * ( b ( ))
Aplica
h=
x*exp(-abs(x))
>> fourier(h)
ans =
-4*i/(1+w^2)^2*w
27
Srgio Cruz
Transformadas Inversas
genharia
respectivamente
ormticas
28
Srgio Cruz