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

UERJ/IPRJ/DMC/LABTRAN

III – Aplicação de Matemática Simbólica no MATLAB


Introdução

A simbologia matemática do MATLAB tem seu núcleo baseado no Maple, sendo


constituída por mais de cem funções. Nesta parte do curso daremos ênfase nos seguintes temas:

Disciplina Assunto
Álgebra Linear Inversa, determinante,autovalor, autoveto r,
decomposições, forma simbólica de
matrizes.
Cálculo Derivação, integração,limite, série de
Taylor.
Aritmética de precisão, variada e conversões Expressões matemáticas com precisão
variada, e conversões.
Soluções de equações Equações algébricas e simbólicas.
Transformadas Laplace e suas inversa.
Simplificação Métodos de simplificação .

O Symbolic Math Toolbox pode ser verificado digitando ‘ver symbolic’ na linha de
comando do MATLAB. Esta é a maneira mais prática de acessar o pacote.

Símbolos

Existem duas formas de expressar um simbolismo matemático no ambiente MATLAB:

• Cadeia de caracteres

>> diff (‘3 * x * x * x ‘) % derivada 3x3


ans=
9*x^2 % resultado

• Objeto ‘symbol’ definido pelas funções syms e sym

>> syms t % define o símbolo t


>> int (t) % calcula a integral de t
ans=
1/2 * t ^ 2 % resultado

>>b=sym (‘y’) % define o símbolo y e o armazena em b

>>a=(‘w’)
>>whos a b % mostra quem são as variáveis

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-1


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>n=2 ; % armazena um número sem impressão de comando
>>sqrt (b) / n % calcula a raiz quadrada de b e divide por n
ans=
1/2 * y ^ ( 1/2 ) % resultado

>> clear % limpa lista de variáveis da caixa workspace


>> clc % limpa a janela de trabalho

Conversão de símbolo em número

A função sym também é utilizada para expressar um dado numérico em diferentes


formas:

>>a = 0.8 % armazena o número na variável com impressão de comando


a=
0.8000
>>sym( a,’ f ‘) % ponto flutuante
ans=
‘ 1.999999999999 a’ * 2 ^ (-1)
>>sym( a,’ r ‘) % fração( racional )
ans=
4/5

Expressões e Matrizes Simbólicas


>>syms z
>>g=2 * cos(z) – z % define expressão simbólica g
>>int ( g )
ans=
2 * sin(z) – 1/2 * z ^2

>>syms y
>>mat=[ 6 –8 y ; 10 y 45 ; y 5 15 ] % define matriz simbólica mat
mat=
[ 6 ,-8 , y ]
[ 10, y, 45 ]
[ y , 5, 15 ]

>>det (mat) % determinante de mat


ans=
-220 * y –150 – y ^ 3

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-2


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
1-Crie a expressão simbólica:
 3sen ( t ) − cos ( t 2 ) 
a) f = ax2 + bx + c d) A =  
 cos ( 2t ) − sen ( t ) 
 

d ( 3x 2 + 2x + 5)
b) g =,

dx
e) ∫ 2 y3 dy
3cos ( w )
c) z =
 2w 
sen  
 w +1 

Exibição de resultados

Os resultados podem ser expressos de maneira formular ou gráfica.

>>p=det([ 6 –8 y ; 10 y 45 ; y 5 15 ])
p=
-220 * y –150 – y ^ 3

>>pretty( p ) % expressa o resultado formular


-220 y – 150 – y 3

Obs.É recomendável limpar a janela de variáveis para melhor manipulção de dados!


• ezplot : gera um gráfico 2D.
• ezplot3 : gera um gráfico 3D de uma fórmula paramétrica.
• ezsurf : gera um gráfico de superfície .

>>syms x
t=2 * sin( x ) + x ;
>>ezplot( t ) % gera o gráfico ( 2D )

Outro modo mais prático seria:

>>syms x
>>ezplot( 2 * sin( x ) + x )

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-3


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

>>syms x
>>ezplot3 ( 3*cos( x ) , sin( 2*x ) , x ) % gera o gráfico ( 3D )

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-4


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

