Professional Documents
Culture Documents
Processamento Simbólico
Polinómios e Equações
Gráficos
Matlab Exercício 2
Processamento Simbólico
d x2
cos( x 2 ) 3x 2 5x 1 v 2x 2 f dx
dx 1 x
O Matlab usa objectos simbólicos para representar variáveis e expressões. Uma expressão simbólica é uma
expressão que contém objectos simbólicos e internamente, um objecto simbólico é uma estrutura de dados do
tipo cadeia de caracteres (string).
Os objectos simbólicos podem ser criados através das funções sym e syms, cujos formatos são os seguintes:
Nota: Reparar que as variáveis simbólicas não precisam de guardar um valor predefinido como no
processamento numérico.
x y
3. Criar a variável f para representar a expressão :
x2
» f = (x+y) / (x-2)
Nota: Este comando cria uma variável simbólica (f) porque a expressão contém pelo menos uma variável
simbólica (definida previamente).
1 1
a) v ( para representar a expressão )
2w 2w
» syms w
» v = 1 / sqrt ( 2 * w )
Nota: Depois de criar uma variável simbólica, esta pode ser usada em expressões, da mesma maneira
que as variáveis numéricas.
a b
b) M ( para representar uma matriz 2X2 )
c d
» syms a b c d
» M = a, b ; c, d
5. Calcular o determinante da matriz M.
» det ( M ) ( Solução (S) = a * d – b * c )
Substituição de Variáveis
Numa expressão simbólica, para substituir uma variável por um valor numérico usa-se a função subs. O seu
formato é o seguinte:
1. Definir a função f ( x) 2 x 2 3x 5 :
»f=2*x^2+3*x-5
2. Calcular o valor de f (2):
» subs(f, x, 2) (S=9)
Usam-se os operadores habituais e que foram apresentados no exercício anterior Matlab_1 sobre o processamento
numérico ( +, -, *, /, ^).
1. Definir a função g ( x) x 2 x 7 :
»g=x^2–x+7
2. Calcular as seguintes operações:
a) f g (»f+g) (S=3*x^2+2*x+2)
b) f g (»f*g) (S=(2*x^2+3*x–5)*(x^2–x+7))
3x
c) f ( » f ^ (3 * x) ) ( S= ( 2 * x ^ 2 + 3 * x – 5 ) ^ ( 3 * x ) )
Somatórios
Os somatórios são calculados através da função symsum e a sua forma geral é a seguinte:
b
symsum(f, x, a, b) ( retorna f (x) )
a
1. Calcular:
n
a) ( 2n 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)
1
10
b) (2n 1) 2 ( » symsum ( (2*n-1)^2, n, 1, 10 ) ) ( S = 1330 )
1
1
c) ( 2n 1) 2
( » symsum ( 1/(2*n-1)^2, n, 1, inf ) ) ( S = 1/8*pi^2 )
1
Limites
Para o cálculo de limites de expressões simbólicas usa-se a função limit e podemos usar as seguintes formas:
sen( x)
1. Definir a função f (x ) :
x
» f = sin(x)/x
lim
2. Calcular o x f ( x) :
0
» limit ( f, x, 0 ) (S=1)
1
c) lim ( » limit ( 1/x, x, 0, ‘left’ ) ) ( S = -inf )
x 0 x
Derivadas
Para a derivação de expressões simbólicas usa-se a função diff e a sua forma geral é a seguinte:
1. Definir a função f ( x) ax 3 x 2 bx c :
»f=a*x^3+x^2–b*x-c
ax bx 2
a) Criar a matriz simbólica M 3
cx dy
b) Calcular as derivadas de 1ª ordem dos elementos da matriz M em relação a x:
» diff ( M, x, 1 ) (S= )
Integrais
Para a integração de expressões simbólicas usa-se a função int e podemos usar as seguintes formas:
a) g ( x) dx ( » int ( g, x ) ) ( S = -1 / 2 * cos ( 2 * x + y ) )
O Matlab oferece diversas funções para simplificar ou modificar o formato de expressões simbólicas.
Esta função usa vários métodos de simplificação e fornece o resultado mais curto. Para evitar a
apresentação de todos esses métodos, atribui-se a função simple a uma variável (como neste caso).
5. Definir a expressão g ( x) 4 x 2 2 x x 2 1 3x 5 :
»g=4*x^2–2*x+x^2–1–3*x+5
6. Definir a expressão p( x) 2 x xy 5 y y 2 2
»p=2*x+x*y+5*y+y^2+2
O processamento simbólico é muito mais preciso que o processamento numérico, porque as operações
com valores numéricos introduzem erros de arredondamento e que se vão acumulando em operações
sucessivas, enquanto que as operações simbólicas como não efectuam cálculos numéricos, não geram
esses erros. Os erros de arredondamento surgem porque a precisão numérica é limitada pelo número
de dígitos utilizados por cada operação.
Para usarmos o processamento simbólico no cálculo de expressões numéricas, estas precisam de ser
previamente definidas como constantes simbólicas, como veremos na secção seguinte.
Funções de Conversão
O Matlab fornece funções que permitem converter valores numéricos em constantes simbólicas e vice-versa. As
constantes simbólicas são expressões simbólicas sem variáveis.
» c = sym ( ‘ (1 + sqrt(5))/2 ’ )
Nota: Reparar que a variável simbólica c guarda a expressão e não o seu resultado, como acontece no
processamento numérico.
Polinómios e Equações
A determinação das raízes dum polinómio e a resolução de sistemas de equações lineares podem ser resolvidos
através do processamento simbólico, usando a função solve.
1. Definir o polinómio p1 x 2 2 x 3 :
» p1 = x ^ 2 + 2 * x - 3
2. Determinar as raízes do polinómio p1:
» solve( p1 ) ( S = ( -3 , 1 ) )
3. Definir o polinómio p 2 x 2 ax b :
» p2 = x ^ 2 + a * x - b
4. Determinar as raízes do polinómio p:
» solve( p2 ) (S=( ))
Podemos usar a função solve no formato apresentado anteriormente, em que o p passa a representar a equação
a resolver.
2. Resolver a equação :
» solve( e ) ( S = -1 / 2 * 3 ^ ( 1 / 2 ) + 5 / 2 )
S = solve ( ‘e1’, ‘e2’ , ..., ‘en’) ( determina a solução do sistema de n equações (e1, e2, ..., en) em
função das variáveis-padrão independentes (x, y, ...) e guarda-a na variável S do tipo registo ou
estrutura )
x y 2
1. Criar as variáveis simbólicas (e1, e2) para representarem as equações do seguinte sistema
x y 1
» e1 = sym ( ‘ x + y = 2 ’ )
» e2 = sym ( ‘ x - y = 1 ’ )
3. Determinar as soluções de x e y:
» S.x (S=3/2)
» S.y (S=1/2)
4. Criar as variáveis simbólicas (e3, e4) para representarem as equações do seguinte sistema de equações
lineares:
ax by 2
cx dy 1
5. Resolver o sistema de equações:
» S = solve( e3, e4 )
6. Determinar as soluções de x e y:
» S.x (S=(b+2*d)/(a*d+b*c))
» S.y (S= - ( a – 2 * c ) / ( a * d + b * c ) )
ax by z 1 ( S.x = -( 2 * z – 2 – 3 * z * b + c * b ) / ( 2 * a – b ) )
x 2 y 3z c ( S.y = ( -3 * a * z + a * c + z – 1 ) / ( 2 * a – b ) )
Resolução de um Sistema de Equação Lineares Sobredeterminado
x y1
x 2 y 3 ( S.x = - 1 )
( S.y = 2 )
5 x 5 y 5
Gráficos
Os gráficos de linhas bidimensionais podem ser criados a partir duma expressão simbólica ou de vectores de
dados.
1. Criar um gráfico de linhas bidimensional da função seno no intervalo -2 < x < 2:
» ezplot( ‘ sin(x) ’ , -2*pi, 2*pi ) ( cria gráfico numa janela de figuras )
2. Formatar o gráfico de acordo com a figura seguinte, recorrendo às ferramentas disponíveis no menu Tools.
Podemos adicionar novas curvas ao gráfico existente, usando o comando hold. Depois de executado o comando
hold on, o Matlab adiciona as novas curvas ao gráfico existente. Se os novos dados não se ajustarem aos limites
actuais dos eixos, estes são reescalados. Para voltar a criar um novo gráfico é preciso usar o comando hold off.
plot ( x1, y1, x2, y2, ..., xn, yn ) ( cria gráfico com múltiplas curvas: y1(x1), y2(x2), ..., yn(xn) )
Comecemos por criar o gráfico do seno(x) no intervalo -2 < x < 2.
Vamos agora criar um gráfico com duas curvas, seno(x) e cos(x), no intervalo -2 < x < 2:
3. Criar o gráfico:
» plot ( x, y, x2, y2 )
EXTRA:
1
b) lim ( ) (S=0)
x x
cos( x)
c) lim ( ) ( S = inf )
x 0 x
d2
d) g ( z) ( S = 8 - cos( z ) )
dz 2
e) g ( z) dz ( S = 4 / 3 * z ^ 3 + sin( z ) )
f) tg ( x) dx (S=0)
3x ay 1 ( S.x = ( -1 + 5 * a ) / ( -3 + a ) )
x y 5 ( S.y = 14 / ( -3 + a ) )
x
15. Criar um gráfico de linhas bidimensional para representar as funções f (x ) 3 e g ( x) x 1 no
4
intervalo x 0,10 . O gráfico deve apresentar a seguinte formatação: