Programação em MatLab Prof. MSc Delnir M. de Lemos 1 Objetivos Fornecer os conceitos básicos de algoritmos e programação utilizando o Matlab como linguagem de desenvolvimento. ● Dar a capacidade de análise e raciocínio para permitir resolver problemas através do desenvolvimento de programas. ● Prof. MSc Delnir M. de Lemos 2 1 Programa Estrutura de um programa • Entrada e saí saída de dados no Matlab • Instruç Instruções condicionais • Laç Laços • Funç Funções ● Dados numé numéricos • Cadeia de caracteres • Estruturas de dados mais complexas (structs...) • Introduç Introdução a Interface Grá Gráfica do Matlab ● Prof. MSc Delnir M. de Lemos 3 Aulas Práticas Utilização intensiva do computador • Postos de trabalho para 2 alunos • Aulas uma vez por semana em coerência temática com as aulas teóricopráticas – muitos exercícios: Necessidade de trabalho em casa • As frequências são individuais ● Prof. MSc Delnir M. de Lemos 4 2 Bibliografia • “Matlab 6, Curso Completo”, Duane Hanselman, Prentice Hall • “Matlab Primer”, Kermit Sigmon • “Using Matlab”, Mathworks. • “Getting Started with Matlab”, Mathworks • “Using Matlab Graphics”, Mathworks • "An Introduction to Computer Programing for Engineers ans Scientists" De Pacek e Juanes • “Introduction to Programming with Matlab” by J. Michael Fitzpatrick and John D. Crocetti • Help Online do Matlab Prof. MSc Delnir M. de Lemos 5 Recursos Online http://www.cti.furg.br/~dmlemos/LogPro.htm Prof. MSc Delnir M. de Lemos 6 3 Linguagens de programação Prof. MSc Delnir M. de Lemos 7 Tópicos • O que é um programa • Matlab vs outras linguagens de programação • Paradigma de programação • Fases de desenvolvimento de um programa Prof. MSc Delnir M. de Lemos 8 4 O que é um programa? • Computadores podem manipular e calcular grandes quantidades de informação a grande velocidade. • São inúteis se não se específica exactamente o que queremos realizar com eles através de comandos bem definidos. • Um Programa é um conjunto de comandos. Prof. MSc Delnir M. de Lemos 9 Linguagens de Programação • A partir de 1940 foram sendo desenvolvidos várias linguagens de programaç programação: – Máquina, baixo ní nível, alto ní nível,… vel,… – Matlab, C++, JAVA, Fortran,… Fortran,… • O que distingue as linguagens são os tipos de problemas que pretendem resolver. • Matlab: Matlab: excelente para escrever pequenos programas que manipulam nú números. Problemas complexos podem ser resolvidos em poucas linhas de có código. Prof. MSc Delnir M. de Lemos 10 5 Exemplo de Programa • Cálculo de uma mé média ponderada: – Notas: n1, n2 e n3. – Pesos respetivos: p1, p2 e p3. n1 p1+ n2 p2 + n3 p3 media = p1 + p2 + p3 Prof. MSc Delnir M. de Lemos 11 Programa em C Prof. MSc Delnir M. de Lemos 12 6 Programa em MatLab % Programa para calcular uma media ponderada notas = input('Introduza as notas: '); pesos = input('Introduza os pesos: '); media = sum(notas*pesos)/sum(pesos) Prof. MSc Delnir M. de Lemos 13 Comparação MatLab/C • Matlab tem vantagens: – Programas muito mais simples: escrita mais rápida e com menos erros. – Versatilidade, mais fácil de adaptar a diferentes tipos de dados. – Muito eficiente e melhor solução para pequenos programas que envolvem cálculo numérico => Muitos dos problemas de geomática encaixam neste perfil Prof. MSc Delnir M. de Lemos 14 7 Comparação MatLab/C • Mas existe um preço a pagar: – Para programas mais complexos, melhor outras linguagens mais estruturadas que reduzem a possibilidade de erro. Ex: Sistemas operacionais. – Pouco optimizado para operações não numéricas (aplicações gráficas, processadores de texto, etc…) – Aplicações Matlab boas para quem conhece Matlab – Matlab é interpretado, logo Prof. MSc Delnir M. de Lemos mais lento 15 Paradigma de Programação • Metodologia de programação para desenvolver uma aplicação: – Dividir para conquistar. – Decomposição de cima para baixo (TopDown). – Refinamento passo a passo. Prof. MSc Delnir M. de Lemos 16 8 Fases de Desenvolvimento de um Programa • Análise do problema – Especificação do problema – Análise algorítmica – Teste do algoritmo • Implementação da aplicação – Geração do código – Teste e validação do código Prof. MSc Delnir M. de Lemos 17 Introdução ao MatLab MATLAB ( que abrevia MATrix LABoratory – Laboratório de Matrizes) é um programa de computador especializado e otimizado para cálculos científicos e de engenharia. Inicialmente era projetado para cálculos com matrizes; ao longo dos anos, transformou-se em um sistema computacional flexível, capaz de resolver essencialmente qualquer problema técnico. Prof. MSc Delnir M. de Lemos 18 9 Vantagens do MatLab Facilidade de Uso; Independência de Plataforma; Funções Predefinidas; Desenhos Independentes de Dispositivos; Interface Gráfica de Usuário (GUI) O Compilador MATLAB (pcode) Prof. MSc Delnir M. de Lemos 19 Desvantagens do MatLab O MatLab tem duas desvantagens principais: Primeiro, ele é uma linguagem interpretada; Segunda desvantagem – CUSTO: uma cópia completa do MatLab é de cinco a dez vezes mais cara que um compilador convencional C. Prof. MSc Delnir M. de Lemos 20 10 O Ambiente MatLab A unidade fundamental de dados em qualquer programa MatLab é a matriz. Uma matriz é uma coleção de valores de dados organizados em linhas e colunas, determinada por um nome único. Na execução do MatLab podem ser exibidas janelas de diferentes tipos, as quais aceitam comandos ou exibem informações. Os 3 tipos mais importantes de janelas são: Janela de Comandos, Janela de Figuras e Janela de Edição/Depuração Prof. MSc Delnir M. de Lemos 21 A Área de Trabalho MatLab Ao iniciar o MatLab, aparece uma janela especial denominada área de trabalho MATLAB. Principais ferramentas presentes nela: Janela de Comandos; Janela de Histórico de Comandos; Espaço de Lançamento; Janela de Edição/Depuração; Janela de Figuras; Navegador do Espaço de Trabalho e Editor de Matrizes; Navegador de Ajuda; Navegador de Diretório Corrente. Prof. MSc Delnir M. de Lemos 22 11 A Área de Trabalho MatLab Permite verificar ou alterar o diretório corrente Ajuda Espaço de Lançamento Janela de Histórico de Comandos Navegador de Diretório Corrente Janela de Comandos Navegador da Área de Trabalho Prof. MSc Delnir M. de Lemos 23 A Janela de Comandos A Janela de Comandos fica mais à direita na área de trabalho. Os usuá usuários podem inserir comandos e ver as respostas ali. Prof. MSc Delnir M. de Lemos 24 12 A Janela de Histórico de Comandos Janela de Histó Histó rico de Comandos, mostrando dois comandos sendo apagados. Prof. MSc Delnir M. de Lemos 25 O Espaço de Lançamentos O Espaç Espaço de Lanç Lançamento é uma ferramenta especial que agrupa referências a documentaç documentação, demonstraç demonstrações e ferramentas relacionadas para o pró próprio MatLab e para cada conjunto de ferramentas que você adquire. A figura mostra o Espaç Espaço de Lanç Lançamento com referências expandidas para o MatLab básico. Prof. MSc Delnir M. de Lemos 26 13 A Janela de Edição/Depuração Uma Janela de Ediç Edição/Depuraç ão/Depuração é usada para criar novos arquivos M ou modificar os já já existentes. A Janela é essencialmente um editor de textos de programas, com caracterí características da linguagem MatLab destacadas por cores diferentes. Uma vez gravado o arquivo M, ele pode ser executado ao digitarmos o seu nome na Janela de Comandos. Comandos. A Janela de Ediç Edição/Depuraç ão/Depuração, exibindo o arquivo calc_area.m calc_area.m Prof. MSc Delnir M. de Lemos 27 A Janela de Figuras Desenho MatLab de seno(x) versus x. Uma Janela de Figuras é usada para exibir grá gráficos MatLab. MatLab. Uma figura pode ser a representaç representação grá gráfica bidimensional ou tridimensional de dados, uma imagem ou uma GUI. GUI. Prof. MSc Delnir M. de Lemos 28 14 O Espaço de Trabalho MatLab Um espaç espaço de trabalho é a coleç coleção de todas as variá variáveis e matrizes que podem ser usadas pelo MatLab quando um comando, arquivo M ou funç função em particular está está em execuç execução. Uma lista de todas as variá variáveis e matrizes pode ser gerada pelo comando whos. whos. Uma variá variável pode ser apagada do espaç espaço de trabalho usando o comando clear. clear. Este comando tem a seguinte forma: clear var1 var2 ... onde var1 e var2 são os nomes das variá variáveis a serem apagadas. Prof. MSc Delnir M. de Lemos 29 O Navegador do Espaço de Trabalho Permite que o conteú conteúdo do espaç espaço de trabalho possa ser examinado. Fica no canto superior esquerdo da área de trabalho. Prof. MSc Delnir M. de Lemos 30 15 O Editor de Matrizes O Editor de Matrizes é acionado clicando duas vezes sobre uma variá variável no Navegador do Espaç Espaço de Trabalho. Trabalho. O Editor de Matrizes permite que o usuá usuário modifique os valores contidos em uma variá variável. Prof. MSc Delnir M. de Lemos 31 Obtendo Ajuda Existem 3 maneiras de obter ajuda no MatLab: MatLab: • atravé ; através do botão • digitando helpdesk ou helpwin; helpwin; • digitando help ou lookfor seguindo do nome de um comando. Navegador de Ajuda Prof. MSc Delnir M. de Lemos 32 16 O Caminho de Busca MatLab A Ferramenta de Caminhos Prof. MSc Delnir M. de Lemos 33 Alguns Comandos Importantes • demo – executa demonstraç demonstrações fornecidas no MatLab; MatLab; • clc – esvazia o conteú conteúdo da Janela de Comandos; • clf – esvazia o conteú conteúdo da Janela de Figuras; • clear – esvazia as variá variáveis no espaç espaço de trabalho; • abort (^C) – interrompe a execuç execução de um arquivoarquivo-M; • ! – envia comandos para o sistema operacional do computador; • diary nome do arquivo – copia para um arquivo todos os dados de entrada e a maioria dos dados de saí saída digitados na Janela de Comandos; • diary off – suspende a entrada de dados no arquivo de diá diário; Prof. MSc Delnir M. de Lemos 34 17 Erros de Programação • Nunca use uma variá variável com nome igual ao de uma funç função ou comando MATLAB. Se você fizer isso, aquela funç função ou comando ficará ficará inacessí inacessível. • Nunca crie um arquivo M com nome igual ao de uma funç função ou comando MATLAB. Prof. MSc Delnir M. de Lemos 35 Utilizando o MatLab como Prancheta de Rascunhos Em sua forma mais simples, o MatLab pode ser usado como prancheta de rascunhos para efetuar cá cálculos matemá matemáticos. Os cá cálculos são digitados diretamente na Janela de Comandos, usando os sí símbolos +, -, *, / e ^, para soma, subtraç subtração, multiplicaç multiplicação, divisão e potência, respectivamente. Apó Após digitar uma expressão, o resultado é automaticamente calculado e exibido. Prof. MSc Delnir M. de Lemos 36 18 TESTE 1 1. Qual é a funç função da janela de Comandos MatLab? MatLab? E a da Janela de Ediç ç ão/Depuraç ç ão? E a da Janela de Figuras? Edi ão/Depura 2. Liste as diferentes maneiras de obter ajuda no MatLab? MatLab? 3. O que é um espaç ç o de trabalho? Como você pode determinar o que espa está á armazenado em um espaç ç o de trabalho MatLab? est espa MatLab? 4. Como você pode limpar o conteú ú do de um espaç conte espaço de trabalho? 5. A distância percorrida por uma bola em queda livre é dada pela equaç equação (1) abaixo. Use o MatLab para calcular a posiç posição da bola no tempo t = 5 s se x0 = 10 m, v0 = 15 m/s e a = -9,81 m/s2. 6. Supunha que x = 3 e y = 4. Use o MatLab para avaliar a seguinte expressão (2) abaixo. 1) 1 x = x0 + v0t + at 2 2 2) x2 y3 ( x − y )2 Prof. MSc Delnir M. de Lemos 37 TESTE 1 7. Execute os arquivos M calc_area.m calc_area.m e sin_x.m sin_x.m na Janela de Comandos. Depois, utilize o Navegador do Espaç Espaço de Trabalho para determinar quais variá variáveis estão definidas no espaç espaço de trabalho corrente. 8. Use o Editor de Matrizes para examinar e modificar o conteú conteúdo da variá variável x no espaç espaço de trabalho. Então, digite o comando plot(x,y) (x,y) na Janela de Comandos. O que plot acontece com os dados exibidos na Janela de Figuras? Prof. MSc Delnir M. de Lemos 38 19