Mini-curso Octave/MATLAB



Documentos relacionados
INTRODUÇÃO À LINGUAGEM C++

criar u u = E(:,1) criar b b=a(:,3)

Algoritmos e Programação

Mini-curso de MATLAB e Octave para Cálculo Numérico

Oficina de MATLAB Nível Básico Aula 1

Programação em MATLAB

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Introdução sobre Scilab

Programa. Linguagem MATLAB Métodos Computacionais para EDO Métodos Computacionais para EDP. Critérios

Estruturas de Repetição

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Tutorial de Matlab Francesco Franco

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.

Introdução ao MATLAB

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB

Mini Curso Introdução ao MATLAB

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

9 Comandos condicionais

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

JavaScript (ou JScript)

Prova de Admissão para o Mestrado em Matemática IME-USP

fx-82ms fx-83ms fx-85ms fx-270ms fx-300ms fx-350ms

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Sistemas e Sinais (LEE & LETI)

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

Semana da Matemática. Luiz A. F. Coelho Fernando Deeke Sasse DMAT MatLab para Iniciantes

Laboratório Nacional de Computação Científica

Estrutura Condicional em Java

INTRODUÇÃO AO MATLAB. AUTORES: Alan Tavares Miranda Márcio Portes de Albuquerque Marcelo Portes de Albuquerque

LINGUAGEM C. Estrutura básica de um programa

Vetores, Matrizes e Gráficos

Estrutura de Dados Básica

TUTORIAL PARA PREPARAÇÃO E IMPORTAÇÃO DE DADOS PARA. Os dados de suas coletas devem ser organizados em uma planilha eletrônica, de modo

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Conceitos básicos da linguagem C

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Programação: Estruturas de seleção

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Organização de Computadores Software

Sistema topograph 98. Tutorial Módulo Fundiário

TUTORIAL MATLAB MATEMÁTICA COMPUTACIONAL Aula 20-Novembro-2013

Internet e Programação Web

Introduçã o ão MATLAB e Octave

Utilidades Diversas. Aplicações Informáticas para Engenharia. SérgioCruz

Departamento: Matemática Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007. Aula prática n o 1 - Introdução ao MATLAB

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

2 echo "PHP e outros.";

Algoritmo Iterativo. Dilema do Martelo x Edifício. O Martelo. O Edifício 01/06/2014. Dilema das ações x declarações

Linguagem de Programação

Estruturas de Controle em PHP

Conversão de Tipos e Arrays

TUTORIAL AMBIENTE WEB PORTUGOL

Sistema de equações lineares

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

INTRODUÇÃO AO MATLAB - PARTE 2

Java Como Programar, 8/E

Linguagem de Programação I

1 Funções básicas de implementação de arquivos

Simulado Informática Concurso Correios - IDEAL INFO

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Matlab Módulo Avançado

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

Convertendo Algoritmos para a Linguagem C

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Notas de Aula MatLab - 2

1) Digitar o código-fonte no editor do compilador Turbo Pascal para windows, exatamente como apresentado a seguir:

COMANDO DA AERONÁUTICA ESCOLA DE ESPECIALISTAS DE AERONÁUTICA SUBDIVISÃO DE ADMISSÃO E DE SELEÇÃO

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Introdução à Linguagem

Introdução ao Octave + Pacote de Processamento de Imagens

ÍNDICE. Curso Introdução ao MATLAB 2

CEDERJ - CENTRO DE EDUCAÇÃO SUPERIOR A DISTÂNCIA DO ESTADO DO RIO DE JANEIRO

Aula de JavaScript 05/03/10

7. Estrutura de Decisão

Aula 2P - Comandos básicos do Matlab aplicados a PDS

Variáveis e Comandos de Atribuição

2ª Lista de Exercícios

Testando e Comparando Valores

Características Básicas

Bem vindo Joe Ramone!

Lista de Exercícios Fluxograma, Estruturas de Sequência e Decisão Prof: Yuri Frota

Resumo da Matéria de Linguagem de Programação. Linguagem C

Introdução ao Matlab. 1 Algumas regras e comandos do Matlab. 3 de março de Docente Responsável : Prof. Dr. Antônio C. Roque

Definição. de solução de um problema passo-a-passo. Representa a lógica l. passo.

Transcrição:

Programa de Educação Tutorial Mini-curso Octave/MATLAB PET Engenharia de Computação 03/07/2013 1

Sumário Sobre as Ferramentas Operações Básicas e Funções importantes Gráficos Arquivos, scripts e criação de funções Funções Básicas e Úteis