>>syms x
>>ezsurf( cos( 2*x ) * y ) % gera gráfico de superfície

Álgebra Linear

>>syms t
>>mat=[ 7 5 –t; -5 2*t 10; t*t 15 8 ]
mat=
[ 7, 5, -t ]
[-5, 2*t , 10]
[t^2, 15, 8 ]
>>pretty(mat)

[7 5 -t ]
[ ]
[ -5 2t 10 ]
[ ]
[ t2 15 8 ]

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-5


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>num=[5 6 ; 7 8]
>>sym(num) % matriz simbólica
>>double(num) % matriz numérica

• Função diag
Considerando a matriz anterior:
>>diag (mat) % extrai a diagonal principal da matriz mat
ans=
[ 7 ]
[ 2*t ]
[ 8 ]

>>diag ([ t t*t 2*t 1 ]) % cria uma matriz diagonal


ans=
[ t, 0, 0, 0 ]
[ 0, t^2, 0, 0 ]
[ 0, 0, 2*t, 0 ]
[ 0, 0, 0, 1 ]

• Função triu e tril


Ainda com o mesmo exemplo.

>>triu(mat) % extrai a matriz triangular superior de mat


ans=
[ 7, 5, -t ]
[ 0, 2*t, 10]
[ 0, 0, 8 ]

>>tril(mat) % extrai a matriz triangular inferior de mat


ans=
[ 7, 0, 0 ]
[ -5, 2*t, 0 ]
[ t^2, 15, 8 ]

• Função det
Utilizando a matriz mat já criada.

>>det(mat) % determinante da matriz mat


ans=
187 * t – 850 + 50 * t ^ 2 + 2 * t ^ 4
>>pretty(det(mat))
187 t – 850 + 50 t 2 + 2 t 4

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-6


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

• Função inv

>>syms x
>>p=[ -x 1/x ; x*x*x exp(x) ]
p=
[ -x, 1/x ]
[ x^3, exp(x) ]

>>inv(p) % inversa da matriz p


