Você está na página 1de 132

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE

4 Semana Matemtica

Introduo a Programao no MATLAB

29/10/2007

Galdino, J.F

Currculo Resumido
2003.1 - Graduando em Engenharia Eltrica;
2004.1 a 2006.2 - Monitor de Clculo 1 pelo DME;
2007 Membro do Projeto Olhos Digitais;
2007 Participao no IV Encontro de Extenso da UFCG
(Atual) - Monitor Voluntrio do Laboratrio de Princpios
de Comunicaes;
(Atual) Professor Voluntrio de Matemtica do
PVS (Pr Vestibular Solidrio) 2007.

E-mail: josenildofg@gmail.com
2

Sumrio

Introduo ao MATLAB
Estruturas de Controle
Arquivos de Comando M-File
Funes de Entrada e Sada
Introduo a Funes MATLAB
Toolboxes
Toolbox de Matemtica Simblica
Programas em MATLAB
3

Introduo ao MATLAB
MATLAB(MATrix LABoratory): Programa
de computador especializado e otimizado
para clculos cientficos e de engenharia.
Surgiu em 1970 com o intuito de auxiliar
os cursos de Teoria Matricial, lgebra
Linear e Analise Numrica.

Introduo ao MATLAB

Vantagens
Facilidade

de Uso
Independncia de Plataforma
Funes Predefinidas
Interface Grfica de Usurio
Compilador MATLAB

Desvantagens
Linguagem

Interpretada

Custo

Navegador de Ajuda
Espao de Lanamento

Janela de Comandos MATLAB

Navegador de Diretrio Corrente

Janela de Histrico de Comandos


7

Introduo ao Matlab

Informao do Sistema:
>>computer
>>version
>>ver
>>license

Introduo ao Matlab
MATLAB comand

pi

Comentrios

format short

3.1416

5 dgitos

format long

3.14159265358979

16 dgitos

format short e

3.1416e+000

5 dgitos + expoente

format long e

3.141592653589793
e+000

16 dgitos + expoente

format short g

3.1416

short ou short e

format long g

3.14159265358979

long ou long e
9

Introduo ao Matlab
MATLAB comand

format hex
format bank
format +
format rat

pi

Comentrios

400921fb54442d18

Hexadecimal, ponto
flutuante

3.14

2 digitos decimais

positivo(+),
negativo(-) ou zero(0)

355/113

razo aproximada

10

Introduo ao Matlab

Comandos bsicos:
>>who -- Lista as variveis.
>>whos -- Lista e especifica as variveis.
>>clc -- Limpa a Janela de Comandos.
>>clf
-- Limpa figura atual
>>clear -- Deleta variveis do workspace MATLAB.
>>help -- Ajuda do Matlab, documentao.
>>help elfun Lista funes do MATLAB
11

Operadores Aritmticos
Forma Geral: A op B
+
*
/
\
^

Soma Estrutural e Matricial


Subtrao Estrutural e Matricial
Multiplicao Matricial
Diviso Matricial Direita
Diviso Matricial Esquerda
Expoente Matricial
Operador de Transposio
12

Operadores Aritmticos

1
A
2

3
C
2

- 1 2
B

0 1
D5
13

Operadores Aritmticos

A+B

Operao ilegal

0 2
2 2

AB
2 -2
2 0

A+C

A+D
6 5
7 6

14

Operadores Aritmticos

A*B

-1 2
2 5

A*C

3
8

A .* B
-1 0
0 1

A .* C

Operao ilegal
15

Operadores Aritmticos

A/B

-1 2
-2 5

A\B

-1 2
2 -3

A ./ B
-1 0
Inf 1

A .\ B

-1 Inf
0 1
16

Operadores Relacionais

Forma geral
A op B

A e B: Operandos.
Pode ser uma matriz,
um escalar ou uma
cadeia de caracteres.
Op: Operador

Operador

Operao

==

Igual a

~=

Diferente de

>

Maior que

>=

Maior que
ou igual a
Menor que

<
<=

Menor que
ou igual a 17

Operadores Relacionais

Os operadores <, <=, > e >= so usados


para comparar a parte real dos operandos.

Os operadores == e ~= so usados para


comparar a parte real e imaginria dos
operandos.

18

Operadores Relacionais
Expresso
5>3
AC > BA
a>b
1 + j <= 2 + 3*j
x >= [3 8]
a>c
2 + j == 1+ j
5 + j ~= 2 + j

Resultado
1
01
10
1
10
01
0
1

a = [2 1] b = [ 1 1 ] c = [ 0 2 ] x = [ 4 2]
19

Operadores Lgicos
Operao Lgica Binria

