Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Prof.Celso J. Munaro (DEL-CT-UFES) celso.munaro@ufes.br
Matlab Prof.Celso J. Munaro (DEL-CT-UFES) JACEE Matlab
2
Conteúdo Controle de fluxo Programação
Scripts Funções Simulação de sistemas descritos por equações diferenciais JACEE Matlab
3
Controle de fluxo Declarações condicionais permitem selecionar em tempo de execução qual bloco de código executar. Loop FOR Loop WHILE Comandos IF e BREAK Switch If-elseif-else JACEE Matlab
4
for Exemplo 1: >> for i = 1:n, x(i) = 0, end Exemplo 2: >> x=ones(n,1); (ou x=zeros(n,1)) >> for i = 1:2:n, x(i) = 2, end; JACEE Matlab
5
Recuar os diversos laços aumenta a legibilidade
JACEE Matlab
6
for : atividade proposta
Gerar uma matriz randomica com o comando A=randn(10,10) e criar uma nova matriz B que tenha apenas os valores menores que 0.5 JACEE Matlab
7
while while expressão linhas de comando end Exemplo: i=1; while(i<100) x(i)=i; i=i+1; end; JACEE Matlab
8
while: atividade proposta
Gerar uma matriz randomica com o comando A=randn(10,10) e criar uma nova matriz B que tenha apenas os valores menores que 0.5 JACEE Matlab
9
If break O comando break dentro de um for ou while termina o laço.
Exemplo: JACEE Matlab
10
switch switch flag case valor1 bloco 1 de comandos case valor 2 bloco 2 de comandos case valor3 bloco 3 de comandos end; JACEE Matlab
11
Switch: exemplo op=input(‘i=‘); switch op case 1 disp(‘1’); case 2 disp(‘2’); case 3 disp(‘3’); end; JACEE Matlab
12
If-elseif-else Exemplo: a = randi(100, 1); if a < 30 disp(’pequeno') elseif a < 80 disp(’medio') else disp(’grande') end JACEE Matlab
13
error O comando error(‘Mensagem’) dentro da uma função ou script aborta sua execução e mostra “Mensagem” Exemplo: >> norm(1,2,3) Error using norm Too many input arguments. JACEE Matlab
14
Vetorização Uma maneira de tornar os programas MATLAB mais rápidos é para vetorizar os algoritmos que usados na construção dos programas. Enquanto outras linguagens de programação podem usar laços com for ou do, o MATLAB pode usar operações de vetores ou matrizes. Um exemplo simples envolve a criação de uma tabela de logaritmos JACEE Matlab
15
Exemplo: vetorização para fazer tabela de logaritmos
JACEE Matlab
16
Vetorização: Atividades propostas
Gerar a matriz A=randn(10,10) e obter a matriz B apenas com os valores menores que 0.5 sem usar loops. Gerar um vetor com 1000 uns u=ones(1000,1); e somar todos valores de u com um só comando. Gerar um vetor aleatório x=randn(100,1); e o valor máximo e a posição do vetor em que ocorre. Gerar um vetor aleatório x=randn(100,1); e somar todos seus elementos elevados ao quadrado com um só comando. Somar todos os elementos da matriz A=rand(100,100); JACEE Matlab
17
Programação no Matlab Linguagem própria, mas com com muita semelhança à linguagem C Arquivos .m (M-files) são arquivos ASCII com extensão *.m Podem ser scripts ou funções JACEE Matlab
18
Importante Quando o Matlab procura por um nome, ele primeiro busca a lista de variáveis no workspace. Se uma variável tem o mesmo nome de uma script, o Matlab executará a variável, e nunca o script. Exemplo: mean é uma função; logo, não use este nome para uma variável. Além disto, o nome de um script deve começar com uma letra. JACEE Matlab
19
Scripts Quando um script é chamado, MATLAB simplesmente executa os comandos encontrados no arquivo. As linhas de comando de um arquivo script operam globalmente com os dados que estão no espaço de trabalho. Scripts são úteis na realização de análise, solução de problemas, ou no projeto de longas sequências de comando que é cansativo para ser feito interativamente. JACEE Matlab
20
Scripts: exemplo ts=0.01; t=0:ts:10; y=sin(w*t); plot(t,y);xlabel('Tempo(s)'); ylabel('Senoide'); Atividade: Gravar um arquivo test1.m com estes comandos e executar no workspace. JACEE Matlab
21
functions Um arquivo-M que contém a palavra function no ínicio da primeira linha é um arquivo função. Uma função difere de um script pelos argumentos que devem ser passados, e pelas variáveis que são definidas e manipuladas que são locais à função e não podem ser operadas globalmente no espaço de trabalho. function [variáveis de saída] = function_name (variáveis de entrada) JACEE Matlab
22
function: anatomia JACEE Matlab
23
Function: exemplo function [m,dp,s]=fx1(y) % m = media, % dp = desvio padrao % s = soma s=sum(y); m=mean(y); dp=std(y); Atividade: programar esta função JACEE Matlab
24
Functions : exemplo do Matlab
JACEE Matlab
25
Functions : exemplo do Matlab
A função admite diferentes argumentos de saída. M1=max(x) dá apenas o maior valor [m,ind]=max(x) dá também o índice do maior valor JACEE Matlab
26
Functions : exemplo do Matlab
A função admite diferentes argumentos de entrada. M1=norm(x) norma de x (euclidiana, default) [m1=norm(x,1) norma 1 (valor absoluto) JACEE Matlab
27
Comentários sobre funções
Controle dos argumentos de entrada function m=norm(x,p) if nargin==1 p=2; end; m=sum(x.^p); m=m^(1/p); JACEE Matlab
28
Executando partes de funções
JACEE Matlab
29
keyboard O comando keyboard dentro de uma função permite retornar o teclado ao usuário no ponto o comando é colocado. function m=norm(x,p) if nargin==1 p=2; end; keyboard; m=sum(x.^p); m=m^(1/p); JACEE Matlab
30
Executando parte de funções (cont)
JACEE Matlab
31
Funcões inline Achar os zeros da função Definir a função fr=inline(‘r^3-32*r^2+(r-22)*r+100’); r0=fzero(fr,5) JACEE Matlab
32
r^3-32*r^2+(r-22)*r+100 >> fzero(fr,5) ans = 1.5058
JACEE Matlab
33
Inline function: atividade proposta 1
Atividade: Obter a curva abaixo usando inline function JACEE Matlab
34
Inline function: atividade proposta 2
Atividade: Obtenha os zeros da função transcendental abaixo de forma gráfica e numérica (fzero) JACEE Matlab
35
Variáveis globais Cada função do MATLAB definida por um arquivo-M possui suas próprias variáveis locais, as quais não tem relação com as de outras funções e com as do espaço de trabalho. Entretanto, se várias funções e também o plano de trabalho declararem uma variável particular como global, então todos eles dividem a mesma variável. Qualquer atribuição a esta variável, em qualquer função, fica disponível a todas as outras funções que a declaram como global. Para fazer com que uma variável seja global, basta escrever global X Y Z JACEE Matlab
36
3. Simulação de sistemas descritos por equações diferenciais
Solvers do Matlab para ODEs: (ordinary differential equations) ode23: método de Runge-Kutta de segunda e terceira ordem ode45: método de Runge-Kutta de terceira e quarta ordem JACEE Matlab
37
3. Simulação de sistemas descritos por equações diferenciais
JACEE Matlab
38
Dar os comandos no workspace >> tspam=[0 8]; >> x0=[0;0];
Atividade: Editar a rotina abaixo e salvar com nome simula1.m: function dx=simula1(t,x) u=1; dx(1,1)=x(2); dx(2,1)=u-2*x(1)-3*x(2); Dar os comandos no workspace >> tspam=[0 8]; >> x0=[0;0]; >> [t,x]=ode45('simula1’,tspam,x0); >> plot(t,x) JACEE Matlab
39
Resultado da simulação
JACEE Matlab
40
Atividades propostas 1) Definir a entrada u como global e variar seu valor no workspace 2) Alterar os estados iniciais na simulação. 3) Comparar ode23 e ode45 JACEE Matlab
41
Atividade proposta 2: Simular um sistema com massa+mola+amortecedor
M=1kg B=2 K=1 f(t)=1Newton JACEE Matlab
42
Atividade proposta 3: simular uma equação não-linear
Simular a equação diferencial abaixo com as condições iniciais dadas JACEE Matlab
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.