Programação em MATLAB



Documentos relacionados
INTRODUÇÃO À LINGUAGEM C++

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

JavaScript (ou JScript)

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

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

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

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

LINGUAGEM C. Estrutura básica de um programa

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:

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Algoritmos e Programação

Comandos de repetição while

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

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

Linguagem de Programação I

Capítulo 12. SUB-ROTINAS

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

Aluísio Eustáquio da Silva

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

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Microsoft Excel. O que é? Para que serve? É um poderoso programa de folha de cálculo.

COMO PROGRAMAR SEU TIME

Programação: Estruturas de seleção

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Formador: Carlos Maia

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

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

Validação e Proteção de dados no Excel

Primeiro roteiro de exercícios no Scilab Cálculo Numérico

Exercícios de Revisão Java Básico

Noções Várias em Visual Basic

Programação científica C++

INTRODUÇÃO À PROGRAMAÇÃO DO ACCESS BASIC

Aula de JavaScript 05/03/10

Notas de Aula MatLab - 2

Estruturas de Repetição

Estrutura de Dados Básica

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

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

TÉCNICAS DE PROGRAMAÇÃO

Capítulo 15. INICIALIZAÇÃO, TEMPO DE CPU E DOS

Programação para web JavaScript

Conceitos básicos da linguagem C

Bases de Dados 2007/2008. Aula 8

COMPUTAÇÃO E PROGRAMAÇÃO

Sistemas e Sinais (LEE & LETI)

Testando e Comparando Valores

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

Programação WEB I Estruturas de controle e repetição

Programando em C++ Histórico da Linguagem C

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Algoritmos e Programação _ Departamento de Informática

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Introdução sobre Scilab

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

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

MATERIAL DE APRESENTAÇÃO DO SCRATCH

Tutorial do Interpretador de Linguagem Algorítmica (ILA)

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

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

Estrutura Condicional em Java

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

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Alguns truques do Excel. 1- Títulos com inclinação. 2- Preencha automaticamente células em branco

7. Estrutura de Decisão

9 Comandos condicionais

Computação II Orientação a Objetos

Folha de Cálculo TECNOLOGIAS DA T IINF CO RM 1 A 0 ÇÃO E COMUNICAÇÃO TIC 10

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

Programação de Computadores I. Linguagem C Arquivos

Tarefa Orientada 18 Procedimentos armazenados

AULA 1 AULA 2. Estudo dirigido para as três primeiras AULAS de LPI Professora ANITA MACIEL 1º ESTUDO DIRIGIDO

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

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br

Folha de Cálculo Introdução à Folha de Cálculo

Java Como Programar, 8/E

Tabelas vista de estrutura

Conectar diferentes pesquisas na internet por um menu

Variáveis e Comandos de Atribuição

DESENVOLVIMENTO DE SOFTWARE

Introdução. Introdução. Objetivos da Aula. Bases Computacionais da Ciência(BC-0005)

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

Capítulo 5: Aplicações da Derivada

MANIPULAÇÃO DE STRINGS

Capítulo 7 Nível da Linguagem Assembly

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

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

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Exemplos: Pág 5 FUNÇÕES. UC Extensão - Excel Docente: André Luiz Silva de Moraes OPERADORES BOOLEANOS

Javascript 101. Parte 2

Transcrição:

Programação em MATLAB UNIVERSIDADE DA BEIRA INTERIOR Departamento de Matemática

Conteúdo 1 Introdução 2 2 Scripts 3 3 Funções 5 4 Programação 7 5 Escrita e leitura de arquivos 11 6 Gráficos especiais 13 1

Capítulo 1 Introdução A utilização do Matlab apenas com a janela de comandos torna bastante difícil emendar erros e guardar instruções para repetir noutra sessão. Para resolver este inconveniente existem os scripts e funções. São ficheiros de texto com extensão.m. Para melhorar estes ficheiro o Matlab permite uma linguagem de programação de alto nível. Com os scripts e funções podemos criar rotinas próprias e adicioná-las às já existentes. 2

