Você está na página 1de 14

Matlab 2

Processamento Simblico
Polinmios e Equaes
Grficos
Matlab Exerccio 2
1. Iniciar o programa Matlab.
H duas formas:
- Fazer duplo-clique sobre o atalho , existente no ambiente de trabalho do Windows
- Menu Iniciar > Programas > Matlab > Matlab 5.3
Processamento Simblico
Neste exerccio abordamos o processamento de expresses simblicas, tais como:
) cos(
2
x
1 5 3
2
+ x x
2
2x
dx
d
v = dx
x
x
f
}

=
1
2
O Matlab usa objectos simblicos para representar variveis e expresses. Uma expresso simblica uma
expresso que contm objectos simblicos e internamente, um objecto simblico uma estrutura de dados do
tipo cadeia de caracteres (string).
Criao e Utilizao de Objectos Simblicos
Os objectos simblicos podem ser criados atravs das funes sym e syms, cujos formatos so os seguintes:
- v = sym ( expresso ) ( cria a varivel simblica v para representar a expresso )
- syms v1 v2 ... vn ( cria as variveis simblicas v1, v2, ..., vn )
1. Criar a varivel simblica e para representar a expresso
1 5 2 = + k
:
e = sym ( 2 * k + sqrt(5) = 1 )
2. Criar as variveis simblicas x, y e z:
syms x y z
Nota: Reparar que as variveis simblicas no precisam de guardar um valor predefinido como no
processamento numrico.
3. Criar a varivel f para representar a expresso
2
+
x
y x
:
f = (x+y) / (x-2)
Nota: Este comando cria uma varivel simblica (f) porque a expresso contm pelo menos uma varivel
simblica (definida previamente).
4. Criar as seguintes variveis v e M:
a)
w
v
2
1
=
( para representar a expresso
w 2
1
)
syms w
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 1/12
Matlab Exerccio 2
v = 1 / sqrt ( 2 * w )
Nota: Depois de criar uma varivel simblica, esta pode ser usada em expresses, da mesma maneira
que as variveis numricas.
b)
(

=
d c
b a
M ( para representar uma matriz 2X2 )
syms a b c d
M = | a, b ; c, d |
5. Calcular o determinante da matriz M.
det ( M ) ( Soluo (S) = a * d b * c )
Substituio de Variveis
Numa expresso simblica, para substituir uma varivel por um valor numrico usa-se a funo subs. O seu
formato o seguinte:
- subs (f, x, a) ( retorna a expresso f com a varivel x substituda pelo valor a )
Esta funo particularmente importante para determinar o valor duma funo.
1. Definir a funo 5 3 2 ) (
2
+ = x x x f :
f = 2 * x ^ 2 + 3 * x - 5
2. Calcular o valor de f (2):
subs(f, x, 2) ( S = 9 )
Operaes Bsicas ( Soma, Subtraco, Multiplicao, Diviso e Potenciao )
Usam-se os operadores habituais e que foram apresentados no exerccio anterior Matlab_1 sobre o processamento
numrico ( +, -, *, /, ^).
1. Definir a funo 7 ) (
2
+ = x x x g :
g = x ^ 2 x + 7
2. Calcular as seguintes operaes:
a) g f + ( f + g ) ( S = 3 * x ^ 2 + 2 * x + 2 )
b) g f ( f * g ) ( S = ( 2 * x ^ 2 + 3 * x 5 ) * ( x ^ 2 x + 7 ) )
c)
x
f
3
( f ^ (3 * x) ) ( S= ( 2 * x ^ 2 + 3 * x 5 ) ^ ( 3 * x ) )
Somatrios
Os somatrios so calculados atravs da funo symsum e a sua forma geral a seguinte:
- symsum(f, x, a, b) ( retorna

b
a
x f ) ( )
1. Calcular:
a)


n
n
1
2
) 1 2 ( ( symsum ( (2*n-1)^2, n, 1, n ) ) (S=11/3*n+8/3-4*(n+1)^2+4/3*(n+1)^3)
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 2/12
Matlab Exerccio 2
b)


