Escolar Documentos
Profissional Documentos
Cultura Documentos
Comandos básicos
Expressões algébricas
Cálculo simbólico de expressões
Comandos condicionais
Matrizes
Comandos gráficos
1
Comandos básicos
2
Comandos básicos
Pode obter ajuda sobre qualquer comando ou função, a partir do comando help.
>>help % mostra uma lista de todos os pacotes disponíveis
>>help nome % ajuda sobre pacote ou função específica
Ex.:
>> help ans % ANS é resposta mais recente (ANSwer=Resposta)
3
Comandos básicos
O MatLab possui constantes numéricas predefinidas que podem ser utilizadas na definição de
vetores e matrizes, bem como na manipulação de dados. São elas:
4
Comandos básicos
5
Comandos básicos
O comando break
Termina um laço. Encerra a execução de comandos for ou while quando são encontrados.
O comando pause
Fornece uma pausa na execução do programa, até que qualquer tecla ser digitada. Pause(n) dá
uma pausa de n segundos.
O comando input
Exibe mensagem na tela e dá ao usuário um prompt para entrada de dados.
input(‘texto’);
input(‘texto’,’s’)
O comando input(‘texto’) exibe o texto na tela da linha de comando e retorna o valor digitado
até que seja pressionado enter. Já input(‘texto’,’s’) é utilizado para entrada de strings.
Por exemplo:
id=input(‘Digite sua idade’) guarda o número digitado em id;
nom=input(‘Digite o seu nome’, ‘s’) guarda a string digitada em nom.
6
Comandos básicos
O comando disp
Esse comando exibe texto na tela de comando. Para escrever uma frase deve rodear-se essa
frase do símbolo ’. Quando se pretender escrever um conjunto de várias frases, devem
separar-se as frases por vírgulas e rodear o conjunto com os símbolos [ e ].
Por exemplo,
disp([‘ Estou a escrever esta frase há ‘, ‘ minutos’ ] )
Para combinar texto e valores numéricos devem converter-se estes últimos a “texto” através
da função num2str. O comando
disp(['Estou a escrever esta frase há ',num2str(n),' minutos'] )
7
Comandos básicos
O comando fprintf
É um comando de saída de dados. O fprintf é um método em que é possível combinar frases
com variáveis numéricas de dimensão 1, ou seja, um escalar ou um elemento da matriz.
Assim, o que for digitado entre aspas aparecerá para o usuário, os itens onde aparece %d
serão substituídos pelas variáveis, respeitando-se a ordem em que aparecem.
Além disso, %d significa que só aparecerá a parte inteira de x e y, e toda vez que for utilizado
\n ocorrerá uma troca de linha. Existem, ainda, os seguintes comandos:
8
Comandos básicos
CARACTERES ESPECIAIS
3 1 2 3
f 4 ,5 A
4* x 4 5 6
9
Comandos básicos
CARACTERES ESPECIAIS
10
Expressões algébricas
As expressões podem ser construídas por meio de operadores aritméticos usuais e das regras
de precedência. A ordem com que são avaliadas as expressões é dada pela seguinte regra:
expressões são avaliadas da esquerda para direita, com a potência tendo a mais alta
precedência, seguida da multiplicação e divisão que tem igual procedência, seguidas da
adição e subtração. Parênteses podem ser usados para alterar esta ordem, sendo os parêntesis
mais internos avaliados antes dos mais externos.
11
Expressões algébricas
>> a=3
>> b=25
>> c=5
>> d=12
Ou
12
Expressões algébricas
O MATLAB tem uma série de funções científicas predefinidas (help elfun). A maioria pode
ser usada da mesma forma que seria escrita matematicamente.
FORMATOS NUMÉRICOS
Quando o MatLab mostra um resultado numérico ele segue certas regras. No caso de nenhum
formato estar definido, se um resultado é um número inteiro, o MatLab mostra como um
inteiro. Quando um resultado é um número real, o MatLab mostra uma aproximação com até
quatro casas decimais.
POLINÔMIOS
Ex.: x 6
3 x 4
x 3
x 2
7 x 5
15
Expressões algébricas
POLINÔMIOS
16
Expressões algébricas
POLINÔMIOS
POLINÔMIOS
A função MatLab roots(p): determina as raízes da equação cujos coeficientes estão contidos
em p, enquanto que a função poly( r) retorna os coeficiente do polinômio que possui como
raízes os componentes do vetor r.
>> p = [4 2 0 5];
>> r=roots (p)
r=
-1.2723
P( x ) 4 x 3 2 x 2 5 0.3861 + 0.9129i
0.3861 - 0.9129i
>> p=poly (r)
p=
18
Expressões algébricas
POLINÔMIOS
Adição
Se a dimensão dos polinômios p1 e p2 forem iguais, pode-se fazer: p1 + p2 para obter a sua
soma. Se a dimensão de p1 for diferente da dimensão de p2, pode-se usar um dos dois casos:
Preencher com zeros os coeficientes das potências que faltam em um polinômio para este
igualar-se em dimensão com o outro;
Usar a função polyadd(p1,p2)
Multiplicação
A função conv(p1,p2) multiplica o polinômio p1 pelo polinômio p2.
19
Expressões algébricas
POLINÔMIOS
Divisão
A sintaxe [q,r] = deconv(p1,p2) retorna o resultado da divisão do polinômio p1 pelo
polinômio p2. Nessa saída aparecem duas variáveis, onde: q: é o quociente da divisão de p1
por p2e r: é o resto dessa divisão
Avaliação
A sintaxe polyval(p,a) avalia o polinômio p para o valor a.
20
Expressões algébricas
POLINÔMIOS
Derivada
A função que determina a derivada do polinômio p é a função: polyder (p). Serão exibidos os
coeficientes do polinômio que representam a derivada.
21
Expressões algébricas
POLINÔMIOS
No MATLAB, esses sistemas podem ser resolvido com qualquer um dos comandos:
>> x=inv (A)*b ou >> x=A/b ou >> x=pinv (A)*b
EXPRESSÕES SIMBÓLICAS
EXPRESSÕES SIMBÓLICAS
24
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
Uma vez definido que a variável x é uma variável simbólica, podemos definir expressões que
envolvem esta variável. Por exemplo,
EXPRESSÕES SIMBÓLICAS
26
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
f=(x^2+1)*(x^3+2*x)
» x=sym('x');
» f=(x^2+1)*(x^3+2*x)
f=
(x^2+1)*(x^3+2*x)
» produto=collect(f)
produto =
x^5+3*x^3+2*x
» pretty(produto)
27
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
Simplificação de expressões
simplify(f): simplifica expressões usando identidade
simple(f): simplifica expressões e coloca na forma técnica
Ex.: Ex.:
» x=sym('x'); » x=sym('x');
» f=sin(x)^2+cos(x)^2 » f=(x+1)*(x-1)
f= f=
sin(x)^2+cos(x)^2 (x+1)*(x-1)
» simplif=simplify(f) » simples=simple(f)
simplif = simples =
1 x^2-1
28
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
Fatoração de polinômios
factor(f): fatora o polinômio f, expressando-o como um produto de polinômios
Ex.:
» x=sym('x');
» f=x^4-5*x^3+5*x^2+5*x-6
f=
x^4-5*x^3+5*x^2+5*x-6
» fator=factor(f)
fator =
(x-1)*(x-2)*(x-3)*(x+1)
29
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
Expansão de polinômios
expand(f): distribui o produto através de uma soma
Ex.:
» x=sym('x');
» f=(x-1)*(x-2)*(x-3)*(x+1)
f=
(x-1)*(x-2)*(x-3)*(x+1)
» expans=expand(f)
expans =
x^4-5*x^3+5*x^2+5*x-6
30
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
Ex.:
» x=sym('x');
» f=x^4-5*x^3+5*x^2+5*x-6
f=
x^4-5*x^3+5*x^2+5*x-6
» pretty(f)
31
Expressões simbólicas
EXPRESSÕES SIMBÓLICAS
A função compose calcula a composição das funções f(x) e g(x) em f(g(x)), a função finverse
encontra a inversa funcional de uma expressão e a função subs substitui uma variável por um
número (ou por outra varável) em uma expressão.
32
FUNÇÕES CONDICIONAIS E
DE REPETIÇÃO
33
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Estruturas de repetição:
Instrução for
O ciclo FOR permite que uma sequência de instruções seja executada mais do que uma
vez.
O ciclo FOR repete um bloco de instruções um determinado número de vezes. Esse
número de vezes é especificado antes do ciclo ser executado.
Instrução while
O ciclo WHILE repete o bloco de instruções enquanto a condição associada for verdadeira.
34
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Ciclo FOR
Ciclo FOR
Suponhamos que pretendemos calcular um vetor com o valor da função seno em 1001 pontos
igualmente espaçados do intervalo [0, 10] A maneira mais óbvia de obter este vetor é:
i=0
for t=0:0.01:10
i=i+1;
y(i)=sin(t)
end
36
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Ciclo FOR
close all
Defina os valores de x pares de 2 a 10, y de 3 clear all
acrescentando 3 até 15 e calcule for x=2:2:10
for y=3:3:15
y a1=2^(x/y);
3 xy a2=y/x;
z 2x/ y x a3=3*x*y;
( x 2 y )( y x ) a4=(x+2*y);
a5=y-x;
a6=a4^a5;
a7=a2+a3
a8=a7/a6;
a9=a1-a8
end
end
37
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Ciclo FOR
Calcule o valor de y para os seguintes valores de x de -1,5 até 3,5 incrementando 0,5.
Resolva, começando por criar um vetor x, e depois um vetor y usando cálculos "elemento a
elemento".
close all
clear all
for x=-1.5:0.5:3.5
y x 2 ( 1 x 3 )3 x1=x^2;
x2=(1+x^3);
x3=x2^3;
x4=x1*x3
end
38
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Ciclo WHILE
39
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Ciclo WHILE
40
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
Ciclo WHILE
Cada uma das expressões expressao1, expressao2,... é uma expressão de relação da forma e1
R e2, sendo e1 e e2 expressões aritméticas e R um dos operadores de relação definidos
anteriormente. Podem também combinar-se estes operadores com os operadores lógicos.
42
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
O comando switch
Esse comando testa expressão de controle e seleciona um caso para executar.
switch switch_expr
case case_expr,
stat1, ..., stat1n
case {case_expr1, case_expr2, case_expr3,...}
stat2, ..., stat2n
...
otherwise,
stat3, ..., stat3n
end
44
FUNÇÕES CONDICIONAIS E DE REPETIÇÃO
46
CÁLCULO MATRICIAL
Para criar uma variável onde é armazenada uma matriz, basta escrever os elementos da
matriz entre colchetes [ ... ], sendo os elementos de uma mesma linha da matriz separados por
virgula e as linhas separadas por ponto e virgula. Por exemplo, para armazenar a matriz
O primeiro comando foi para mostrar o elemento (1,2) da matriz A. O segundo, é para exibir
a 2a. linha e o terceiro, é para exibir a 1a. coluna. Finalmente, o quarto comando é para exibir
a submatriz formada pela 1a. e 2a. colunas da matriz A. 47
CÁLCULO MATRICIAL
>> 1:5:31
ans =
1 6 11 16 21 26 31
48
CÁLCULO MATRICIAL
Ex.: Ex.:
>> B=[A,[7;8]] >> [A;[7,8,9]]
As matrizes podem ser concatenadas
B= ans =
1 2 3 7 1 2 3
4 5 6 8 4 5 6
7 8 9
As operações matriciais são executadas de forma semelhante a que são executadas operações
escalares
>> A=[1,2;3,4]; B=[-3;1]; C=[3,5;-5,2]; >> B*A
>> A+C ??? Error using ==> *
ans = Inner matrix dimensions must agree.
4 7 >> (A*C)^2
-2 6 ans =
>> 3*A -50 144
ans = -176 430
3 6
9 12
49
CÁLCULO MATRICIAL
%Determinante 3x3
» syms a b c d e f g h i
» A=[a b c; d e f;g h i]
» DET=det(A)
DET =
i*a*e-a*f*h-i*d*b+d*c*h+g*b*f-g*c*e
50
CÁLCULO MATRICIAL
A seguir listamos algumas funções matriciais que podem ser úteis. Considere a uma matriz.
52
PLOTANDO GRÁFICOS
53
Aproveitando as capacidades simbólicas e existe o comando ezplot.
A sintaxe abaixo presenta o gráfico da função f(x) = sen3x + 2x no intervalo, por defeito, [-
2; 2].
>> syms x
>> ezplot ( sin (3*x) + 2*x )
54
Gráficos 2D
Os pares ordenados (x,y) assim criados são marcados no gráfico e ligados por segmentos
retas (interpolação linear). Observa-se, portanto, que, quanto menor for o incremento do vetor
X, mais pares ordenados serão criados e, consequentemente, melhor será a precisão do
gráfico. Em compensação, uma maior quantidade de memória é utilizada.
56
Gráficos 2D
57
Gráficos 2D
Nos gráficos podemos utilizar os comandos title (inclui um título ao gráfico), xlabel (permite
que o eixo das abscissas do gráfico seja identificado), ylabel (permite que o eixo das
ordenadas do gráfico seja identificado).
No exemplo utilizando a função plot podemos inserir os seguintes comandos para obter um
gráfico com título e com os eixos das abscissas e das ordenadas identificados.
>> x = -10:0.5:10;
>> y = x.^2+1;
>> plot(x,y);
>> title('Gráfico da função x^2+1')
>> xlabel('x')
>> ylabel('y')
58
Gráficos 2D
Desenhar o gráfico da função f(x) = x2 + 2, no intervalo [-5, 5], fornecendo título ao gráfico,
bem como aos eixos x e y. Inserir uma observação destacando o vértice da parábola, criar
uma legenda e gerar grade.
x=-5:0.01:5; % inicio: incremento :final
y=x.^2+2;
xv=0;
yv=2;
plot(x,y) % Cria curva com linha sólida e azul
hold on % Mantém o gráfico atual
plot(xv,yv,'or')
title('PARÁBOLA') % Título do gráfico
xlabel('eixo das abscissas') % Nome do eixo x
ylabel('eixo das ordenadas') % Nome do eixo y
text(xv, yv, 'vértice') % Inseri texto ao gráfico em local predefinido no programa (xv,yv)
legend('y = x.^2 + 2') % Cria legenda
grid % Gera grade
pause 59
Gráficos 2D
Por exemplo, podemos gerar no mesmo gráfico as funções sen(x), cos(x) e sen(2x).
>> x= 0:pi/100:6*pi;
>> y1=sin(x);
>> y2=cos(x);
>> y3=sin(2*x);
>> plot(x,y1,x,y2,x,y3);
>> title('Grafico das funções sen(x),cos(x),sen(2x)')
>> xlabel('x')
>> ylabel('y')
60
Gráficos 2D
Além de títulos e designação dos eixos (funções title, xlabel e ylabel) podemos definir outras
propriedades gráficas como legendas, cores e estilos de linhas, estilos de marcadores e incluir
grade. Na tabela a seguir vemos os principais valores para os atributos cores, marcadores e
estilos de linha.
>> x=-10:0.5:10;
>> y=x.^2+1;
>> plot(x,y,'m*-.');
61
Gráficos 2D
É possível colocar mais de um conjunto de eixos em uma mesma figura, criando assim
múltiplos diagramas. Os subdiagramas são criados pelo comando subplot: subplot(m,n,p)
Onde m denota o número linhas e n o número de colunas que se deseja dividir a janela
gráfica; p indica qual das subdivisões vai receber o gráfico desejado.
Ex.: Plotar as funções sen(x) e cos(x), com x= -pi: pi/20 : pi, na mesma janela mas em
gráficos separados, utilizando o comando subplot para dividir a janela em dois subgráficos.
>> subplot(2,1,1);
>> x=-pi:pi/20:pi;
>> y= sin(x);
>> plot(x,y)
>> title('Subdiagrama 1');
>> subplot(2,1,2);
>> x=-pi:pi/20:pi;
>> y= cos(x);
>> plot(x,y)
>> title('Subdiagrama 2'); 62
Gráficos 2D
subplot(2,2,1) subplot(2,2,3)
x=-4:0.01:4; x=-4:0.01:4;
y=x.^2; y=x.^2 + 5;
plot(x,y) plot(x,y)
subplot(2,2,2) subplot(2,2,4)
x=-4:0.01:4; x=-2:0.01:2;
y=x.^2-5*x+6; y=x.^3;
plot(x,y) plot(x,y)
pause
close
63
Gráficos 2D
Além do comando plot, podemos plotar uma função através do comando fplot. Basicamente,
você deve fornecer como primeiro argumento a função que pretende usar entre apóstrofes e
como segundo, o intervalo sobre o qual a função será plotada.
>> fplot('x^2+3', [ -1, 2])
O MatLab tem uma função chamada polar que se destina ao desenho de dados usando
coordenadas polares. Sua forma básica é: polar(theta,r)
Ex.: A Cardioide pode ser expressa através de coordenadas polares por: r=2(1+cosθ)
Utilizando o comando polar, vamos plotar a Cardioide.
>> theta = 0:pi/50:2*pi;
>> r=2*(1+cos(theta));
>> polar(theta,r,'r-');
>> title('Cardioide em Coordenadas Polares');
64
Gráficos 2D
Gráficos de Barras
É um gráfico no qual cada ponto é representado por uma barra vertical ou horizontal. Tem a
seguinte síntese:
bar(x,y), para barras verticais.
barh(x,y) para barras horizontais.
65
Gráficos 3D
O MatLab cria uma variedade de funções para gráficos em 3 dimensões. Entre elas:
Meshgrid
O MatLab define uma superfície do tipo mesh (rede) pelas coordenadas Z sobre um plano x-
y. Superfícies tipo mesh são úteis para visualizar matrizes demasiadamente grandes para
serem mostradas na forma numérica, ou para plotar funções de duas variáveis.
O primeiro passo para plotar uma função de 2 variáveis z=f(x,y) é gerar matrizes X e Y
contendo linhas e colunas repetidas, respectivamente, para funcionarem como o domínio da
função. A função meshgrid transforma o domínio especificado por dois vetores x y em duas
matrizes X e Y. Essas matrizes então são usadas para avaliar a função de 2 variáveis.
>> [X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
>> r=sqrt(X.^2+Y.^2);
>> Z=sin(r)./r;
>> mesh(X,Y,Z) 67
EXEMPLOS APLICADOS A ENGENHARIA
MECÂNICA
Plotar gráficos:
Energia Cinética, Potencial e Total versus
Velocidade versus Deslocamento
68
EXEMPLOS APLICADOS A ENGENHARIA
MECÂNICA
69