Capítulo 2 Scripts Um script é um conjunto de instruções do MATLAB gravados num ficheiro (com a extensão.m chamados m-files), como está exemplificado na figura 2.1. É equivalente a escrever todas as instruções na janela principal, só que armazenadas num arquivo. O script trabalha com variáveis globais (apresentadas no directório de trabalho), ou seja, lê e escreve as variáveis do ambiente de trabalho. É preciso ter cuidado pois também pode alterar variáveis existentes, sem avisar. Nos scripts podemos escrever informação útil para o utilizador, mas que não faz parte de nenhuma Figura 2.1: Exemplo de um script instrução. Tudo o que é escrito após o símbolo %, numa linha, é considerado comentário e o Matlab não lê. O ; no final da instrução permite que seja efectuada a instrução sem apresentação do resultado. No caso de a instrução não ser finalizada com ; o resultado é mostrado na janela de comandos. A apresentação dos resultados também pode ser feita com o comando fprintf. A entrada de variáveis que não existem no ambiente de trabalho pode ser feiro com o comando input. Para executar o script basta escrever o nome do arquivo (sem a extensão.m), como mostra a figura 2.2. 3

Scripts Figura 2.2: Exemplo de utilização de um script A utilização de scripts requer alguns cuidados. NUNCA grave o script com o mesmo nome de uma variável nele utilizada. O nome do arquivo script deve começar por uma letra. Seja cuidadoso com os nomes das variáveis no script (todas essas variáveis são gravadas no ambiente de trabalho) Exercícios 1. Construa um script que transforma um número x em graus, num número y em radianos. 2. Faça um script que mostra na janela principal uma tabela de conversão de graus Celsius para graus Fahrenheit. ( Considere C=-40:5:100) 3. Construa um script que: traça o gráfico da função tan(x) a azul, no intervalo [ π, π]; representa a tracejado verde as assimptotas; marca com um circulo vermelho os zeros da função; insere as legendas e título. 4

Capítulo 3 Funções Funções são m-files contendo um conjunto de instruções do Matlab, como um script, só que todas as variáveis são locais e não globais. São como programas ou subrotinas no Fortran. Para distinguir as funções dos scripts a primeira instrução é function. A seguir na 1 a linha do arquivo define-se as variáveis de entrada e de saída, e o nome da função, como mostra a figura 3.1. O nome da função deve ter o mesmo nome do arquivo a ser gravado. Figura 3.1: Exemplo de uma função Para executar uma função existem várias opções. Podemos guardar todas as variáveis de saída ou apenas as primeiras, como está exemplificado na figura 3.2. Algumas dicas para construir funções. Crie uma estrutura lógica e pense na sequência computacional antes de escrever o código. Escreva-a num papel. Defina as variáveis de entrada e saída. Traduza o que escreveu no papel para a lingagem do Matlab. 5

Funções Figura 3.2: Exemplo de uma função Defina nomes lógicos para as variáveis e funções. Divida grandes blocos computacionais e escreva-os em funções separadas. Verifique os erros e a saída com mensagens de erro e use o artifício do ; para verificar os passos intermédios de cálculo. O termo de definição deve ser escrito com letra minúscula ( function e não Function ). Os comentários começam com %, podendo ser colocados em qualquer lugar. Todas as linhas com comentários imediatamente após a primeira linha são mostradas no Matlab help. Escreva o máximo de comentários possíveis no código. Uma simples variável de saída não precisa ser fechada por parênteses rectos [ ]. O nome das variáveis de entrada e de saída declaradas na primeira linha são variáveis locais. Exercícios 1. Construa uma função cuja entrada é um número x em graus, e devolve o seu valor em radianos. 2. Faça uma função que dadas 2 matrizes calcule a soma e diferença. 3. Construa uma função que converte a pressão de atm para N/m 2. 6

Capítulo 4 Programação Nos scripts e funções as instruções são executadas pela ordem que estão escritas, para mudar a ordem com que são executadas são necessários alguns comandos. O Matlab tem um conjunto de comandos para controlar o fluxo das instruções, de entre eles destacamos: for e while - para ciclos. if-elseif-else - para condições simples. switch-case-otherwise - para condições mais complexas. break, return e error - para terminar operações. Cada um dos controladores de fluxo deve terminar com end. Ciclo for Um for é usado para repetir uma operação ou um grupo de operações para um número de vezes predefinido. Figura 4.1: Exemplo do ciclo for A forma de utilizar é: for contador=vector instruç~oes 7