10
1
2
) 1 2 ( n ( symsum ( (2*n-1)^2, n, 1, 10 ) ) ( S = 1330 )
c)
2
1
) 1 2 (
1

n
( symsum ( 1/(2*n-1)^2, n, 1, inf ) ) ( S = 1/8*pi^2 )
Limites
Para o clculo de limites de expresses simblicas usa-se a funo limit e podemos usar as seguintes formas:
- limit (f, x, a ) ( retorna o limite de f quando x a )
- limit (f, x, a, right ) ( retorna o limite de f quando x a
+
)
- limit (f, x, a, left ) ( retorna o limite de f quando x a
-
)
1. Definir a funo
x
x sen
x f
) (
) ( = :
f = sin(x)/x
2. Calcular o
) ( lim
0
x f
x
:
limit ( f, x, 0 ) ( S = 1 )
3. Calcular os seguintes limites:
a)
x
x
x
)
1
1 ( lim +

( limit ( (1+1/x)^x, x, inf ) ) ( S = exp(1) )
b)
x
x
1
lim
0
+

( limit ( 1/x, x, 0, right ) ) ( S = inf )


c)
x
x
1
lim
0

( limit ( 1/x, x, 0, left ) ) ( S = -inf )


Derivadas
Para a derivao de expresses simblicas usa-se a funo diff e a sua forma geral a seguinte:
- diff (f, x, n) ( retorna a n-sima derivada da funo f em ordem a x )
1. Definir a funo c bx x ax x f + =
2 3
) ( :
f = a * x ^ 3 + x ^ 2 b * x - c
2. Calcular as suas derivadas de 1 e 2 ordem em relao varivel x :
a) ) (x f
dx
d
( diff ( f, x, 1 ) ) ( S = 3 * a * x ^ 2 + 2 * x - b )
b) ) (
2
2
x f
dx
d
( diff ( f, x, 2 ) ) ( S = 6 * a * x + 2 )
3. A funo diff tambm opera sobre matrizes.
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 3/12
Matlab Exerccio 2
a) Criar a matriz simblica
(

=
dy cx
bx ax
M
3
2
b) Calcular as derivadas de 1 ordem dos elementos da matriz M em relao a x:
diff ( M, x, 1 ) ( S = )
Integrais
Para a integrao de expresses simblicas usa-se a funo int e podemos usar as seguintes formas:
- int (f, x) ( retorna o integral indefinido de f em relao varivel x )
- int (f, x, a, b) ( retorna o integral definido de f em relao varivel x no intervalo
entre a e b )
1. Definir a funo ) 2 ( ) ( y x seno x g + = :
g = sin ( 2 * x + y )
2. Calcular os seguintes integrais :
a)
}
dx x g ) ( ( int ( g, x ) ) ( S = -1 / 2 * cos ( 2 * x + y ) )
b)
}
t
0
) ( dy y g ( int ( g, y, 0, pi ) ) ( S = 2 * cos(x) ^ 2 1 + cos( 2 * x ) )
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 4/12
Matlab Exerccio 2
Simplificao e Formatao de Expresses
O Matlab oferece diversas funes para simplificar ou modificar o formato de expresses simblicas.
Para simplificar podemos usar a funo simple.
1. Simplificar o ltimo resultado obtido (ans), usando o seguinte comando:
r = simple( ans ) ( S = 2 * cos ( 2 * x ) )
Esta funo usa vrios mtodos de simplificao e fornece o resultado mais curto. Para evitar a
apresentao de todos esses mtodos, atribui-se a funo simple a uma varivel (como neste caso).
Para formatar uma expresso simblica podemos usar as seguintes funes:
- expand( p ) ( expande todos os termos de p )
- factor( p ) ( tenta apresentar p como um produto de polinmios )
- collect( p , v ) ( escreve p em termos de potncias de v )
2. Definir a funo ) 3 )( 2 )( 1 ( ) (
2
= x x x x p :
p = ( x ^ 2 1 ) * ( x 2 ) * ( x 3 )
3. Determinar uma expresso equivalente de p, desenvolvendo os produtos :
expand( p ) ( S = x ^ 4 5 * x ^ 3 + 5 * x ^ 2 + 5 * x - 6 )
4. Determinar uma expresso equivalente de p, decompondo a expresso num produto de polinmios:
factor( ans ) ( S = ( x 1 ) * ( x 2 ) * ( x 3 ) * ( x + 1 ) )
5. Definir a expresso 5 3 1 2 4 ) (
2 2
+ + = x x x x x g :
g = 4 * x ^ 2 2 * x + x ^ 2 1 3 * x + 5
Nota: Reparar que o Matlab guarda a expresso simplificada ( 4 5 5 ) (
2
+ = x x x g ), agrupando os
termos de x do mesmo grau.
6. Definir a expresso 2 5 2 ) (
2
+ + + + = y y xy x x p
p = 2 * x + x * y + 5 * y + y ^ 2 + 2
7. Determinar a expresso equivalente de p, agrupando os termos de x do mesmo grau:
collect ( p ) ( S = ( y + 2 ) * x + 2 + 5 * y + y ^ 2 )
8. Determinar a expresso equivalente de p, agrupando os termos de y do mesmo grau:
collect ( p , y ) ( S = y ^ 2 + ( x + 5 ) * y + 2 * x + 2 )
Preciso dos Resultados
O processamento simblico muito mais preciso que o processamento numrico, porque as operaes
com valores numricos introduzem erros de arredondamento e que se vo acumulando em operaes
sucessivas, enquanto que as operaes simblicas como no efectuam clculos numricos, no geram
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 5/12
Matlab Exerccio 2
esses erros. Os erros de arredondamento surgem porque a preciso numrica limitada pelo nmero
de dgitos utilizados por cada operao.
Para usarmos o processamento simblico no clculo de expresses numricas, estas precisam de ser
previamente definidas como constantes simblicas, como veremos na seco seguinte.
Funes de Converso
O Matlab fornece funes que permitem converter valores numricos em constantes simblicas e vice-versa. As
constantes simblicas so expresses simblicas sem variveis.
- sym( n ) ( retorna a representao simblica do valor numrico n )
- double( c ) ( retorna o valor numrico da constante simblica c com preciso dupla )
1. Converter o seguinte valor numrico
2 / ) 5 1 ( +
numa constante simblica :
c = sym ( (1 + sqrt(5))/2 )
Nota: Reparar que a varivel simblica c guarda a expresso e no o seu resultado, como acontece no
processamento numrico.
2. Converter a constante simblica c no seu valor numrico:
double(c) ( S = 1.6180 )
Polinmios e Equaes
A determinao das razes dum polinmio e a resoluo de sistemas de equaes lineares podem ser resolvidos
atravs do processamento simblico, usando a funo solve.
Razes dum Polinmio
A funo solve pode ser usada no seguinte formato:
- solve ( p ) ( devolve as razes do polinmio p (varivel simblica) em relao varivel independente
mais prxima alfabeticamente de x )
1. Definir o polinmio 3 2 1
2
+ = x x p :
p1 = x ^ 2 + 2 * x - 3
2. Determinar as razes do polinmio p1:
solve( p1 ) ( S = ( -3 , 1 ) )
3. Definir o polinmio b ax x p + =
2
2 :
p2 = x ^ 2 + a * x - b
4. Determinar as razes do polinmio p:
solve( p2 ) ( S = ( ) )
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 6/12
Matlab Exerccio 2
Resoluo de uma Equao Linear
Podemos usar a funo solve no formato apresentado anteriormente, em que o p passa a representar a equao
a resolver.
1. Criar a varivel simblica e para representar a equao
5 3 2 = + x
:
e = sym ( 2*x + sqrt(3) = 5 )
Nota: usada esta funo sym por causa do sinal = da equao.
2. Resolver a equao :
solve( e ) ( S = -1 / 2 * 3 ^ ( 1 / 2 ) + 5 / 2 )
Resoluo de um Sistema de Equao Lineares Possvel e Determinado
A funo solve tambm pode ser usada no seguinte formato:
- S = solve ( e1, e2 , ..., en) ( determina a soluo do sistema de n equaes (e1, e2, ..., en) em
funo das variveis-padro independentes (x, y, ...) e guarda-a na varivel S do tipo registo ou
estrutura )
1. Criar as variveis simblicas (e1, e2) para representarem as equaes do seguinte sistema

=
= +
1
2
y x
y x
e1 = sym ( x + y = 2 )
e2 = sym ( x - y = 1 )
2. Resolver o sistema de equaes:
S = solve( e1, e2 ) (S uma estrutura que guarda as variveis x e y )
3. Determinar as solues de x e y:
S.x ( S = 3 / 2 )
S.y ( S = 1 / 2 )
4. Criar as variveis simblicas (e3, e4) para representarem as equaes do seguinte sistema de equaes
lineares:
1
2
=
= +
dy cx
by ax
5. Resolver o sistema de equaes:
S = solve( e3, e4 )
6. Determinar as solues de x e y:
S.x ( S = ( b + 2 * d ) / ( a * d + b * c ) )
S.y (S= - ( a 2 * c ) / ( a * d + b * c ) )
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 7/12
Matlab Exerccio 2
Resoluo de um Sistema de Equao Lineares Indeterminado
7. Resolver o seguinte sistema de equaes indeterminado (n de equaes inferior ao n de incgnitas):
Resoluo de um Sistema de Equao Lineares Sobredeterminado
8. Resolver o seguinte sistema de equaes sobredeterminado (n de equaes superior ao n de incgnitas):
Grficos
Apenas so abordados os grficos de linhas bidimensionais.
O Matlab cria os grficos numa janela chamada Janela de Figuras.
Grficos de Linhas Bidimensionais
Os grficos de linhas bidimensionais podem ser criados a partir duma expresso simblica ou de vectores de
dados.
Dados definidos por expresses simblicas:
Usamos a funo ezplot no seguinte formato:
- ezplot ( f, |a, b| ) ( cria grfico de f=f(x) no intervalo a < x < b )
1. Criar um grfico de linhas bidimensional da funo seno no intervalo -2t < x < 2t:
ezplot( sin(x) , | -2*pi, 2*pi | ) ( cria grfico numa janela de figuras )
2. Formatar o grfico de acordo com a figura seguinte, recorrendo s ferramentas disponveis no menu Tools.
3. Guardar o grfico na sua pasta pessoal:
- Menu File > Save
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 8/12

= + +
= + +
c z y x
z by ax
3 2
1 ( S.x = -( 2 * z 2 3 * z * b + c * b ) / ( 2 * a b ) )
( S.y = ( -3 * a * z + a * c + z 1 ) / ( 2 * a b ) )

=
= +
= +
5 5 5
3 2
1
y x
y x
y x
( S.x = - 1 )
( S.y = 2 )
Matlab Exerccio 2
Podemos adicionar novas curvas ao grfico existente, usando o comando hold. Depois de executado o comando
hold on, o Matlab adiciona as novas curvas ao grfico existente. Se os novos dados no se ajustarem aos limites
actuais dos eixos, estes so reescalados. Para voltar a criar um novo grfico preciso usar o comando hold off.
4. Instruir o Matlab a adicionar uma nova curva ao grfico existente.
hold on
5. Criar a curva da funo coseno no intervalo -2t < x < 2t:
ezplot( cos(x) , | -2*pi, 2*pi | )
6. Formatar o grfico de acordo com a figura seguinte:
7. Guardar o grfico na sua pasta pessoal.
8. Instruir o Matlab a criar novos grficos.
hold off
9. Criar a curva da funo seno no intervalo 0 < x < 2t:
ezplot( sin(x) , | 0, 2*pi | )
10. Guardar o grfico na sua pasta pessoal.
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 9/12
Matlab Exerccio 2
Dados definidos por vectores:
Usamos a funo plot nos seguintes formatos:
- plot ( x, y ) ( cria grfico y(x) no intervalo xmin < x < xmax )
- plot ( x1, y1, x2, y2, ..., xn, yn ) ( cria grfico com mltiplas curvas: y1(x1), y2(x2), ..., yn(xn) )
Notas: - Os pares de vectores de dados (x, y) tm de ter a mesma dimenso;
- As curvas so criadas unindo os pontos por linhas rectas.
Comecemos por criar o grfico do seno(x) no intervalo -2t < x < 2t.
1. Criar os vectores de dados x e y, com 30 elementos:
x = linspace ( 0, 2*pi, 30 )
y = sin ( x )
2. Criar o grfico y(x):
plot ( x, y )
3. Guardar o grfico na sua pasta pessoal.
Vamos agora criar um grfico com duas curvas, seno(x) e cos(x), no intervalo -2t < x < 2t:
1. Criar o vector x2, com 10 elementos:
x2 = linspace ( -2*pi, 2*pi, 10 )
2. Criar o vector y2, com 10 elementos:
y2 = cos ( x2 )
3. Criar o grfico:
plot ( x, y, x2, y2 )
4. Formatar o grfico de acordo com a figura seguinte:
5. Guardar o grfico na sua pasta pessoal.
EXTRA:
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 10/12
Matlab Exerccio 2
1. Criar a varivel simblica E para representar a equao:
2 3 ) ln( 2
5
= x
2. Determinar a soluo da equao da alnea anterior. ( S = exp(1/2*3^(1/5)+1) )
3. Definir a varivel F para representar a funo
y
e y y f + = ) ln( ) (
4. Determinar o valor de f (5) ( S = 13.7919 )
5. Definir a varivel G para representar a funo ) cos( 4 ) (
2
z z z g + =
6. Calcular:
a)

+
n
n
1
) 5 2 ( ( S = 2 ^ ( n + 1 ) + 5 * n - 2 )
b) )
1
( lim
x
x
( S = 0 )
c)
)
) cos(
( lim
0
x
x
x
+

( S = inf )
d)
) (
2
2
z g
dz
d
( S = 8 - cos( z ) )
e)
}
dz z g ) ( ( S = 4 / 3 * z ^ 3 + sin( z ) )
f)
}