Introdução MATLAB e Octave são ferramentas para uso de processamento numérico. O MATLAB em especial é um dos programas mais utilizados em engenharia para simulações e análises de sistemas reais. Possuem recursos de programação com uma linguagem procedural de alto nível. MATLAB: http://www.mathworks.com Octave (windows): http://octave.sourceforge.net/ Octave (linux): digite sudo apt-get install octave no seu terminal, informe sua senha e prossiga o download. Após finalizado, digite octave no terminal 3

Vantagens Octave Software gratuito Mais leve Open source Imensa compatibilidade com MATLAB

Vantagens MATLAB Aplicações vão além de cálculos matemáticos Velocidade de processamento super rápida (funções próprias bem otimizadas) Dificilmente encontrará-se bugs no programa

Escrita de Código O código escrito em MATLAB funcionará* no Octave. Entretanto, nem todo código escrito no Octave funcionará no Matlab. *A sintaxe dos códigos são as mesmas, porém há funções exclusivas do MATLAB. Indicamos utilizar o software adotado pela professora.

Exemplos: MATLAB não aceita áspas duplas, apenas simples Operadores lógicos do MATLAB: Or - e And - & e && Not - ~ O octave aceita esses operadores, assim como os padrões de C. Também aceita aspas duplas ou simples

Operações básicas 3 + 8 (soma) 5 2 (subtração) 4 * 2 (multiplicação) 4 / 2 (divisão direta) 3^2 (potenciação) 2 \ 4 (divisão inversa)

Variáveis x = 4 + 5 X = 3/2 x = 3 + 3 Apenas duas variáveis foram criadas (X e x).

Após cada operação o resultado é armazenado em uma variável chamada ans. x = ans*4; Pode-se utilizar ; após cada ação. Isso fará com que a resposta não seja impressa na tela.

Números Complexos A estrutura de um complexo é a + i*b, onde i = sqrt(-1) z = 4 + i*3; real(z) imag(z) abs(z) angle(z) (é dado em radianos)

Vetores e Matrizes Devem ser declarados entre colchetes. Na definição de vetores e matrizes, um espaço em branco ou uma vírgula separam elementos de colunas diferentes numa mesma linha. O ponto-e-vírgula separa elementos de linhas diferentes numa mesma coluna.

V = [1 2 3] é o mesmo que V = [1,2,3] e ambos são vetores linhas. v = [1;2;3] é um vetor coluna A = [1 2 3; 4 5 6; 7 8 9] é uma matriz 3x3

Operações Pode-se fazer operações de soma, subtração, divisão e multiplicação. Para fazer uma operação elemento a elemento utiliza-se. antes do sinal de operação Exemplo: [1 2 3].*[3 2 1] = [1x3 2x2 3x1] = [3 4 3]

Acesso a valores em vetores e matrizes Acesso de elementos: V = [1 2 3] V(1) acessa o primeiro elemento V(2) acessa o segundo elemento V(3) acessa o terceiro elemento Note que o índice do primeiro elemento é 1 e não 0 como na maioria das linguagens de programação

Semelhantemente em matrizes, A = [1 2 3; 4 5 6; 7 8 9] A(1,2) é 2 >>A(1,2) = 5; Faz o elemento da primeira linha e segunda coluna (2) valer 5.

A(:,1) pegará todos os elementos da primeira coluna A(1,:) pegará todos os elementos da primeira linha A(i:j,k:l) retornará uma submatriz da matriz A

Forma útil de definir vetores vet = 1:10 é o mesmo que vet = [1 2 3 4 5 6 7 8 9 10] Vet = 1:2:10 é o mesmo que Vet = [1 2 4 6 8 10] V = linspace(0, 20, 5) Cria uma vetor de tamanho 5 com números linearmente espaçados de 0 a 20

Funções úteis size(a) Tamanho da matriz det(a) Calcula o determinante length(a) Tamanho do vetor [i,j] = find(a) Retorna índices de valores não nulos na matriz max(a) maior valor de vetor ou maior da coluna em matriz min(a) menor valor de vetor ou menor da coluna em matriz

inv(a) Calcula a inversa de A ones(i,j) Matriz de dimensão i x j de ums eye(i,j) Matriz identidade i x j zeros(i,j) Matriz de zeros i x j A Trasposta de A sort(a) Ordena A (matrizes são ordenadas por colunas) diag(a) retorna a diagonal

Isempty(x) - Verdadeiro para matrizes vazias Isequal(x, y) - Verdadeiro se matrizes forem iguais Isprime(x) - Verdadeiro para primos Isletter(x) - Verdadeiro para letras do alfabeto

Operadores relacionais e lógicos Como dados de entrada de expressões relacionais e lógicas, qualquer número diferente de zero é Verdadeiro e o zero é Falso A saída produz 1 para Verdadeiro e 0 para Falso Operadores relacionais: <, <=, >, >=, ==, ~= Operadores lógicos: & ou && (AND), ou (OR), ~ (NOT)

xor(x,y): Retorna 1 se x ou y for diferente de zero e 0 se ambos forem Falso ou Verdadeiro any(x): Retorna 1 se algum elemento difere de zero all(x): Retorna 1 se todos os elementos diferem de zero

Ajuda Comando help: Apresenta a descrição da função. Ex: help sin Comando lookfor: Procura nas funções do Octave e do MATLAB, alguma que possua em sua descrição a palavra procurada. Ex: lookfor sine Para sair do help digite 'q'.

Scripts Arquivo de extensão.m contendo comandos do MATLAB/Octave Comandos executados em série Para chamar o script, basta digitar o nome do arquivo nas linhas de comando sem a extensão

A função disp imprime algo na tela, podendo ser o valor de uma variável ou um comentário echo define se as linhas digitadas devem ser impressas ou não, inclusive comandos com ; e comentários input solicita ao usuário que forneça algum dado de entrada

Entrada de dados por arquivo importdata( arquivo ) - Faz leitura dos dados de um arquivo e em forma de uma matriz Exemplo: dados = importdata( entrada.txt ) ou entrada = entrada.txt dados = importdata(entrada)

Utilizando a função fscanf - Semelhante com leitura de dados em C - Necessita de abrir o arquivo com a função fopen, assim como em C

Forma de leitura Matriz = fscanf (fid, template, size) fid é o arquivo a ser lido template é o formato da leitura size é a quantidade de dados a ser lido Arquivo a ser lido: fid = fopen( entrada.txt, r ) - o r significa read (leitura) - para escrita usa-se w (write)

Template de leitura inteiros = %d caracter = %c float = %f notação decimal = %e (1.434e+03) misto de float e decimal = %g (recomendo sempre usar este)

Tamanho da leitura Size pode ser especificado como: Inf lê o máximo que puder e armazena em um vetor coluna n lê n elementos armazenando em um vetor coluna [n Inf] lê o máximo que puder armazenando em uma matriz de n linhas [n n] lê os elementos armazenando em uma matriz n x n

Funções Cada função deve ser criada em apenas um arquivo O nome do arquivo deve ser o mesmo nome da função (com extensão.m) Podem ser utilizadas depois em outros arquivos e outras funções ou chamadas na linha de comando

Podem ter quantos retornos e quantos parâmetros necessários Deve ser seguida uma sintaxe padrão para construção Não precisa declarar os tipos de parâmetros ou retornos

Formato de funções function [a, b, c] = nome (par1, par2,.., parn)

Fluxo de controle If/else for while break case

If/else if <expressão lógica> else end <bloco de comandos> <bloco de comandos> *No Octave pode-se utilizar endif, porém o mesmo não é válido para o MATLAB

while while <expressão lógica> end <bloco de comandos>

for for i = 1:n end <bloco de comandos> *se n = 5, o loop acontecerá 5 vezes

Switch-case u = input( Escreva a unidade de medida: ); switch u case { polegadas, pol } y = x*2.54; case { metros, m } y = x/100; otherwise disp([ unidade desconhecida: u]) end

Medição de tempo de execução tic() começa a contagem toc() finaliza a contagem retornando o valor do tempo desde o último tic() tic() <bloco de comandos> t = toc() A variável t armazenará o tempo levado para executar o bloco de comandos

Armazenagem de dados dir mostra tudo que está em sua pasta atual save <nome_arquivo> salva todas as variáveis e conteúdo do workspace load <nome_arquivo> carrega um arquivo salvo com o comando save whos mostra tudo que há em seu workspace

clear limpa o workspace clc limpa os textos do terminal *Cuidado para não confundir e apagar todo seu workspace

Gráficos plot(x, y) - Plota um gráfico de y em função de x plot(x, y, z, w) - Plota dois gráficos numa mesma figura plot(x, y, 'param') - 'param' define tipo de linha, formato do marcador e a cor do gráfico. Não há ordem específica nem é preciso determinar os três.