Operao Lgica Unria

A op B

op A

Operador

Operao

&

E lgico

OU lgico

xor

Ou exclusivo lgico

No lgico
20

Operadores Lgicos

O MATLAB utiliza a lgica positiva, ou


seja, assume-se o valor verdadeiro se ele
for diferente de zero e falso se ele for igual
a zero.

21

Operadores Lgicos
Tabela da Verdade para Operadores Lgicos

Entradas

ou

xor

no

A&B

AlB

xor(A,B)

~A

22

Precedncia dos operadores


1.
2.

3.
4.
5.

Os operadores aritmticos so avaliados


primeiro.
Os operadores relacionais so avaliados da
esquerda para a direita.
Todos os operadores ~ so avaliados.
Todos os operadores & so avaliados.
Todos os operadores I so avaliados.

OBS: Sempre use parnteses para indicar a ordem


correta desejada de avaliao de uma expresso.
23

Operadores Lgicos
Expresso
~A
AlB
BlC
3>4&1
3 > (4 & 1)
~C
AlB&C
A&C
B&C

Resultado
0
1
1
0
1
0
1
1
0

A = 1, B = 0 e C = -10
24

Operadores Lgicos -Exerccios


Expresso
~A
AlB
BlC
3>4&1
3 > (4 & 1)
~C
AlB&C
A&C
B&C

Resultado
0
1
1
0
1
0
1
1
0
25

Estruturas de Controle

Controle de Fluxo

O controle de fluxo um recurso que permite que resultados


anteriores influenciem operaes futuras. Como em outras
linguagens, o MatLab possui recursos que permitem o controle
de fluxo de execuo de comandos, com base em estruturas
de tomada de decises.
Ser apresentado as seguintes estruturas de controle:
if
if-else
switch
while
for
26

Estruturas de Controle

Simbologia
Inicio e fim de uma estrutura de uma controle

Smbolo de deciso

Indica que aes sero executadas

27

Estruturas de Controle

Algoritmo
Srie de aes executadas em uma ordem
especifica.

Pseudocdigo
Linguagem

artificial e informal de representar o


cdigo de um programa.
til para desenvolver algoritmos que sero
convertidos em programas estruturados no
Matlab.
28

Estruturas de Controle
if
Estrutura de seleo para escolha de cursos
de ao especficos.
A estrutura de seleo if executa uma ao
indicada s quando a condio true
(Verdadeira); caso contrrio, a ao saltada.
29

Estruturas de Controle
if
Testa a condio

Verdadeira
Condio

Executa uma ao

Falsa

30

Estruturas de Controle

Pseudocdigo
Se a nota do estudante for maior ou igual que 7.0
Imprima Aprovado

Cdigo no Matlab
if nota >= 7
fprintf(Aprovado);
end
31

Estruturas de Controle
If-else
Testa a condio

Falsa

Executa uma ao

Verdadeira
Condio

Executa uma ao

32

Estruturas de Controle

Pseudocdigo
Se a nota do estudante for maior ou igual que 7.0
Imprima Aprovado
seno
Imprima Reprovado

Cdigo no Matlab
if nota >= 7
fprintf(Aprovado);
else
fprintf(Reprovado);
end
33

Estruturas de controle
Laos so construes MATLAB que nos
permitem executar uma sequncia de
declaraes mais de uma vez.
Existem dois tipos de laos:
while
for
34

Estruturas de controle
while: um bloco de declaraes que se repete
indefinidamente, enquanto uma condio for
satisfeita.
A forma geral do while :
while expresso
...
...
Bloco de cdigo
...
end
35

Estruturas de Controle
while
Testa a condio

Verdadeira
Condio

Executa uma ao

Falsa

36

Estruturas de Controle

switch
Estrutura

de seleo mltipla.
Consiste de uma srie de rtulos case e um
otherwise.

37

Estrutura de Controle
Verdadeiro
Case (a)

Ao(es) do case a

Falso
Verdadeiro
Case (b)

Ao(es) do case b

Falso

.
.
Falso
Otherwise

38

Estruturas de Controle

Lao for : Executa um bloco de declaraes


durante um nmero especificado de vezes.

for indice = expresso


Declarao 1
....
Corpo
Declarao n
end
39

Estrutura de Controle
n: nmero de iteraes do lao for
cont: varivel de controle

cont = 1

Inicializao da varivel de controle

cont = 2
cont = 3
cont <= n

Verdadeiro

Corpo do lao

cont = cont + 1

Falso

40

Estruturas de Controle

Exemplo: Calcular a soma dos 10 primeiros inteiros.