t
t
dx x tg ) ( ( S = 0 )
7. Simplificar a expresso: ) ( ) ( cos
2 2
x sen x + ( S = 1 )
8. Desenvolver os produtos da expresso: ) 1 )( 1 ( + x x ( S = x ^ 2 - 1 )
9. Decompor a expresso num produto de polinmios: ) 1 (
2
x ( S = ( x 1 ) * ( x + 1 ) )
10. Simplificar a expresso agrupando os termos de y do mesmo grau:
5 4 2
2 2
+ + + yx y xy ( S = 4 * y ^ 2 + ( 2 * x + x ^ 2 ) * y + 5 )
11. Definir a constante simblica C como representante da expresso numrica: 2 ) 4 ln(
12. Determinar o valor numrico da constante simblica C da alnea anterior. ( S = -0.6137 )
13. Determinar as razes do polinmio: a x ax x x p + =
2
) ( ( S = ( 1, -a ) )
14. Resolver o seguinte sistema de equaes:
15. Criar um grfico de linhas bidimensional para representar as funes 3
4
) ( + =
x
x f e 1 ) ( = x x g no
intervalo | | 10 , 0 = x . O grfico deve apresentar a seguinte formatao:
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 11/12

=
= +
5
1 3
y x
ay x ( S.x = ( -1 + 5 * a ) / ( -3 + a ) )
( S.y = 14 / ( -3 + a ) )
Matlab Exerccio 2
Processamento Simblico, Polinmios, Equaes e Grficos Pg. 12/12

Você também pode gostar