semilogx (x, y) - Gera gráficos com y na escala linear e x na escala logarítmica semilogy (x, y) - Gera gráficos com x na escala linear e y na escala logarítmica loglog (x, y) - Gera gráficos com x e y nas escalas logarítmicas surf(x, y, z) ou surf(a) Gera um gráfico de superfície

ezplot('curva',[a,b]) - Plota a curva no intervalo [a,b] polar(ang, f, 'param') - Plota em coordenadas polares uma função f. plot3(x, y, z) - Plota gráficos em 3D contour(z) Plota as curvas de nível da matriz Z

Funções úteis figure( valor ) grid on/off hold on/off legend title( titulo ) xlabel( label ) ylabel( label) axis

Salvando gráfico f = figure() plot(x,y) saveas(f, 'image.png'); No Octave pode-se usar: print desp arquivo.jpg print( arquivo.png )

Parâmetros da função plot plot(x, y, parâmetro ) -opções no MATLAB

-opções no Octave

Resolução de sistemas lineares Forma direta: - temos a seguinte forma: A*x = b - x = inv(a)*b ou x = A\b Decomoposição LU: - [L, U, P] = lu (A)

[lambda V] = eig (A) matriz de autovalores e autovetores poly(a) polinômio característico da matriz

Polinômios Definido como um vetor em que cada posição é um coeficiente, começando com o de mais alta ordem

Operações com polinômios roots(p) retorna as raízes do polinômio p conv(p1,p2) faz a multiplicação do polinômio p1 pelo p2 [p,r] = deconv(p1,p2) armazena a divisão de p1 por p2 em p e o resto em r [r, p, k, e] = residue(a,b) faz a expansão em frações parcias de a/b [a, b] = residue(r, p, k, e) faz o inverso

Ajuste de curva Encontrar a função que melhor se ajusta a um grupo de coordenadas Utiliza o método dos quadrados mínimos - Método muito simples e amplamente utilizado - minimização do erro relativo dos pontos à curva - Tem que fazer muita conta!

polyfit(x,y,n): retorna o polinômio de grau n que se ajusta aos pontos dos vetores dados por x e y poly(vetor) retorna um polinômio cujas raízes são os elementos do vetor polyval(p,x): avalia o polinômio p para cada elemento de x

Integrais definidas e indefinidas O MATLAB pode ser usado para resolver integrais simples, duplas e triplas definidas ou indefinidas O Octave, porém, só resolve integrais indefinidas de polinômios Para encontrar a área de diversos tipos de função existem várias formas, tanto no MATLAB como no Octave

trapz(x,y) - Aproximação trapezoidal quad(f,a,b) - Quadratura Gaussiana quadv(f,a,b) - Regra de Simpson adaptada quadl(f,a,b) quadgk(f,a,b) quadcc(f,a,b) polyint(p,cte) - Integral indefinida de algum polinômio

Definição de funções matemáticas Função matemática - f(x) = x² + 2x + 1 Representação - @(x) x.^2 + 2*x +1 Fxy = @(x, y) sin(pi*x.*y).*sqrt(x.*y) Funções definidas dessa forma que são usadas nos métodos de integração

Integrais duplas e triplas dblquad(f, xa, xb, ya, yb) triplequad(f, xa, xb, ya, yb, za, zb)

Diferenciação Comando diff Funciona como derivação de função apenas no MATLAB Avalia apenas diferenças no Octave. Pode ser usado de forma a calcular derivadas em determinado ponto

Avaliação da derivada em um certo ponto: Dy = diff(y)./diff(x); Pode-se usar a derivada através do método das diferenças finitas também

Derivada no MATLAB Deve-se criar uma variável simbólica: syms x Função que utiliza esta variável f = sin(x) Mandar derivar diff(f)

Utilizando mais de uma variável syms s t f = sin(s*t); diff(f,t) Derivar em relação a t syms x n f = x^n diff(f)

Resolução de Equações Diferenciais dsolve MATLAB - Resolve equações diferenciais ordinárias e sistemas de equações diferenciais lsode Octave - Resolve equações diferenciais numericamente Transformada de Laplace (MATLAB)

dsolve

lsode Faz o mesmo que a dsolve, porém trabalha apenas com valores numéricos (vetor de dados) Um pouco mais complicada de utilizar

Transformada de Laplace Amplamente usada em simulação de sistemas dinâmicos Utiliza variáveis simbólicas - laplace(f) Faz a transformada - ilaplace(s) Faz a transformada inversa