Soma 1 2 3 4 5 6 7 8 9 10
soma = 0;
% Inicializa a varivel soma com zero
for k = 1:10
soma = soma + k;
end
fprintf('A soma dos dez primeiros inteiros eh: %.2f', soma);

41

Estruturas de Controle

Exemplo: Calcular o fatorial de um nmero n.

n = 5;
fatorial = 1;

% Inicializa a varivel soma com zero


for k = 1:n
% Lao de repetio: n vezes
fatorial = fatorial*k; % Clculo do fatorial
end

fprintf(O fatorial de %.2f eh %.2f', n, fatorial);


42

Estruturas de Controle

Exemplo: Calcular a soma dos 5 primeiros inteiros impares.

Soma 1 3 5 7 9
soma = 0;
% Inicializa a varivel soma com zero
for k = 1:2:9
soma = soma + k;
end
fprintf('A soma dos 5 primeiros inteiros impares eh: %.2f', soma);

43

Estruturas de Controle
for X while

while: utilizado para repetir um trecho de


cdigo quando no desconhecido o nmero
de iteraes do lao.

for: utilizado para repetir um trecho de cdigo


quando conhecido o nmero de iteraes do
lao.
44

Estruturas de Controle

Break
Usada

para controlar a operao dos laos


for e while

Encerra

a execuo do lao e passa o


controle para a prxima declarao logo aps
o fim do lao.
45

Estruturas de Controle
% Uso do break
for k = 1:5
if k == 3;
break;
end
fprintf(k = %d\n, k);
end
disp(Fim do lao!);
46

Estruturas de Controle
k=1
k=2
Fim do lao!

47

Estruturas de Controle

Continue
Usada

para controlar a operao dos laos


for e while

Termina

a passagem corrente pelo lao e


retorna o controle para o inicio do lao.

48

Estruturas de Controle
% Uso do continue
for k = 1:5
if k == 3;
continue;
end
fprintf(k = %d\n, k);
end
disp(Fim do lao!);
49

Estruturas de Controle
k=1
k=2
k=4
k=5
Fim do lao!

50

Arquivos de Comando M-File


Geralmente, utiliza-se o prompt do MATLAB para
introduzir os comandos. Entretanto este
procedimento simples para execuo de
comandos no prompt se torna altamente
ineficiente quando a complexidade do problema
aumenta. Em suma, podemos dizer que para
problemas simples podemos usar o prompt do
MATLAB e para os mais difceis deve-se utilizar o
script-file ou M-file, que tambm conhecido
como arquivo de comando ou arquivo M.
51

Arquivos de Comando M-File


Erro comum de Programao: Os nomes
dos arquivos de comando precisam
sempre terminar com a extenso .m.
Exemplos:

programa1.m, exemplo1.m, etc.


52

Arquivos de Comando M-File

Como Criar um Arquivo M (M-file)


Para

criar um arquivo M-file, siga os seguintes


passos:
Inicialmente, voc deve abrir o programa
MATLAB, dando um duplo click no cone do
MATLAB que est na rea de trabalho.
Selecione o menu File (d um click).
Selecione o item New e em seguida aponte
para M-file e d um click.
53

Arquivos de Comando M-File


Exenplo de script-file.
% script-file: circulo.m
% Este programa calcula a rea de um circulo
raio = 2.5;
area = pi*raio^2;
fprintf(Area do circulo = %.3f ', area);
54

Arquivos de Comando M-File

Como Executar um Arquivo M (M-file)


Para

executar um arquivo M-file no MATLAB preciso


gravar o arquivo correspondente. Para isto, selecione o
item Save Workspace As do menu File. D preferncia
salvar o arquivo no diretrio corrente do MATLAB, ou
seja, na pasta work. Para executar o arquivo M, digite
no prompt do MATLAB o nome do arquivo salvado
anteriormente, sem a extenso .m. Feito isso o
MATLAB gera o executvel do programa.

55

Arquivos de Comando M-File


Para exemplificar, considere o arquivo
circulo.m. Digite no prompt do MATLAB o
nome do arquivo circulo. Ser apresentado
o executvel do programa.
>> circulo
Area do circulo = 19.635
56

Arquivos de Comando M-File


Resumindo, pode-se dizer que um programa
em MATLAB consiste na criao do arquivo
M-file utilizando-se o editor de texto e sua
respectiva chamada por linha de comando
no prompt do MATLAB.

57

Introduo a Funes MATLAB

Funes Predefinidas MATLAB


Fornece

uma enorme variedade de funes


prontas para uso.
Funes trigonomtricas, logartmicas, razes.
Funes hiperblicas, funes de Bessel, etc.
As funes MATLAB podem devolver mais de
um resultado para o programa que as ativa.
58

Introduo a Funes MATLAB

Uso da funo max


Retorna o valor mximo de um vetor de entrada,
podendo retornar a localizao de onde ocorreu o
mximo.

maxval = max([1 2 -4 5])


maxval = 5
[maxval index] = max([1 2 -4 5])
maxval = 5
index = 4
59

Introduo a Funes MATLAB

Funes MATLAB com Matrizes como


entrada.

x = [ 0 pi/2 pi 3*pi/2 2*pi] % Entrada


y = sin(x)
% Sada
y = [ 0 1 0 -1 0]
% Resultado

60

Introduo a Funes MATLAB


Agora com voc!!!
x = [ 0 pi/2 pi 3*pi/2 2*pi]
y = cos(x)

61

Introduo a Funes MATLAB


Agora com voc!!!
Calcule os valores de sin x, cos x e tan x,
para x = 30, 45 e 60.

62

Introduo a Funes MATLAB

Funes Elementares

63

Introduo a Funes MATLAB


Funes Definidas pelo usurio.
function [outarg1, outarg2, ...] = fname(inarg1, inarg2, ...)
% H1 comentrio
% Mais um comentrio
...
(Cdigo executvel)
...
(return)

64

Introduo a Funes MATLAB


y
B
yb

d
A
C

ya

xa

xb

D: distancia entre os pontos A e B


65

Introduo a Funes MATLAB


function [resultado] = distancia2(xa,ya,xb,yb)
% DISTANCIA2 Calcula a distancia entre dois pontos
% Function DISTANCIA2 calcula a distancia entre dois pontos
% A(xa,ya) e B(xb,yb) no sistema de coordenadas cartesiano.
%
% Chamada a funo
%
% res = distancia2(xa, ya, xb, yb)
%
% Definiao das variaveis
% xa: abscissa do ponto A
% ya: ordenada do ponto A
% xb: abscissa do ponto B
% yb: ordenada do ponto B
% resultado: Distancia entre os pontos A e B.
66

Introduo a Funes MATLAB


% OBSERVAOES
% Data
Programador
Descriao
% 05/10/07
Josenildo F. Galdino
Codigo Original
% Calculo da distancia
resultado = sqrt((xb - xa).^2 + (yb - ya).^2)

67

Introduo a Funes MATLAB


Uso da funo distancia2.
% Script file: teste_distancia2.m
% Este programa testa a funao distancia2
% Data
% 05/10/07

Programador
Descriao
Josenildo F. Galdino Codigo Original

% Definiao das variaveis:


% xa: abscissa do ponto A
% ya: ordenada do ponto A
% xb: abscissa do ponto B
% yb: ordenada do ponto B
% resultado: distancia entre os dois pontos A e B.

68

Introduo a Funes MATLAB


% Dados fornecidos pelo usuario
disp('Calcule a distancia entre os pontos A e B');
xa = input('Forneca a abscissa do ponto A: ');
ya = input('Forneca a ordenada do ponto A: ');
xb = input('Forneca a abscissa do ponto B: ');
yb = input('Forneca a ordenada do ponto B: ');
% Uso da funao definida pelo programador
resultado = distancia2(xa, ya, xb, yb); % Chamada a funao.
% Exibiao do resultado
fprintf('A distancia entre os pontos A e B e %f\n', resultado);
69

Introduo a Funes MATLAB


>> teste_distancia2
Calcule a distancia entre os pontos A e B
Forneca a abscissa do ponto A: 1
Forneca a ordenada do ponto A: 1
Forneca a abscissa do ponto B: 2
Forneca a ordenada do ponto B: 2
resultado =

1.4142
A distancia entre os pontos A e B e 1.414214
>>
70

Toolboxes

Statistics Toolbox
Symbolic Math Toolbox
Partial Diferrential Equation Toolbox
Curve Fitting Toolbox
Signal Processing Toolbox
Control System Toolbox
Communication Toolbox

71

Symbolic Math Toolbox

O
Toolbox
de
Matemtica
Simblica
disponibiliza uma coleo de diversas funes
do MATLAB utilizadas para calcular operaes
bsicas, tais como: derivadas, limites, integrais,
expanso da serie de Taylor, e outras
operaes. A manipulao simblica no
MATLAB pode ser vista como uma evoluo do
modo como voc utiliza o MATLAB para
processar nmeros.

72

Symbolic Math Toolbox

A grande vantagem de se utilizar tal


processo que podemos obter resultados
mais exatos, eliminando-se assim a
impreciso introduzida pelos valores
numricos. Podemos resolver derivadas,
integrais,
equaes
diferenciais
e
algbricas utilizando-se esta poderosa
ferramenta.
73

Symbolic Math Toolbox


EXPRESSES SIMBLICAS
Deve-se entender por Expresso simblica as
expresses que contm objetos simblicos que
podem representar nmeros, funes e operaes
e variveis.
Dica: As variveis simblicas no precisam de um
valor numrico. Esta varivel simblica representa
apenas um smbolo de uma expresso simblica.
74

Symbolic Math Toolbox


EXPRESSES SIMBLICAS
Exemplos:

d
z (5 x 4 )
dx

75

Symbolic Math Toolbox


O MATLAB disponibiliza vrias funes que
trabalham com funes polinomiais e que podem ser
utilizadas para representar funes polinomiais.
Dentre elas, encontram-se as seguintes funes:
collect
expand
factor
simplify
simple
76

Symbolic Math Toolbox


collect
Organiza os coeficientes

Sintaxe
collect( f )

mostra um polinmio f em sua varivel simblica, seja x, e


organiza todos os coeficientes com a mesma potncia de x.
Um segundo argumento pode especificar a varivel que se deve
organizar se houver mais de uma varivel simblica possvel.
77

Symbolic Math Toolbox


collect(f)
1) Escreva a funo y = (x+1)^3 na forma polinomial
>> clear
% Limpa a Janela de Comandos
>> x = sym('x'); % Define a variavel simbolica x
>> y = (x + 1)^3; % Define a funo y = f(x)
>> collect(y);
% Organiza os coeficientes
>> pretty(ans)
% Exibe o resultado
x3 + 3x2 + 3x + 1
78

Symbolic Math Toolbox


Agora com voc!!!
Escreva a funo y = (x + 1)(x + 2) na forma
polinomial.

79

Symbolic Math Toolbox

collect( f, nome da varivel simblica)


A funo collect neste caso aceita um segundo argumento
que especifica que varivel simblica deve ser utilizada
para organizar o polinmio.

80

Symbolic Math Toolbox


collect(f, nome da varivel simblica)
2) Escreva a funo f(x,z) = (x + 1)^3 + z na forma
polinomial.
>> x = sym('x');
% Define a varivel simblica x
>> z = sym(z);
% Define a varivel simblica z
>> y = (x +1)^3 + z; % Define a funo y = f(x,z)
>> collect(y,x);
% Organiza os coeficientes em x
>> pretty(ans)
% Exibe o resultado
x3 + 3 x2 + 3 x + 1 + z