Programação end A variável que define o contador é um vector, não necessariamente de valores inteiros. As instruções são executadas para cada elemento do vector. Ciclo while Um while é usado para repetir uma operação ou um grupo de operações para um número indefinido de vezes enquanto que a condição especificada seja satisfeita. Figura 4.2: Exemplo do ciclo while A sintaxe é while condiç~ao instruç~oes end É necessário garantir que alguma vez a condição não é satisfeita, pois caso contrário o programa entra num ciclo infinito. Para parar um ciclo infinito pode-se utilizar as teclas ctrl e c simultaneamente. Condicional if O comando if cria blocos condicionais. O comando é utilizado da forma: if condiç~ao instruç~oes else instruç~oes end Se a condição é verdadeira realiza o primeiro bloco de instruções. realiza o segundo bloco. No caso de vários condicionais encadeados podemos utilizar elseif Observações: Se a condição é falsa 8

Programação Figura 4.3: Exemplo do condicional if Não é necessário utilizar sempre o comando completo, por vezes basta o if e end. A instrução elseif pode ser utilizada as vezes que for necessária. Condicional switch Cria blocos condicionais. Uma variável é usada como um dispositivo de direccionamento (switch), onde cada valor dessa variável direcciona para um caso (case). Figura 4.4: Exemplo do condicional switch A sintaxe é: switch variável case valor1 instruç~oes case valor2 instruç~oes... otherwise instruç~oes end Observações: Não é necessário utilizar sempre o comando completo, por vezes basta o switch e case. 9

Programação A instrução case pode ser utilizada as vezes que for necessária. Operadores Booleanos O resultado das condições tem de ser uma variável booleana, com os valores 1 ou 0. O valor 0 quando a condição é falsa e 1 quando verdadeira. Essencialmente existem dois tipos de operadores. Relacionais Os relacionais permitem comparar elementos <, <=, >, >=, ==, =. Lógicos Os lógicos permitem construir proposições. & ou and - conjunção; ou or - disjunção; ou not - negação; Comandos de paragem Para terminar a execução de algumas instruções o Matlab tem alguns comandos de paragem. error( mensagem ) dentro de uma função ou script, sai da execução da rotina e mostra uma mensagem de erro. return dentro de uma função ou script, sai da execução da rotina. break dentro de um for ou while, termina a execução do ciclo. Figura 4.5: Exemplo de utilização dos comandos de paragem Exercícios 1. Faça um programa que verifica se um número é primo. 2. Um fornecedor faz o seguinte desconto num determinado produto: mais de 200 unidades 7%; de 100 a 200 uni. 5%; de 50 a 100 uni. 3%; menos de 50 unidades não tem desconto. Escreva um programa que calcula o preço total, dado o n o. de unidades e o preço unitário. 10

Capítulo 5 Escrita e leitura de arquivos O MATLAB possui algumas funções para ler e escrever dados em arquivos do tipo binário ou ASCII formatados. As funções são: fopen: abre um arquivo existente ou cria um novo arquivo fclose: fecha um arquivo aberto fwrite: escreve uma informação binário para um arquivo fread: lê informação binário num arquivo fscanf: lê informação formatada num arquivo fprintf: escreve informação formatada num arquivo Figura 5.1: Exemplo de escrita de dados num ficheiro Para ler e escrever informação formatada os comandos são: 11

Escrita e leitura de arquivos Figura 5.2: Exemplo da leitura de dados escritos num ficheiro Formato Descrição %c Simples caracter %d Notação decimal %e Notação exponencial (usando e minúsculo ) %E Notação exponencial (usando e maiúsculo ) %f Notação fixando ponto %g O mais compactado de %e ou %f %o Notação Octal %s Grupos de caracteres %x Notação Hexadecimal Exercícios 1. Construa um programa que escreve num ficheiro de texto uma tabela de conversão entre as unidades de temperatura Fahrenheit, Kelvin e Celsius. 2. Crie um programa que gera aleatoriamente um conjunto de 100 elementos normalmente distribuídos e os escreva num ficheiro. 3. Faça um programa que lê o ficheiro da alínea anterior, calcule a média dos dados e apresente um gráfico dos valores lidos. 12

Capı tulo 6 Gra ficos especiais fplot Representa gra ficos de func o es de uma forma simples. Por exemplo: >>fplot( x.*sin(x),[0 10*pi]) semilogy O gra fico e representado com escala logarı tmica (base 10) no eixo y. >> x=linspace(0,2*pi,200); >> y=exp(-x); >> semilogy(x,y) >> grid on semilogx O gra fico e representado com escala logarı tmica (base 10) no eixo x. >> x=linspace(0,2*pi,200); >> y=log(2*x); >> semilogx(x,y) >> grid on 13