ans=
[ -exp(x)/x/(exp(x)+x , 1/x^2/(exp(x)+x) ]
[ x^2/(exp(x)+x), 1/(exp(x)+x) ]

• Função eig

>>syms x
>>k=[ 1 x ; x x^2 ]
k=
[ 1, x ]
[ x, x^2 ]

>>[l,t]=eig(k) % retorna autovalores na variável t e a matriz


de autovetores na variável l
l=
[ 1, -x ]
[ x, 1 ]
t=
[ x^2+1, 0 ]
[0 , 0]

Funções de Cálculo

• Derivada

>>syms x
>>a=diff( 3*sin( 2*x )+cos( x )*x )
a=
6 * cos( 2*x ) - sin( x ) * x + cos( x )
ezplot( a )

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-7


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

>>syms x
>>t=diff( 1/exp( x )+ x * x * log( x ))
t=
-1/exp( x )+ 2*log( x ) * x + x
>>pretty( t )
1
- + 2 log( x ) x + x
exp( x )

• Integral

>>syms y
>>int( y * y * y + exp( y ) + sin( y ))
ans=
1/4 * y ^ 4 + exp( y ) – cos( y )

>>f=int( y / exp( y ) + y * y )
f=
-y / exp( y ) – 1 / exp( y ) + 1/3 * y ^ 3
>>pretty( f )
y 1
3
- - + 1/3 y
exp( y ) exp( y )

>>ezsurf( f )

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-8


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

>>ezplot( f )

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-9


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

>>ezplot( f, [ -6, 0 ] )

• Limite

Sintaxe

>>syms x
>>limit( f, x, a ) % lim f ( x )
x? a

>>syms t
>>syms z
>>limit ( 3 + 2 * t/z, z, inf ) % lim 3 + 2 t/z
z? 8
ans=
3

>>limit ( cos( t ) * t ) % lim cos( t ) t


t? 0

ans=
0

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-10


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
A função limit possui um outro parâmetro para indicar a direção de aproximação de
limite(‘right’, ‘left’).

>>syms z
>>limit( 3/z, z, 0, ‘right’ ) % lim 3/z ( tendendo a 0 pela direita )
z? 0+

ans=
inf

>>limit( 3/z, z, 0, ‘left’ ) % lim 3/z ( tendendo a 0 pela esquerda )


z? 0 -

ans=
- inf

Extra:
Função symsum : executa somatórios
Sintaxe:

n
>>symsum(x*x,1,n) % ∑x^2
1

• Série de Taylor

Sintaxe

taylor( f, n, a ) 8
% ? ( x-a ) n f (n) (a)
n=0
n!

>>syms t
>>syms z
>>taylor( t * t * t, 3, z) % polinômio t 3 , grau 3 em função de z
ans=
z^3+3*z^2*(t–z)+3*z*(t– z) ^2

x=taylor( t * t * t, 3, z ) ;
>>pretty( x )
z 3 + 3z 2 ( t-z )+ 3z ( t-z ) 2

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-11


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>syms t
>>taylor( exp( t ) )
ans=
1 + t +1/2 * t ^ 2 + 1/6 * t ^ 3 + 1/24 *t ^ 4 + 1/120 * t ^ 5

>>pretty( taylor( exp( t ) ) )

1 + t + 1/2 t2 + 1/6 t3 + 1/24 t4 + 1/120 t5

Aritmética de precisão variada

• Função vpa

>>mat=[15 6; 7 23]
mat=
15 6
16 23
>>x=inv(mat)
x=
0.0759 -0.0198
-0.0231 0.0495
>>vpa(x,3) % Retorna o valor numérico da matriz x com a
precisão solicitada (3)
ans=
[ .759 e-1, -.198 e-1 ]
[-.231 e-1, .495 e-1 ]
>>pretty( vpa(x,3) )
[ .0759 -.0198 ]
[ ]
[ -.0231 .0495 ]

• Função digits

>>digits(10) % Configura a precisão numérica para efeito de


cálculo simbólico
>>digits
Digits=10

• Função double

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-12


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>mat=sym(‘[1 2 9; 4 6 3]’);

>>double(mat) % Converte matriz simbólica em matriz

numérica
>>whos ans mat % Conferindo a transformação

Name Size Bytes Class


mat 2x3 436 sym object
ans 2x3 48 double array

Grand total is 18 elements using 484 bytes.

• Função poly2sym

>>p=poly2sym([2 6 7]) % Converte polinômio numérico em símbolo


p=
2* x^2 + 6*x + 7

>>syms y
>>q=poly2sym([5 7 9 4], y) % Conversão com a variável y
q=
5*y^3 + 7*y^2+ 9*y + 4

• Função sym2poly

>>syms x
>>s=sym2poly(x*x*x + 2*x*x + x+1) % Converte polinômio simbólico em
vetor numeral
s=
1 2 1 1

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-13


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB

• Função char

>>q=poly2sym([4 8 12])
q=
4*x^2 + 8*x + 12
>>r=char(q) % Converte símbolo em cadeia de caracteres
r=
4*x^2 + 8*x + 12

(Nota:sym2poly(r) não regressa para vetor, pois esta equação não é


simbólica )

• Função latex

>>syms x
>>w=taylor(exp(x))
w=
1 + x + 1/2*x^2 + 1/6*x^3 + 1/24*x^4 + 1/120*x^5
>>latex(w) % Converte objeto simbólico em formato La Tex
ans=
1+x+1/2\,{x}^{2}+1/6,{x}^{3}+1/24\,{x}^{4}+{\frac{1}{120}}\,{x}^{5}

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-14


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
Solução de equações

• Função solve

>>syms a
>>syms b
>>syms c
>>syms y
>>t=a * y * y – b * y + c % equação do segundo grau
t=
a *y^2-b*y+c
>>solve(t) % solução simbólica da equação
ans=
[ 1/2/a*(b+(b^2-4*c*a)^(1/2))]
[ 1/2/a*(b -(b^2-4*c*a)^(1/2))]
>>pretty (solve( t ))
[ ]
2 1/2
[ b+(b – 4 c a) ]
[ 1/2 ]
[ a ]
[ ] % fórmula de Báscara
[ ]
[ b-(b 2 – 4 c a ) 1/2 ]
[ 1/2 ]
[ a ]

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-15


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>syms x
>>syms y
k=solve(‘x*x + y*y=1’, ‘2*x+y’) % encontrar as intersecções entre uma
circunferência x2 +y2 =1 centrada em (0,0)
de raio 1 com a reta 2x+y
k=
x : [ 2 x1 sym ]
y : [ 2 x1 sym ]

>>pretty (k.x)
[ ] (v5/5,-2v5/5)
[ 1/5 5 1/2 ]
[ ]
[ ]
[ -1/5 5 1/2 ]
>>pretty (k.y)
[]
[ -2/5 5 1/2 ]
[ ]
[ ]
[ 2/5 5 1/2 ] (-v5/5,2v5/5)

• Função dsolve

>>syms x
>>syms q
>>t=dsolve(‘Dx=sin(q)’) % resolver a equação diferencial
dx/dt=sin(q)
t=
sin(q) * t + c1
>>diff(t) % conferindo o resultado
ans=
sin(q)

>>syms z
>>k=dsolve(‘Dz=2+z*z’) % resolvera equação diferencial
dz/dt=2+z 2
k=
2 ^ (1/2) * tan(2 ^ (1/2) * t+2 ^ (1/2) * c1)
>>diff(k) % conferindo o resultado
ans=
2 + 2 * tan(2 ^ (1/2) * t+2 ^ (1/2) * c1) ^ 2

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-16


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>syms x
>>syms y
>>w=dsolve(‘D2y= -2*x’) % resolver a equação diferencial
d2 y/dt2 = -2x
w=
- x * t ^ 2 + c1 * t + c2

Resolver o problema anterior com duas condições iniciais:


y(0)=2 e D(y)=1

>>g=dsolve(‘D2y=-2*x’,’y(0)=2’,’Dy(0)=1’) % problema de valor inicial


g=
-x*t^2+t+2

Sistema de EDO’s

Exemplo:
df dg
= 3 f + 4g = − 4 f + 3g f(0)=0; g(0)=1
dt dt
Resolução:

>>syms f g
>>S=dsolve (‘Df=3*f+4*g, Dg= -4*f+3*g, f(0)=0, g(0)=1’)
>>S.f=exp(3*t)*sin(4*t)
>>S.g=exp(3*t)*cos(4*t)

2-Resolva o sistema com quatro equações e quatro incógnitas:

n p
d+ + =q n + d + q − p = 10
2 2
n
q+d + = p q + p − n − 8d = −1
4

3-Resolva os seguintes problemas de valor inicial:


d2 y
y ( 0) = 0
dy
a) 2 = cos ( 2t ) − y ( 0) = 0
dt dt