81

Symbolic Math Toolbox


Agora com voc!!!
Escreva a funo y = (x + 1)^3 + (z + 1)^2
na forma polinomial, em termos de z.

82

Symbolic Math Toolbox

expand

realiza a distribuio de produtos para polinmios


e aplica outras identidades que envolvem funes
de somas, identidades trigonomtricas, exponenciais
e logaritmos.

Sintaxe

expand( f )
83

Symbolic Math Toolbox


expand(f)
3) Escreva a funo y = (x+1)^3 na forma polinomial
>> clear
% Limpa a Janela de Comandos
>> x = sym('x'); % Define a variavel simbolica x
>> y = (x + 1)^3; % Define a funo y = f(x)
>> expand(y);
% Realiza o produto polinomial
>> pretty(ans) % Exibe o resultado
x3 + 3x2 + 3x + 1
84

Symbolic Math Toolbox


expand X collect
Alm de representar funes polinomiais a funo
bastante til na manipulao de expresses simblicas
trigonomtricas, exponenciais, hiperblicas, entre outras
funes. Esta uma das caractersticas marcantes que
diferenciam a funo expand da collect. A funo
expand bem mais robusta, porque trabalha com
muitos tipos de funes, enquanto a funo collect
restrita apenas a funes polinomiais. Podemos, dizer
que a funo expand uma evoluo da funo collect,
agregando-se novas funcionalidades.
85