Gráficos especiais loglog O gráfico é representado com escala logarítmica (base 10) nos dois eixos. >>t=linspace(0,2*pi,200); >>x=exp(t); >>y=100+exp(2*t); >>loglog(x,y); >>grid on fill Representa o polígono e pinta a área limitada pelo polígono. Se necessário une o primeiro e o último ponto para fechar o polígono >>t=linspace(0,2*pi,200); >>r=sqrt(abs(2*sin(5*t))); >>x=r.*cos(t); >>y=r.*sin(t); >>fill(x,y, k ) >>axis( equal ) errorbar Representa a função e a margem de erro para cada ponto. >>x=0:0.1:2; >>aprx2=x-x.^3/6; >>er=aprx2-sin(x); >>errorbar(x,aprx2,er) 14

Gráficos especiais barh Desenha um gráfico de barras horizontal. >>cont=char( Asia, Europa,...... Africa, America do Norte,...... America do Sul ); >>pop=[3332;696;694;437;307]; >>barh(pop) >>for i=1:5, gtext(cont(i,:)); end >>xlabel( Polulaç~ao em Milh~oes ) >>title( Populaç~ao do Mundo (1992) ) plotyy Representa duas funções no mesmo intervalo mas com escalas diferentes. Um eixo é representado à esquerda e outro à direita. >>x=1:0.1:10; >>y1=exp(-x).*sin(x); >>y2=exp(x); >>Ax=plotyy(x,y1,x,y2); >>hy1=get(ax(1), ylabel ); >>hy2=get(ax(2), ylabel ); >>set(hy1, string, e^(-x)*sin(x) ); >>set(hy2, string, e^x ); area Desenha a função e preenche a área limitada pela função e o eixo. >>x=linspace(-3*pi,3*pi,100); >>y=-sin(x)./x; >>area(x,y) >>xlabel( x ) >>ylabel( sin(x)./x ) >>hold on >>x1=x(46:55); >>y1=y(46:55); >>area(x1,y1, facecolor, y ) 15

Gráficos especiais stem Representa uma sequência. >>t=linspace(0,2*pi,100); >>f=exp(-0.2*t).*sin(t); >>stem(t,f) compass Desenha vectores. >>th=linspace(0,2*pi,11); >>zx=cos(th); >>zy=sin(th); >>z=zx+i*zy; >>compass(z) comet Representa uma animação onde a função é desenhada como sendo a trajectória de um cometa. >>q=linspace(0,10*pi,20000); >>y=q.*sin(q); >>comet(q,y) quiver Representa o campo de velocidades com vectores. >>r=-2:0.2:2; >>[X,Y]=meshgrid(r,r); >>Z=-0.5*X.^2 + X.*Y + Y.^2; >>[dx,dy]=gradient(z,.2,.2); >>quiver(x,y,dx,dy,2); 16

Gráficos especiais surfc Representa a superfície e as curvas de nível. >>u=-5:0.2:5; >>[X,Y]=meshgrid(u,u); >>Z = cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4); >>surfc(x,y,z) >>axis( off ) pie3 Desenha um gráfico circular em 3D. >>pop=[3332;696;694;437;307]; >>pie3(pop) >>title( populaç~ao do mundo ) stem3 Representa uma sequência em 3D. >>t=linspace(0,6*pi,200); >>x=t; >>y=t.*sin(t); >>z=exp(t/10)-1; >>stem3(x,y,z) ribbon Representa uma função em forma de fita. >>t=linspace(0,5*pi,100); >>y=sin(t); >>ribbon(t,y,0.1) 17

Gráficos especiais sphere Desenha uma esfera. >>sphere(20) ou >>[x,y,z]=sphere(20); >>surf(x,y,z) >>axis( equal ) cylinder Desenha um cilindro por rotação de uma função. >>z=0:0.02:1; >>r=sin(3*pi*z)+2; >>cylinder(r) slice Mostra alguns cortes de funções em 4D. >>v=[0,1]; >>[x,y,z]=meshgrid(v,v,v); >>slice(x,y,z,z,[0,1],[0,1],[0,1]) >>axis([-.1,1.1,-.1,1.1,-.1,1.1]) movie Mostra um filme. >>nframes = 36; >>Frames = moviein(nframes); >>angulo = linspace(0,360,36); >>x=linspace(-3,3,100); >>[X,Y]=meshgrid(x,x); >>Z=X.*Y.*(X.^2-Y.^2)./((X.^2+Y.^2)); >>mesh(x,y,z) >>for i=1:nframes view(angulo(i),30) Frames(:,i)=getframe; end >>movie(frames,2) 18