d2y dy  4
y (1) = 1
dy
b) x 2 + 7 x + 5 y = 10 −   (1) = 0 (resolver em relação à ‘x’)
 x
2
dx dx dx

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-17


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
• Função finverse

>>syms t
>>g=cos(2*t)-1
g=
cos( 2*t ) – 1
>>finverse(g) % inversa da função g
ans=
1/2 * acos( 1+t )

• Função compose

>>syms t
>>f=cos(t)
f=
cos(t)
>>g=exp(t)+1
g=
exp( t ) + 1
>>a1=compose(f,g) % a1=f(g(t))
a1=
cos(exp(t)+1)
>>a2=compose(g,f) % a2=g(f(t))
a2=
exp(cos(t))+1

Transformada

• fourier
>>syms x
>>syms t
>>g=fourier(sin(x*x),t) % tranformada de Fourier
g=
-1/2* i * fourier(exp(i*x^2),x, t)+1/2* i * fourier(exp(-i*x^2),x,t)

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-18


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
• ifourier
>>syms x
>>syms t
>>g1=ifourier(exp(-x*x),x,t) % inversa da tranformada de fourier
g1=
1/2/pi ^ (1/2) * exp(-1/4 * t^2)
>>pretty(g1)
exp(-1/4 t 2 )
1/2