Symbolic Math Toolbox


expand

4) Obtenha a forma expandida


trigonomtrica cos(x + y).

da funo

x = sym(x);
% Cria a varivel simblica x.
y = sym(y);
% Cria a varivel simblica y.
expand(cos(x+y)) % Realiza a operao
ans =
% Varivel padro do matlab
cos(x)*cos(y) - sin(x)*sin(y)
% Resultado
86

Symbolic Math Toolbox


Agora com voc!!!
Obtenha a forma expandida da funo
exponencial exp(x + y).

87

Symbolic Math Toolbox


Factor

Fatorao

Sintaxe

factor(X)
Esta funo obtm a forma fatorada de um polinmio.
Na sintaxe da funo X, pode ser apenas a expresso
simblica. Ou um array simblico contendo vrios
expresses simblicas. No caso de utilizar um array, a
funo factor retorna um array com as expresses
simblicas correspondentes.
88

Symbolic Math Toolbox

Uso da Funo factor


Calcular

os fatores primos de um nmero

inteiro.
Obter a forma polinomial fatorada.
Simplificar expresses simblicas.

89

Symbolic Math Toolbox


Factor(x)

5) Calcule os fatores dos seguintes nmeros 15 e 50.


>> factor(15)
ans =
3 5
>> factor(50)
ans =
2 5

90

Symbolic Math Toolbox


Factor

Observao:
O maior valor inteiro que a funo factor
aceita um numero inteiro de at 16 dgitos,
se o nmero tiver uma quantidade de dgitos
superior a 16. Devemos usar o sym para criar
um elemento.
91

Symbolic Math Toolbox


Factor(x)

5) Calcule os fatores do nmero


>> factor(15)
ans =
3 5
>> factor(50)
ans =
2 5

92

Symbolic Math Toolbox


Factor(x)
5) Calcule os fatores do nmero 12345678901234567890
>> factor(sym('12345678901234567890'))
ans =

(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)
93

Symbolic Math Toolbox


6) Obtenha a forma fatorada da equao
y = x^3 +3*x^2 + 3*x + 1
>> x = sym('x');
% Cria a varivel simblica x.
>> y = x^3 + 3*x^2 + 3*x + 1 % Define a funo y = f(x)
>> factor(y);
% Fatorao
>> pretty(ans)
% Exibe o resultado
(x + 1)^3
94

Symbolic Math Toolbox


Agora com voc!!!
Obtenha a forma fatorada da equao
y = x^2 + 3*x + 2

95

Symbolic Math Toolbox


Simplify
Simplificao simblica.

Sintaxe:
R = simplify(S)
A funo simplify uma ferramenta poderosa, que em
geral aplica vrias identidades algbricas que envolvem
somas, potncia inteira, razes quadradas e potncia
fracionria, como tambm vrios identidades que
envolvem funes trigonomtricas, exponencial e funes
de Bessel, funo gama, etc.
96

Symbolic Math Toolbox


7) Simplifique a seguinte expresso:

x3 8
y 4
x 16

>> x = sym('x');
% Cria a varivel simblica x.
>> y = (x^3 + 8)/(x^4 - 16); % Define a funo y = f(x)
>> simplify(y);
% Simplificao simblica
>> pretty(ans)
% Exibe o resultado
x^2 - 2x + 4
------------------x^3 - 2x^2 + 4x - 8
97

Symbolic Math Toolbox


Agora com voc!!!

x2
Simplifique a seguinte expresso: y 3
x 8

98

Symbolic Math Toolbox


8) Simplifique a seguinte expresso

y cos ( x) sin ( x)
2

>> x = sym(x);
% Cria a varivel simblica x.
>> y = cos(x)^2 + sin(x)^2; % Define a funo y = f(x)
>> simplify(y);
% Simplificao simblica
>> pretty(ans)
% Exibe o resultado
1
99

Symbolic Math Toolbox


9) Simplifique a seguinte expresso:

log( x * y)

>> syms x y positive % Cria as variveis simblicas


x e y, ambas positivas.
>> simplify(log(x*y)); % Simplificao simblica
>> pretty(ans)
% Exibe o resultado
log(x) + log(y)

100

Symbolic Math Toolbox


Simple

Busca a forma mais simplificada para a expresso simblica.

Sintaxe:

r
= simple( S )
[r,how] = simple( S )
A funo simple(S) tenta vrias simplificaes algbricas
diferentes na expresso simblica S, exibe a representao de
menor comprimento para S. S um sym. Se S for uma matriz, o
resultado indica a representao mais curta da matriz inteira
que necessariamente no a representao mais curta de
cada elemento individual.
101

Symbolic Math Toolbox


10 ) Simplifique a expresso y = (x + 1)(x + 2)
>> x = sym(x); % Cria a varivel simblica x.
>> simple((x+1)(x+2)) % Simplificao
ans =
x^2+3*x+2

102

Symbolic Math Toolbox


Agora com voc!!!
Simplifique a expresso

y 2 cos ( x) sin ( x)
2

103

Symbolic Math Toolbox


pretty
Esta funo imprime uma expresso simblica.

Pretty(expresso simblica).
A grande vantagem do uso da funo pretty quando trabalha-se
com matemtica simblica que a exibio da expresso
simblica a mais clara possvel.
Dica: Ao trabalhar com matemtica simblica, sempre use a
funo pretty, para tornar mais legvel a expresso simblica
mostrada na tela.
104