pi 1/2

Obs.: Heaviside – função degrau : u(t)


Dirac - função impulso : d(t)
• laplace

>>syms y
>>f=laplace(cos(y)) % transformada de laplace
f=
s / (s^2+1)
>>pretty(f)
s

s2 + 1

• ilaplace

>>syms x
>>ilaplace(x / (x^2+1)) % inversa da transformada de laplace
ans=
cos(t)

• ztrans

>>syms y
>>x=ztrans(2*y*y) % transformada z
x=
2 * z * (z+1) / (z-1) ^ 3

• iztrans

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-19


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
>>syms x
>>iztrans(x*(1+x) / (x-1)*(x-1)*(x-1)) % inversa da transformada z
ans=
iztrans(x^3,x,n) + iztrans(-x,x,n)

4-Aplique a tranformada de Laplace para resolver:


a) ∫ e −at u ( t ) e− st dt
0


b) ∫ t 2 u ( t ) e− st dt
0


c) ∫ sen ( wt ) u ( t ) e − st dt
0

−t
 
d) f ( t ) =  1 − e T  u ( t )
 

Simplificação

• Função simplify (útil para funções trigonométricas)

>>syms z
>>q=z*z*z - 3*z + sin(z)*sin(z) - 5*z*z*z + cos(z)*cos(z) ;
>>simplify(q) % simplifica a expressão q
ans=
-4 * z^3 – 3*z + 1

>>a=sym(‘1/2*t + 6’)
>>simplify(a)
ans=1/2*(1 + 12*t)/t

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-20


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
• Função expand

>>syms t
>>a=( t-1 )*( t-1 )
a=
( t-1 ) ^ 2

>>b=t * t
b=
t^2

>>ab= a* b
ab=
( t-1 )^2 * t^2

>>expand(ab) % expande a expressão(distribui)


ans=
t^4 - 2* t^3 + t^2

• Função factor

>>syms g
>>f=g*g*g – 2*g
f=
g^3 – 2*g

>>factor( f ) % retorna produto de plonômios


ans=
g* ( g^2 – 2 )

>>syms x
>>f=(x*x-1)*(x-2)*(x-3);
>>factor(f)
ans=(x-1)*(x+1)*(x-2)*(x-3)

>>factor(sym(‘36’)) % fatoração numeral


ans=
(2)^2 * (3)^2

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-21


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
• Função numden

>>syms y
>>g=2/(y-1) * 1/(y-1) * (y-1)/(y+1)
>>[a,b]=numden(g) % retorna a simplificação da expressão no
formato numerador(a), denominador(b).
a=
2
b=
(y+1)*(y-1)

Obs.: Nota-se que a função numden é a função simplify com separação entre numerador e denominador!

• Função horner
>>syms t
>>syms z
e= 2*t*t*t*t*t - 6*t*t + 4*z*z*z + z
e=
2 * t^5 – 6 * t^2 + 4 * z^3 + z
>>pretty(horner(e)) % coloca variáveis de um polinômio em
evidência
(1+ 4z 2) z + (-6 + 2t 3 ) t 2

5-Simplifique as equações afim de se obter uma fórmula mais reduzida:

1 6 12
a) t = 3
+ 2 + +8
x x x

b) cos ( x ) + − sen ( x 2 )

6-Realize os somatórios e faça as operações necessárias para se chegar à resposta ideal:

∞  
1 π2
a) ∑  2
resposta ideal
1 
 ( 2 n − 1)  8

n ( 2n − 1)( 2n + 1)
resposta ideal 
n
b) ∑ ( 2n − 1)
2

1 3

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-22


UERJ/IPRJ/DMC/LABTRAN
III – Aplicação de Matemática Simbólica no MATLAB
Extra

Agora que você já está munido(a) com uma considerável gama de informações sobre a
matemática simbólica, resolva o problema final:

Faça o gráfico de seu arremesso

LABTRAN – Laboratório de Modelagem Multi-escala e Transporte de Partículas III-23

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