Symbolic Math Toolbox

LIMITES

105

Symbolic Math Toolbox


Limites
% ---------------------------------------------------------------------------------------% Scripte file: limites.m
% Este programa calcula o limite de algumas funes.
% --------------------------------------------------------------------------------------% DESCRIAO
% --------------------------------------------------------------------------------------% DATA
PROGRAMADOR
DESCRIAO DO CODIGO
% 10/10/07
Josenildo F. Galdino
Cdigo Original
%---------------------------------------------------------------------------------------

106

Symbolic Math Toolbox


syms x a;
f = 1/(x^2);
pretty(f);
limit(f,2)

% Cria as variveis simblicas x e a.


% Definio da funo f(x)
% Exibio da funo
% Calcula o limite quando x tende a 2.

f1 = (25*x^3 + 2)/(75*x^7 -2); % Definio da funo f1(x)


pretty(f1)
% Exibio da funo.
limit(f1)
% Calcula o limite quando x tende a 0.

107

Symbolic Math Toolbox


f2 = (25*x^3 + 2)/(75*x^7 -2); % Definio da funo f2(x)
pretty(f2)
% Exibio da funo
limit(f2)
% Calcula o limite quando x tende a 0.
f3 = (x^2 - 2)/(x - 2);
pretty(f3)
limit(f3,2)

% Definio da funo f3(x)


% Exibio da funo
% Calcula o limite quando x tende a 2.

f4 = (x^2 - a^2)/(x^2 + 2*a*x + a^2); % Definio da funo f3(x)


pretty(f4)
% Exibio da funo
limit(f4,a)
% Calcula o limite quando x tende a a.
108

Symbolic Math Toolbox


g = sin(2*x)/x;
pretty(g)
limit(g)

% Definio da funo g(x)


% Exibio da funo
% Calcula o limite quando x tende a 0.

g1 = sin(5*x)/x;
pretty(g1)
limit(g1)

% Definio da funo g1(x)


% Exibio da funo
% Calcula o limite quando x tende a 0.

109

Symbolic Math Toolbox


g2 = (sin(5*x) - sin(3*x))/x; % Definio da funo g2(x)
pretty(g2)
% Exibio da funo
limit(g2)
% Calcula o limite quando x tende a 0.
g3 = (1 - sqrt(1 - x^2))/(x^2); % Definio da funo g3(x)
pretty(g3)
% Exibio da funo
limit(g3)
% Calcula o limite quando x tende a 0.

110

Symbolic Math Toolbox

DERIVADAS

111

Symbolic Math Toolbox


DERIVADAS

>> syms x n;

% Cria a varivel simblica x.

>> p = x^3 + 4*x^2 -7*x -10; % Define a funo f(x).

>> d = diff(p)
d=
3*x^2+8*x-7
>> e = diff(p,2)
e=
6*x+8
>> f = diff(p,3)
f=
6

% Calcula a derivada de f(x).

% Calcula a 2 derivada de f(x).

% Calcula a 3 derivada de f(x).


112

Symbolic Math Toolbox


DERIVADAS
syms x n
>> g = x^n;
>> h = diff(g)
h=
x^n*n/x
>> h = simplify(h)
h=
x^(n-1)*n

% Cria as variaveis simblicas x e n.


% Define a funo g(x).
% Calcula a derivada de g(x).

% Simplifica o resultado.

113

Symbolic Math Toolbox


DERIVADAS DE FUNESTRANSCENDENTAIS
>> syms x
% Cria as variaveis simblicas x e n.
>> f1 = log(x);
% Define a funo f1(x).
>> df1 = diff(f1) % Calcula a derivada de f1(x).
df1 =
1/x
>> f2 = (cos(x))^2; % Define a funo f2(x).
>> df2 = diff(f2)
% Calcula a derivada de f2(x).
df2 =
-2*cos(x)*sin(x)
114

Symbolic Math Toolbox


DERIVADAS DE FUNES TRANSCENDENTAIS
>> f4 = cos(2*x);
>> df4 = diff(f4)
df4 =
-2*sin(2*x)
>> f5 = exp(-(x^2)/2);
>> df5 = diff(f5)
df5 =
-x*exp(-1/2*x^2)
115

Symbolic Math Toolbox

Calcule a derivada de f ( x )

x
x 1

>> syms x;
>> p = x/(x-1);
>> diff(p)
ans =
1/(x-1)-x/(x-1)^2

% Cria a varivel simblica x.


% Define a funo f(x).
% Calcula a derivada de f(x).

>> simplify(ans)
ans =
-1/(x-1)^2

% Simplifica a expresso da derivada.

>> pretty(ans)

% Exibe a resposta no formato mais visivel.

1
- -------2
(x - 1)

116

Symbolic Math Toolbox

Calcule a derivada de f ( x) 2 x x 2
em x = 1, ou seja, f ' (1)

117

Symbolic Math Toolbox


% Clculo da derivada
syms x;
% Cria a varivel simblica x.
p = 2 + x + x^2; % Define a funo f(x).
d = diff(p);
% Calcula a derivada de f(x).
pretty(d);
% Exibe o resultado da derivada
% Calculo da derivada em um ponto (x = 1)
g = [2 1];
polyval(g,1)
subs(d,1)

% Define o polinmio da derivada


% Calcula a derivada em x = 1
% Valor da funo em x = 1
118

Symbolic Math Toolbox

INTEGRAIS

>> syms x n t
>> int(x^n)
ans =
x^(n+1)/(n+1)

% Cria as variveis simblicas x n t


% Calcula a integral de x^n

>> int(x^3 +4*x^2 + 7*x + 10) % Calcula da integral x^3 + 4x^2 + 7x + 10


ans =
1/4*x^4+4/3*x^3+7/2*x^2+10*x
>> int(x,1,t)
ans =
1/2*t^2-1/2

% Calculo da integral de x, no intervalo [ 1, t ].

119

Symbolic Math Toolbox


INTEGRAIS DE FUNES TRANSCENDENTAIS

>> syms x
% Cria a varivel simblica x
>> int(1/x)
% Calcula a integral de f(x) = 1/x.
ans =
log(x)
>> int(cos(x)) % Calcula a integral de f(x) = cos (x)
ans =
sin(x)
>> int(1/(1+x^2)) % Calcula a integral de f(x) = 1/(1 + x^2)
ans =
atan(x)
>> int(exp(-x^2)) % Calcula a integral de f(x) = exp(-x^2)
ans =
1/2*pi^(1/2)*erf(x)
120

Programas em MATLAB

Resolver a equao quadrtica

2s 10s 12 0
2

121

Programas em MATLAB
% ----------------------------------------------------------------------------------------% Scripte file: quadratica.m
% Este programa calcula as raizes da equaao quadratica, sendo
% fornecidos pelo usuario os coeficientes a, b e c da equaao
% a*x^2 + b*x + c = 0
% --------------------------------------------------------------------------------------% DESCRIAO
% --------------------------------------------------------------------------------------% DATA
PROGRAMADOR
DESCRIAO DO CODIGO
% 10/10/07
Josenildo F. Galdino
Cdigo Original
%---------------------------------------------------------------------------------------

122

Programas em MATLAB
% DEFINIAO DAS VARIAVEIS
% a - coeficiente do termo x^2
% b - coeficiente do termo x
% c - coeficiente do termo x^0 ou termo independente.
% x1 - raiz da equao quadrtica
% x2 - raiz da equao quadrtica
% m - varivel intermediaria
% n - varivel intermediaria
123

Programas em MATLAB
clc;

% Limpa a area de trabalho.

% Obteno dos parmetros

disp('Forneca os coeficientes da equaao quadratica');


a = input('\nForneca o coeficiente a: ');
b = input('Fornea o coeficiente b: ');
c = input('Forneca o coeficiente c: ');
x = linspace(-12,12,300); % Gera 300 pontos entre -12 e 12.
y = a*x.^2 + b*x + c;
% Definio da funo y = f(x)
124

Programas em MATLAB
% Clculo das razes
m = -b/(2*a);
n = sqrt(b^2 - 4*a*c)/(2*a);
fprintf('\nAs raizes da equacao quadratica sao:')
x1 = m + n
x2 = m - n
fprintf('\n');
125

Programas em MATLAB
% Exibio do grfico
plot(x,y);
% Grfico em 2-D.
title('\bf\itEquaao Quadratica'); % Titulo do grfico
xlabel('\bf\itx');
% Eixo horizontal
ylabel('\bf\ity');
% Eixo vertical

126

Programas em MATLAB
Forneca os coeficientes da equaao quadratica
Forneca o coeficiente a: 2
Fornea o coeficiente b: 10
Forneca o coeficiente c: 12
As raizes da equaao quadratica sao:
x1 =
-2
x2 =
-3

127

Programas em MATLAB

128

ANIMAO

Demonstrao

Script-file: animacao.m

129

ANIMAO

Demonstrao

Script-file: animacao1.m

130

ANIMAO

Demonstrao

Script-file: animacao2.m

131

OBRIGADO!!!

132