64
INFORMÁTICA APLICADA À ENGENHARIA MECÂNICA E O USO DO MATLAB Prof. Dr. Newton Sure Soeiro TUCURUÍ – PARÁ MAIO - 2008

Documenta

Embed Size (px)

DESCRIPTION

a

Citation preview

  • INFORMTICA APLICADA ENGENHARIA MECNICA E O USO DO

    MATLAB

    Prof. Dr. Newton Sure Soeiro

    TUCURU PAR MAIO - 2008

  • INFORMTICA APLICADA ENGENHARIA MECNICA

    PARTE I: Conceitos Bsicos

  • SUMRIO

    1. Dados e Informaes ........................................................................... 12. Processamento de Dados ..................................................................... 13. Computador ......................................................................................... 14. Programa, Hardware e Software ....................................................... 25. A estrutura Bsica de um Computador ............................................. 36. Placas Controladoras .......................................................................... 57. Tipos de Impressora ............................................................................ 58. Unidades de Armazenamento de Dados ............................................ 69. Outros Dispositivos .............................................................................. 710. Software: os Programas de Computador ........................................ 811. Tipos de Programa ............................................................................ 912. Uma Viso Geral de um Centro de Computao ........................... 1113. Fundamentos da INTERNET ........................................................... 1214. Principais Servios na INTERNET .................................................. 1315. Os Vrus de Computador .................................................................. 1416. Instalando um Programa Novo no Computador ............................ 1517. Pirataria de Software ........................................................................ 16

  • INFORMTICA APLICADA

    Pg: 1

    Conceitos Bsicos

    DADO E INFORMAO Um Dado seria a matria prima originalmente obtida de umaou mais fontes e Informao seria o produto resultante do processamento.

    Exemplo: Despesas do lar

    Dados:

    AluguelTelefoneGasolinaEnegia eltricaEscolaSupermercadoAgua

    Informao

    Despesa total no ms (obtidapela soma de todas as despesas)

    PROCESSAMENTO DE DADOS - Sequncia ordenada de atividades realizadas sobredados iniciais gerando informaes a partir destes com um fim de cumprir um ou maisobjetivos

    COMPUTADOR - Toda e qualquer mquina capas de tomar dados iniciais, processa-los e fornecer resultados desta manipulao. Ou seja uma mquina capaz de realizar

    TelefoneGasolina

    EnergiaEltrica

    Escola

    Supermercado

    Despesa totaldo Ms

    Processamentode Dados

    DADOS INFORMAO

    DADOS PROCESAMENTODE DADOS

  • INFORMTICA APLICADA

    Pg: 2

    o processamento de dados. Por isto ele composto de uma parte fsica (fios, discos,tela, impressora, teclado, mouse, etc) que ir processar os dados e uma parte lgica (osprogramas codificados nele) que instruir a mquina a como fazer o processamento. Aprimeira parte denomina-se HARDWARE e asegunda SOFTWARE.

    PROGRAMA - O processamento de dados se d atravs da execuo de umainfinidade de instues de manipulao dos dados. Um programa um conjunto deinstues ordenadas a fim de cumprir um objetivo. Sempre que um programa executado aquelas instrues so executadas uma a uma e em grande velocidade.Assim, quando executamos um programa estamos fazendo fazer um processamento dedados.

    HARDWARE o conjunto que compea parte fsica do computador tais comocircuitos, cabos, tela do computador, teclado, impressora, discos de armazenagem, etc

    SOFTWARE a parte lgica do computador composta dos programas e dados queorientam a mquina de como fazer o processamento.

    SOFTWARE

    HARDWARE

    COMPUTADOR+ =

  • INFORMTICA APLICADA

    Pg: 3

    A ESTRUTURA BSICA DE UM COMPUTADOR

    DISPOSITIVOS DE ENTRADA : Dispositivos para entrada de dados que seroprocessados.

    Ex:Teclado, mouse, leitora cdigo de barras, microfone, scanner, etc

    UNIDADE DE SADA: Dispositivos para exibio dos resultados.Ex: Vdeo, impressora, plotter, alto-falante, etc

    UNIDADE DE ARMAZENAGEM : Dispositivos para armazenar dados. Nestas unidadesos dados permanecem gravados mesmo aps desligarmos o computador.

    Ex: Discos Rgidos, Disquetes, CD-Rom, Fitas Magnticas, etc

    UNIDADE CENTRAL DE PROCESSAMENTO (CPU): Responsvel peloprocessamento dos dados. Ela segue as instrues contidas nos programas.

    MEMRIA PRINCIPAL : Armazena os dados no momento do processamento. composta de duas partes : memria RAM e memria ROM. Sua armazenagem denatureza eletrnica e portanto sob queda de energia seus dados sero perdidos.

    UNIDADE CENTRAL DEPROCESSAMENTO

    UNIDADE DEARMAZENAGEM

    MEMRIA PRINCIPAL

    DISPOSITIVOS DESADA

    DISPOSITIVOS DEENTRADA

  • INFORMTICA APLICADA

    Pg: 4

    O computador recebe o dados atravs de uma de suas unidades de entrada e envia-ospara a memria principal (RAM) para serem processados. L ele sero manipuladosdiretamente pela unidade central de processamento.

    A memria principal o local onde os dados ficam no momento em que esto sendoprocessados. Fora isto eles ficam gravados em alguma unidade de armazenagem.

    Disquete

    Mircoprocessador(CPU)

    CD-ROM

    FitaMagntica

    Disquete

    Teclado

    Gabinete

    Placa Me

    Fonte deenergia

    Monitor

    DiscoRgidoImpressra

    Placascontroladoras

  • INFORMTICA APLICADA

    Pg: 5

    PLACAS CONTROLADORAS

    As placas controladoras fazem a comunicao dos diversos dispositivoscom a CPU. Para cada dispositivo novo instalado no computador vemacompanhando a respectiva placa controladora. Ex: Placa controladora devdeo, de impressora, de rede, de scanner, de cmera de vdeo, etc

    TIPOS DE IMPRESSRASPlotter - Usa uma ponta de tinteiro (pena) para fazer aimpresso. A ponta tinteiro se move sobre o papel para fazero desenho. Usada para impresso de projetos e imagens empapeis de tamanho grande.

    Impressra Maricial - Imprime atravs de uma cabea que possuiagulhas que batem contra o papel. medida que a cabea deimpresso se desloca as agulhas se reposicionam paracompor o caractere ou parte da imagem. Entre as agulhas e opapel h uma fita de tecido com tinha.

    Microprocessador

    Monitor devdeoPlaca controladorade impressora

    Impressora

  • INFORMTICA APLICADA

    Pg: 6

    Impressra Jato de Tinta - Ela possui um cartucho de tinha comorifcios. O cartucho se desloca e a tinta se projeta pelos orifciospara o papel. As microscpicas gotas de tinta so atradas emdireo do papel por um campo eltrico.

    Impressra Laser - Ela possui internamente um cilindro que seaquece. Depois a imagem sensibilizada na sua superfcieatravs de um feixe de raio laser. A seguir um p (toner) aplicado sobre o cilindro. O p ir aderir apenas nas regiesonde incidiu o laser. Aps isto o cilindro rola sobre o papelaplicando a tinta (p derretido) gerando a figura no papel.

    UNIDADE DE ARMAZENAGEM DE DADOS

    DISQUETE Disco magntico removvel do computador. Seuacesso lento e possui baixa capacidade de armazenagem(aproximadamente 1,5 milhes de caracteres). Utilizado paratransportar dados entre computadores ou fazer cpias de segurana dosdados.

    FITA MAGNTICA Fita magntica removvel do computador. Usada parafazer cpia de seguranca de dados, possui grande capacidade e o acesso lento. Pode armazenar o equivalente a acima de 2 bilhes de caracteres.

    CD-ROM (Compact Disc ROM) Disco ptico removvel do computador. Podearmazenar o equivalente a at 650 milhes caracteres. Jvem gravado de fbrica. Sua velocidade de acesso razovel. Usado para armazenar instaladores de programas,bibliotecas de imagens, enciclopdias eletrnicas, dicionrios.Enfim, grandes quantidades de dados podem estardisponveis em cd-rom. No pode ser regravvel. Existem tambm duas variaes docd-rom:

    CD-R (Recordable Compact Disc) O usurio pode gravar no disco, mas aceitaapenas a primeira e nica gravao.

    CD-RW (Rewritable Compact Disc) O usurio pode gravar e regravar quantasvezes desejar.

  • INFORMTICA APLICADA

    Pg: 7

    DISCO RGIDO Disco magntico fixodentro do computador. Possui rpido acessoaos dados e grande capacidade dearmazenagem de dados (aprox. 10 a 50bilhes de caracteres). Nele ficam gravadosos todos os programas e dados cocomputador.

    OUTROS DISPOSITIVOS

    SCANNER - Importa imagens para o computador(digitalizao). Um conjunto de sensores fazem a varredura daimagem e converte para a forma digital. A partir da a imagempode der visualizada no computador ou enviada para aimpressora (papel).MOUSE - O usurio movimenta o mouse sobre a mesa e ocorrepondente movimento feito por um ponteiro que semove pelo monitor de vdeo acompanhando os mesmosmovimentos do mouse. Permite acionar recursos visveis natela atravs de um clique no boto do mouse.

    MODEM permite ligar o computador em uma linha telefnica etrocar dados com outros computadores atravs deste meio decomunicao. Pode-se tambm enviar documentos gravados nocomputador para um fax comum ou receber documentos de um fazcomum. O acesso internet necessita deste dispositivo para fazer aligao ao provedor.

    CAIXAS DE SOM, MICROFONE, CMERA DE VDEO Com estesdispositivos pode-se reproduzir msicas, gravar mensagens, cenasde vdeo, etc. Permite tambm fazer reunies entre vrias pessoasdistantes atravs de computadores interligados (videoconferncia).

  • INFORMTICA APLICADA

    Pg: 8

    SOFTWARE - OS PROGRAMAS DE COMPUTADOR

    Um programa um conjunto de intrues que o computador pode executar.Inicialmente o programador elabora um programa na forma de uma carta contendo asintrues que o computador dever executar. Estas instrues obedecem algumalinguagem de programao.Este programa leva o nome de programa fonte.Depois o programa fonte passa por um processo chamado compilao que gera umoutro programa composto de instrues em cdigos de mquina. Este novo programachama-se programa objeto.A instrues em cdigos de mquina no programa objeto so compreendidas apenaspelo computador, ou seja, estes so instrues em linguagem de mquina (linguagemdo microprocessador).Para fazer a compilao o programador usa uma ferramentea chamada compilador.

    EXEMPLO DA ROTINA DE UM PROGRAMA

    1. receber a idade do cliente2. testar a idade do cliente3. se a idade for maior ou igual a

    18 mostre DE MAIOR casocontrrio mostre DE MENOR

    a kljd jkasjk jka jkshjksdh jkshjksdh ksdjkasd jkshkshsjkjkjd

    01001011001101110011110101011010101010101111110101011010101010111110101011010

    compilador

    Programador Programafonte Programa

    objeto

    execuo

  • INFORMTICA APLICADA

    Pg: 9

    Linguagem humana (compreendido por qalquer pessoa) receber a idade do cliente testar a idade do cliente se a idade for maior ou igual a 18 mostre DE MAIOR caso contrrio mostre DE MENOR

    Linguagem de programao (Ex. Pascal) (compreendido pelo programador) Read idade; If idade >= 18 Then

    Write DE MAIORElse

    Write DE MENOR;

    Linguagem de mquina (compreendido pela mquina)011001011010100010111010101111010101011111001101110101011110101010111011101010111101010101110101011110101011010101111010101101010111101101111010101101010111101010111011110101011010110101011110101101010111101011010101111010110110101011110101111010101111010111101010111101

    TIPOS DE PROGRAMAS

    Programas Genericos - So programas de uso geral. Este programas so criados porfabricantes de computadores e grandes fabricantes de software.

    Ex: Sistemas operacionas, editores de texto, planilhas eletnicas, banco de dados,programas de comunicao, editores de desenho/arte, etc.

    Sistema Operacional - o programa que carregado automaticamente quandoligamos o computador. Ele serve para permitir utlizar os recursos do computador.A partir dele podemos executar outros programas. Podemos utiliza-lo tambmpara administrar os dados e programas contidos no computador como por

    Programao (o programador elabora o programa)

    Compilao (atravs do compilador o programadorcria o programa objeto)

  • INFORMTICA APLICADA

    Pg: 10

    exemplo copiar informaes ou apaga-las. Exemplos de sistemas operacionais:WINDOWS 95, MS-DOS, UNIX, OS/2, ETC.

    Editor de texto - Permite elaborar cartas, documentos. Possui recursossofisticados que facilitam o trabalho de editorao.

    Planilha de dados - Usado para se trabalhar com tabelas de dados. Pode-sefazer clculos automticos facilitando resutlados e tambm gerar grficos eresumos a partir dos dados contidos nas planilhas.

    Banco de dados - Permite administrar grande quantidade de dados. Podefornecer com faclidade resultados estatsticos, informaes precisas e relatriosgerencias.

    Programa de comunicao - Permite fazer transferncia de dados entrecomputadores.

    Linguagens de Programao - Usado para desenvolver programas

    Programas Aplicativos - So programas de uso especfico. So criados por empresasmenores de software ou at mesmo por um programador ou analista de sistemasindividualmente.

    Ex: Programa de contabilidade, Controle de Estoque, Folha de pagamento defuncionrio, programa de controle de pacientes, etc.

  • INFORMTICA APLICADA

    Pg: 11

    UMA VISO GERAL DE UM CENTRO DE COMPUTAO

    DIRETOR DE INFORMTICA Designao usada em estruturas maiores. Pessoaresponsavl pela rea de informatica como um todo

    GERENTE DE SISTEMAS Responsavl por controlar o desenvolvimento dossistemas de informao

    ANALISTA DE SISTEMAS Responsvel por criar os projetos de sistemas deinformao

    PROGRAMADORES Viso a nvel de programa. Elabora os programas definidos peloAnalista de sistemas

    OPERADORES Executa operaes como manuseio de programas, instalao deprogramas, cpia de segurana de dados, etc

    USURIOS Utilizam os recursos do sistema

    Analistade

    sistemas

    Programador

    Programas

    Execuodos

    Computador

    Operadores eusurios

    Dad

    Resultad

    Necessidadesde

    informao

  • INFORMTICA APLICADA

    Pg: 12

    Servidor(Provedor)

    Servidor(Provedor)

    MEIOS DECOMUNICAO

    Usuriointernet

    Usuriointernet

    Usuriointernet

    FUNDAMENTOS DA INTERNET

    Internet Uma rede de redes mundial, constituda de milhares de redes decomputador e de milhes de computadores comerciais, educacionais, governamentaise pessoais, todos inter-conectados. Tambm referida como Net.Endereo da Web O caminho para um item, como um objeto, um documento oupgina da Web. Um endereo pode ser um URL (endereo para um site da Internet),um caminho e nome de arquivo, ou um caminho (endereo para um arquivo ou umarede local).Hiperlinks Um objeto, como uma imagem grfica ou texto colorido ou sublinhado, querepresenta um desvio para outro endereo. Quando se posiciona o ponteiro do mousesobre um hiperlink o ponteiro se transforma em uma mo.

  • INFORMTICA APLICADA

    Pg: 13

    Navegador (Browser) Programa que o usurio usa para localizar endereos nainternet e mostrar as informaes encontradas.Exemplos : Netscape e Internet Explorerwww (World Wide Web) Sigla da rede de alcance mundial. O conjunto deinformaes disponveis na Internet, que conectado por links para que voc possasaltar de um documento para outro. Tambm referido como Web, WWW e W3.Intranet Uma rede reservada que usa os mesmos protocolos de comunicao eformatos de arquivo que a Internet. Uma intranet pode, mas no precisa, estarconectada com a Internet. Muitas empresas usam intranets para suas comunicaesinternas.

    PRINCIPAIS SERVIOS NA INTERNETWWW (World Wide Web) - Permite o acesso ao conjunto de informaes distribudasna internet.

    E-mail (Correio Eletrnico) - Permite o envio de cartas, documentos, dadoseletronicamente. Cada remetente/destinatrio possui um endereo.

    usurio usurioprovedor provedor

    carta eletrnica(e-mail)

    Servio de correio eletrnico

  • INFORMTICA APLICADA

    Pg: 14

    OS VRUS DE COMPUTADOR

    Os vrus de computador so pequenos programas agentes que agem por iniciativa prpria dentro do computador.Podem infectar programas e documentos em disquetes ou discos rgidos dos computadores. Para combater os vrusexistem os anti-vrus, ou vacinas. Os anti-vrus prpcuram vrus nas unidades de armazenagem do computador e

    usurio provedor provedor

    /www.universo.br???

    Homepage

    Servio de home page

    011001011010100010111001101011110101010111110011101110101011110101010111011101010111101010101011

    Um Criadorde virus

    Virus (programa agente)

    Disquetecontaminado

    Computadorcontaminado

    Computadorcontaminado

  • INFORMTICA APLICADA

    Pg: 15

    elimina o vrus. A infectao do vrus em um documento na maioria dasvezes danifica os dados do documento. Oefeito de um vrus pode variar desde uma brincaddeira, lentido co computador ou at mesmo a destruio de todosos dados gravados.

    INSTALANDO UM PROGRAMA NOVO NO COMPUTADOR

    Aps o programa desenvolvido ele preparado para comercializao. Assim ele poder ser comprado em lojas. Paraisto ele armazenado em disquetes juntamente com um programa de instalao (disquetes de instalao doprograma), ou CD-ROM, e vem acompanhado de um manual do usurio para que se possa instalar e aprender aoperar o programa. Uma vez instalado o novo programa ele ficar gravado no disco rgido. Assim o disqueteoriginal poder retirado do computador ser guardado. Caso haja necessidade,devido algum problema, de reinstalar oprograma ento ser necessrio novamente utilizar os disquetes de instalao do programa.

    Software(programa + manual

    de instrues)

    instalao

    Programa deinstalao

    Industria Goiana deSoftwares

    Goinia - GO

  • INFORMTICA APLICADA

    Pg: 16

    PIRATARIA DE SOFTWARE

    Pirataria uma prtica que se d quando se instala um software registrado em um computador sem autorizao dofabricante. O programa seria instalado repetidas vezes em vrias mquinas atravs dos disquetes originais deinstalao ou de cpias destes disquetes.Quando se adquire um software ele vem com uma licena de uso. Esta licena vem com um nmero de srie (defabricao) daquela embalagem do programa. Por vias legais cada usurio deve possuir um nmero de licenaoriginal.

    Programa deinstalao

    Industria Goiana deSoftwares

    Goinia - GO

  • INFORMTICA APLICADA ENGENHARIA MECNICA

    PARTE II: O MATLAB

  • Curso de Introduo ao MATLAB

    GVA -FEM- 001

    1

    SUMRIO 1 - Apresentao do software ..................................................................................................................................................... 2 2 - Conhecendo o ambiente do aplicativo.................................................................................................................................. 2 3 - Funes bsicas ...................................................................................................................................................................... 3 4 - Operaes com vetores .......................................................................................................................................................... 5 5 - Operaes com matrizes........................................................................................................................................................ 8 6 - Nmeros complexos ............................................................................................................................................................. 11 7 - Noes gerais de polinmios e sistemas de equaes lineares .......................................................................................... 12

    7.1 Polinmios................................................................................................................................................................... 12 7.1.1 - Definindo-se um polinmio no MATLAB ......................................................................................................... 12 7.1.2 - Clculo das razes de um polinmio ................................................................................................................. 13 7.1.3 - Calculando os coeficientes de um polinmio partindo de suas razes......................................................... 13 7.1.4 - Visualizando as razes de um polinmio. ......................................................................................................... 13 7.1.5 - Operaes com polinmios ................................................................................................................................ 15

    7.2 - Sistemas de equaes lineares................................................................................................................................... 16 7.3 - Encontrando a melhor curva partindo de dados experimentais ............................................................................ 17

    8 Anlise Numrica ................................................................................................................................................................ 18 8.1 Integrao .................................................................................................................................................................... 18 8.2 Diferenciao .............................................................................................................................................................. 19 8.3 Equaes Diferenciais ............................................................................................................................................... 19

    9 - Grficos em 2D..................................................................................................................................................................... 20 9.1 - Funes grficas elementares.................................................................................................................................... 20 9.2 - Plotando um vetor ....................................................................................................................................................... 21 9.3 - Plotando um nmero complexo ................................................................................................................................ 21 9.4 - Plotando uma matriz................................................................................................................................................... 22 9.5 - Plotando um vetor em funo de outro .................................................................................................................... 22 9.6 - Plotagens combinadas ................................................................................................................................................ 22

    9.6.1 - Usando a mesma linha de comando.................................................................................................................. 22 9.6.2 - Adicionando linhas a um grfico j existente.................................................................................................. 23

    9.7 - Ajustando os limites de escala .................................................................................................................................. 23 9.7.1 - Corrigindo distores ......................................................................................................................................... 23

    9.8 - Escondendo eixos e escalas ....................................................................................................................................... 23 9.9 - Apagando figuras da janela grfica .......................................................................................................................... 23 9.10 - Trabalhando com mltiplas janelas grficas......................................................................................................... 24 9.11 - Construindo subgrficos .......................................................................................................................................... 24 9.12 - Ampliando a visualizao grfica - ZOOM.......................................................................................................... 24 9.13 - Plotando funes com o MATLAB ....................................................................................................................... 25 9.14 Outras formas de grficos ....................................................................................................................................... 25

    9.14.1 - Grficos de barras............................................................................................................................................. 25 9.14.2 - Escala logartmica ............................................................................................................................................ 26 9.14.3 - Grficos de variveis discretas ....................................................................................................................... 26 9.14.4 - Grficos em escada ........................................................................................................................................... 27 9.14.5 - A Funo compass............................................................................................................................................. 27

    10 - Programando com o MATLAB ........................................................................................................................................ 28 10.1 - Operaes relacionais e lgicas .............................................................................................................................. 28 10.2 - Rotinas especiais de programao.......................................................................................................................... 30 10.3 - Estruturas de controle repetitivas (loops) .............................................................................................................. 31 10.4 - Estrutura de controle condicional ........................................................................................................................... 33 10.5 - Construindo funes com o MATLAB ................................................................................................................. 36 10.6 - Debugando com o MATLAB ................................................................................................................................. 37

    11 - Exerccios............................................................................................................................................................................ 39 12 - Referncias bibliogrficas ................................................................................................................................................. 43 13 Anexo: Listagem de Comandos........................................................................................................................................ 44

  • Curso de Introduo ao MATLAB

    1 - Apresentao do software

    O software MATLAB (MATLAB marca registrada de The MathWorks, Inc.) foi originalmente desenvolvido para ser um "Laboratrio para estudo de Matrizes", porm atualmente suas capacidades ultrapassam em muitas vezes as possibilidades de sua verso original. Desta forma, o MATLAB hoje um dos principais sistemas interativos e uma das mais importantes linguagens de programao para computao tcnica e cientfica em geral.

    Sua primeira verso foi escrita na Universidade do Novo Mxico e na Universidade de Stanford, no final da dcada de 70, e destinava-se a cursos de teoria matricial, lgebra linear e anlise numrica. Hoje, o MATLAB integra anlise numrica, clculo com matrizes, processamento de sinais, imagens, sons, e construo de grficos em ambiente fcil de usar onde problemas e solues so expressos como eles so escritos matematicamente, ao contrrio dos mtodos de programao tradicional.

    Os usos tpicos do MATLAB incluem: 9 Clculos matemticos; 9 Desenvolvimento de Algoritmos; 9 Modelagem, simulao e confeco de prottipos; 9 Anlise, explorao e visualizao de dados; 9 Grficos cientficos e de engenharia; 9 Desenvolvimento de aplicaes, incluindo a elaborao de interfaces grficas com o usurio.

    tambm um sistema interativo cujo elemento bsico de informao uma matriz que no requer dimensionamento. Esse sistema permite a resoluo de muitos problemas numricos em apenas uma frao do tempo que se gastaria para escrever um programa semelhante em outra linguagem, como o Pascal e o Fortran.

    2 - Conhecendo o ambiente do aplicativo A rea de trabalho do MATLAB assemelha-se bastante ao ambiente Windows padro, com a diferena que o

    programa oferece uma linha de prompt (como no antigo MS-DOS), onde o usurio pode digitar os comandos. Os menus do MATLAB so os seguintes: (a) Menu FILE: permite que o usurio abra, feche e salve arquivos ou a rea de trabalho. Permite ainda, que

    se alterem as configuraes do software, que se envie arquivos para impresso, que se abra o editor de janelas e se encerre o programa;

    (b) Menu EDIT: possui as opes padro do Windows, tais como undo, copy, paste. Alm disso, permite que se limpe a rea de trabalho;

    (c) Menu WINDOW: menu que permite a alternncia entre as vrias janelas abertas durante a execuo do programa;

    (d) Menu HELP: contm os tpicos de ajuda e informaes gerais sobre o software. Na barra de menu, dois botes se destacam. O primeiro o boto Worksapace Browser, que abre uma janela

    contendo a relao de todas as variveis, seus nomes, suas classes e seus tamanhos. O segundo boto o Path Browser, que permite que um novo diretrio seja adicionado ao path do MATLAB.

    GVA -FEM- 001

    2

  • Curso de Introduo ao MATLAB

    GVA -FEM- 001

    3

    A rea de trabalho (prompt), serve para entrada de comandos e parmetros. No h a necessidade de declararmos qualquer varivel no MATLAB. A varivel (ou expresso) passa a existir a partir do momento em que definida pelo usurio, em tempo real de utilizao. Um exemplo de definio de uma varivel numrica segue abaixo:

    x = 3.1416927 Uma varivel tambm pode guardar um string, como mostrado abaixo: y = teste Observe que a diferenciao entre um string e uma funo feita apenas pelos apstrofos. Ao necessitarmos de ajuda sobre qualquer funo do MATLAB, basta que digitemos help nome do comando

    ou funo. Este procedimento mostra na rea de trabalho uma breve explicao sobre o comando em questo. Por exemplo, experimente digitar help help.

    As mensagens de erro, quando acontecem, tentam explicar os motivos pelo qual o erro ocorreu. Por exemplo: hep ??? Undefined function or variable 'hep'. As regras de precedncia aritmtica so vlidas tambm no MATLAB, ou seja, pela ordem temos: potenciao

    multiplicao e diviso adio e subtrao. Os smbolos utilizados para representao destas operaes so:

    ^ Exponenciao / Diviso direita \ Diviso esquerda * Multiplicao + Adio - Subtrao Transposio

    Deve-se notar que existem dois smbolos para diviso: as expresses 1/4 e 4\1 possuem o mesmo valor

    numrico, isto , 0,25. Parnteses so usados em sua forma padro para alterar o mesmo a precedncia usual dos operadores aritmticos.

    NOTA: O MATLAB faz distino entre os caracteres maisculos e minsculos.

    3 - Funes bsicas As tabelas abaixo apresentam algumas funes bsicas do MATLAB. Tabela 1 Utilitrios para a janela de comandos

    COMANDOS DESCRIO format Altera o formato dos dados na tela

    disp Mostra matriz ou texto na tela clc Apaga janela de comandos

    clear Apaga variveis home Move o cursor para o topo da tela echo Ativa/desativa exibies de linha individuais durante a execuo de um arquivo .m quit Termina o programa

  • Curso de Introduo ao MATLAB

    GVA -FEM- 001

    4

    Tabela 2 Utilitrios para tratamento de arquivos

    COMANDOS DESCRIO cd Muda de diretrio

    delete Deleta arquivo ou objeto grfico dir Mostra diretrio

    exist Confere se uma varivel ou funo existe load Carrega varveis gravadas em disco save Salva variveis em disco type Lista o contedo de um arquivo ou funo what Mostra os nomes dos arquivos .m e .mat no diretrio corrente who Mostra as variveis existentes na tela de comando chdir Muda o diretrio de trabalho

    Tabela 3 Caracteres especiais usados na janela de comandos

    CARACTERES DESCRIO = Comando de atribuio [ ] Delimitar elementos de matrizes e vetores ( ) Alternar a ordem de precedncia das expresses aritmticas . Ponto decimal , Separa argumento de funes e elementos de matrizes e vetores ; Finalizador de linha com supresso de impresso

    % Comentrio : Gerao de um vetor com intervalos definidos ! Execuo de um programa do sistema operacional

    Tabela 4 Funes matemticas bsicas

    FUNO DESCRIO acos Arco-coseno asin Arco-seno atan Arco-tangente cos Coseno

    cosh Coseno hiperblico exp Exponencial com base e fix Arredondamento para o inteiro mais prximo at zero log Logaritmo natural

    log10 Logaritmo decimal rand Gera nmeros aleatrios com distribuio uniforme

    randn Gera nmeros aleatrios com distribuio normal rat Aproximao racional

    round Arredonda o nmero para o inteiro mais prximo sign Retorna 1 se for positivo e 0 se for negativo ou zero sin Seno

    sinh Seno hiperblico sqrt Raiz quadrada tan Tangente

    tanh Tangente hiperblica NOTA: O MATLAB trabalha com ngulos em radianos.

  • Curso de Introduo ao MATLAB

    GVA -FEM- 001

    5

    4 - Operaes com vetores Chamamos de vetor u a um conjunto de elementos u1 u2 u3 ... un dispostos em linha ou em coluna. Estes

    elementos, so os componentes do vetor u. No MATLAB, os vetores devem ser declarados entre colchetes. Veja o exemplo abaixo: [0 1 2 3] ans = 0 1 2 3 O mesmo resultado seria obtido com: [0,1,2,3] ans = 0 1 2 3 Como visto no exemplo acima, quando no declaramos a varivel que ir conter os componentes do vetor, o

    vetor devolvido como uma varivel chamada ans (procedimento default do MATLAB). As operaes aritmticas bsicas so realizadas elemento a elemento do vetor. Por exemplo: u = [1 2 3]; z = 3+u z = 4 5 6 Se quisermos realizar qualquer operao com apenas um elemento do vetor, basta que especifiquemos qual

    dos elementos dever ser tratado. Por exemplo: z(3) = -1 z = 4 5 -1 Outro aspecto importante no MATLAB a flexibilidade de podermos realizar uma atribuio de um novo

    valor para um elemento (ou varivel) utilizando a prpria varivel nesta operao. Um exemplo simples seria: z(3) = z(3) + 1 z = 4 5 0

    Se voc quiser saber o nmero de elementos de um vetor, utilize a funo length. length(z) ans = 3 A transposta do vetor calculada utilizando-se o smbolo . Para obtermos um vetor coluna a partir de z, basta

    digitarmos o seguinte: w = z w = 4 5 0

  • Curso de Introduo ao MATLAB

    GVA -FEM- 001

    6

    Um detalhe importante: o smbolo * executa o produto escalar entre dois vetores, desde que um deles seja um vetor linha e o outro um vetor coluna. Vejamos a seguir:

    esc = u * z' esc = 14 Entretanto, algumas operaes especiais precisam ser definidas quando queremos realizar operaes entre dois

    vetores. Tais operaes so definidas pelos seguintes smbolos:

    OPERADORES OPERAES .* Multiplicao ./ Diviso direita .\ Diviso esquerda .^ Exponenciao

    Um exemplo de multiplicao seria: mult = u .* z mult = 4 10 0 Um exemplo de diviso: div = u ./ z Warning: Divide by zero. div = 0.2500 0.4000 Inf Neste exemplo, ocorreu um fato interessante. O MATLAB trabalha com divises por zero, retornando, nestes

    casos, com o smbolo Inf para infinito. O problema ocorrido nesta diviso poderia ser facilmente evitado se utilizssemos a diviso esquerda, como segue:

    div = u .\ z div = 4.0000 2.5000 0 A potenciao de um vetor por um escalar pode ser feita como segue: div = div .^ 3 div = 64.0000 15.6250 0 O MATLAB permite a gerao de vetores usando intervalos. Imaginemos que vamos precisar trabalhar com

    um vetor igualmente espaado de pi/4 em pi/4 at o valor pi. Para gerar este vetor, utilizaramos o seguinte comando: x = 0 : pi/4 : pi x = 0 0.7854 1.5708 2.3562 3.1416 O vetor poderia ser criado com incrementos negativos: y = pi : -pi/4 : 0 y = 3.1416 2.3562 1.5708 0.7854 0 Aproveitando estes dois vetores, x e y, vamos realizar a gora uma plotagem simples. O comando de plotagem

    no MATLAB o comando plot. Como sabemos, para a construo de um grfico necessitamos de dois parmetros que

  • Curso de Introduo ao MATLAB

    iro compor os valores dos eixos coordenados horizontal e vertical. No MATLAB, o primeiro parmetro da funo plot considerado como contendo os valores do eixo horizontal e o segundo como contendo os valores do eixo vertical. Assim, o comando para fazer a plotagem de y em funo de x seria:

    plot (x,y) O resultado obtido uma nova janela, contendo o grfico do vetor y em funo do vetor x, que como

    esperado, uma reta.

    Algumas funes do MATLAB so bastante teis no tratamento de vetores. Exemplos delas so as funes

    max, min e mean. A funo max devolve o maior dos componentes do vetor. A funo min, por sua vez, devolve o menor dos componentes do vetor.

    max(z) ans = 5

    min(z) ans = 0

    A funo mean devolve o valor mdio dos componentes do vetor. mean(z) ans = 3 Dois vetores distintos podem ser concatenados (encadeados) para formar um novo vetor de maneira

    bastante simples. Vejamos abaixo: conc = [u z] conc = 1 2 3 4 5 0 Para concatenarmos dois vetores coluna devemos utilizar o ; para separar os dois vetores que sero

    concatenados. Todas as operaes vistas para vetores linha tambm so vlidas para vetores coluna. Maiores detalhes sero vistos nos prximos itens.

    GVA -FEM- 001

    7

  • Curso de Introduo ao MATLAB

    5 - Operaes com matrizes Uma matriz um arranjo de elementos na forma de uma tabela retangular de elementos, sendo que a forma

    geral um arranjo de m linhas e n colunas. No MATLAB, uma matriz pode ser definida de maneira semelhante aos vetores, diferenciando-se apenas no fato da necessidade da digitao de um enter ou um ; para a separao das diferentes colunas. Vejamos alguns exemplos:

    a = [1 2 3; 4 5 6; 7 8 9] a = 1 2 3 4 5 6 7 8 9

    Ou: b = [9 8 7 6 5 4 3 2 1] b = 9 8 7 6 5 4 3 2 1

    Da mesma forma que fizemos com vetores, as matrizes tambm podem ter seus elementos escritos como

    expresses. Alm disso, as matrizes podem ter seus elementos identificados (e operados) individualmente. Por exemplo:

    b (2,1) ans = 6 Este comando devolveu em ans o valor do elemento da segunda linha e primeira coluna da matriz b. O tamanho de uma matriz qualquer pode ser obtido atravs da funo size. size (a) ans = 3 3 A matriz a possui 3 linhas e 3 colunas. A concatenao de matrizes bastante semelhante concatenao

    dos vetores. Vejamos dois exemplos: c = [a b] c = 1 2 3 9 8 7 4 5 6 6 5 4 7 8 9 3 2 1

    d = [a; b] d = 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1

    Para extrairmos uma submatriz de uma matriz qualquer procedemos da seguinte forma: e = d(1:2, 1:2) e = 1 2 4 5 Este comando retirou a primeira e segunda linhas e a primeira e segunda colunas da matriz d e armazenou

    na matriz e. Se quisermos que todas as linhas da matriz antiga compusessem a nova matriz bastaria colocarmos : no primeiro parmetro da matriz d. Suponhamos agora que precisemos inserir uma linha na matriz e. O comando o seguinte:

    e = [e; 1 0]

    GVA -FEM- 001

    8

  • Curso de Introduo ao MATLAB

    e = 1 2 4 5 1 0 Nas operaes de adio e subtrao de matrizes, a exemplo do que aconteceu quando trabalhamos com

    vetores, os elementos de uma matriz so somados ou subtrados com o seu correspondente na outra matriz. Esta a razo pela qual as duas matrizes envolvidas devem ter o mesmo nmero de linhas e colunas.

    soma = a + b soma = 10 10 10 10 10 10 10 10 10

    sub = a - b sub = -8 -6 -4 -2 0 2 4 6 8

    A multiplicao e diviso de uma matriz por escalares efetuada elemento a elemento da matriz. Por exemplo:

    mult = 3 * a mult = 3 6 9 12 15 18 21 24 27

    div = a / 3 div = 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 2.3333 2.6667 3.0000

    A exponenciao individual dos elementos de uma matriz podem ser feitos pelo comando .^. a .^2 ans = 1 4 9 16 25 36 49 64 81 A multiplicao de matrizes uma ferramenta bastante til no MATLAB. Vale a pena ressaltar que na

    multiplicao de uma matriz a qualquer por uma matriz b qualquer, s pode acontecer se o nmero de colunas da matriz a for igual ao nmero de linhas da matriz b ou vice-versa. Vejamos um exemplo: Queremos multiplicar a matriz c pela matriz d. Primeiramente vamos verificar se o nmero de linhas de uma igual ao nmero de colunas da outra.

    size (c) ans = 3 6

    size (d) ans = 6 3

    Percebe-se que a multiplicao destas duas matrizes possvel. Ento: c * d ans = 180 162 144 162 162 162 144 162 180 Perceba que o resultado teria sido diferente se tivssemos feito d vezes c: d * c ans = 30 36 42 30 24 18 66 81 96 84 69 54 102 126 150 138 114 90

    GVA -FEM- 001

    9

  • Curso de Introduo ao MATLAB

    90 114 138 150 126 102 54 69 84 96 81 66 18 24 30 42 36 30 Este tipo de preocupao no necessria quando estamos trabalhando com matrizes quadradas de mesmo

    tamanho. A fim de mostrar a diviso de duas matrizes, vamos definir duas novas matrizes: x = [15 10 8; 7 1 0; 2 5 1] x = 15 10 8 7 1 0 2 5 1

    y = [3 -1 2; -5 1 1; 0 3 4] y = 3 -1 2 -5 1 1 0 3 4

    Agora, vamos dividir a matriz x pela matriz y: x/y ans = -2.0213 -4.2128 4.0638 -0.5745 -1.7447 0.7234 -1.8511 -1.5106 1.5532 Note que a diviso de y por x poderia ser efetuada utilizando-se a diviso direita, como segue: x\y ans = -0.7033 0.0239 0 -0.0766 0.8325 1.0000 1.7895 -1.2105 -1.0000 Houve um motivo simples para termos definido novas matrizes a fim de demonstrarmos a diviso. As

    matrizes a e b eram singulares, ou seja, possuam determinante nulo. Ao dividirmos duas matrizes singulares, o resultado uma matriz com componentes infinitos, conforme nos mostra o MATLAB:

    a/b Warning: Matrix is singular to working precision. ans = Inf Inf Inf Inf Inf Inf Inf Inf Inf A potenciao de matrizes equivale a sucessivas multiplicaes dela por ela mesma. Por exemplo, faamos a

    ao cubo: a ^ 3 ans = 468 576 684 1062 1305 1548 1656 2034 2412 A transposta de uma matriz (troca das colunas pelas linhas) obtida da mesma maneira que a transposta de

    um vetor. O operador o apstrofo : a' ans = 1 4 7 2 5 8 3 6 9

    GVA -FEM- 001

    10

  • Curso de Introduo ao MATLAB

    Na prxima tabela so mostrados as mais importantes funes para tratar matrizes no MATLAB:

    FUNES DESCRIO det Determinante de uma matriz eye Gera uma matriz identidade inv Calcula a inversa da matriz

    ones Gera uma matriz unitria rand Gera uma matriz randmica tril Transforma/gera uma matriz triangular inferior triu Transforma/gera uma matriz triangular superior

    zeros Gera uma matriz de zeros (nula)

    6 - Nmeros complexos Veremos agora como trabalhar com nmeros complexos no MATLAB. Aparte imaginria simbolizada

    pelas letras i ou j indistintamente: i^2 ans = -1.0000 + 0.0000i

    j^2 ans = -1.0000 + 0.0000i

    Note que mesmo que utilizemos a letra j, na resposta oferecida pelo MATLAB sempre aparece a letra i. Utilizando o sistema de coordenadas cartesianas, um nmero complexo pode ser definido no MATLAB da

    seguinte maneira: z1 = 3 + 4i z1 = 3.0000 + 4.0000i Ao trabalharmos com nmeros complexos um ponto deve ser levado em considerao: no devemos

    utilizar as letras i e j para definir variveis ou constantes, pois isto feito, elas no mais podero ser usadas para definir complexos.

    O conjugado de um nmero complexo (o prprio nmero com o sinal da parte imaginria trocado) pode ser obtido utilizando-se a funo conj:

    conj(z1) ans = 3.0000 - 4.0000i As operaes com nmeros complexos utilizam os operadores usuais, como podemos ver nos exemplos a

    seguir: z2 = 4 + 3i z2 = 4.0000 + 3.0000i z1 + z2 ans = 7.0000 + 7.0000i z1 - z2 ans = -1.0000 + 1.0000i

    z1 * z2 ans = 0 +25.0000i z1 / z2 ans = 0.9600 + 0.2800i

    GVA -FEM- 001

    11

  • Curso de Introduo ao MATLAB

    A potenciao, como visto com as matrizes, corresponde multiplicao sucessiva do nmero por ele mesmo. Vejamos um exemplo:

    z1 * z1 ans = -7.0000 +24.0000i

    z1 ^ 2 ans = -7.0000 +24.0000i

    Para plotarmos um nmero complexo, basta usarmos a funo plot com o seguinte argumento: plot(z1) O resultado ser um grfico que mostra um ponto (exatamente o ponto correspondente ao nmero

    complexo) no plano complexo. Vejamos agora algumas funes teis quando trabalhamos com nmeros complexos:

    FUNO DESCRIO

    real Retorna a parte real do nmero complexo imag Retorna a parte imaginria do nmero complexo abs Retorna o mdulo do vetor complexo (representao trigonomtrica)

    angle Retorna o ngulo do vetor complexo (representao trigonomtrica) Os nmeros complexos tambm podem formar vetores ou matrizes, como os nmeros reais. Vejamos

    dois exemplos simples:

    vetor = [z1 z2] vetor = 3.0000 + 4.0000i 4.0000 + 3.0000i

    matriz = [z1 z2; z2 z1] matriz = 3.0000 + 4.0000i 4.0000 + 3.0000i 4.0000 + 3.0000i 3.0000 + 4.0000i

    Para o clculo da transposta existem dois operadores ( ) e ( . ). O primeiro deles calcula a transposta do conjugado e o outro a transposta normal. Vejamos estes exemplos com a matriz definida anteriormente:

    matriz' ans = 3.0000 - 4.0000i 4.0000 - 3.0000i 4.0000 - 3.0000i 3.0000 - 4.0000i matriz.' ans = 3.0000 + 4.0000i 4.0000 + 3.0000i 4.0000 + 3.0000i 3.0000 + 4.0000i

    7 - Noes gerais de polinmios e sistemas de equaes lineares

    7.1 Polinmios

    Polinmios so funes do tipo P(x)=anxn+an-1xn-1+...+a1x1+a0x0 onde n e a so reais e x pode ser real ou complexo.

    7.1.1 - Definindo-se um polinmio no MATLAB Define-se um polinmio no MATLAB colocando-se os seus coeficientes de forma ordenada em um vetor

    linha. Seja o seguinte polinmio: x3-3x2+4x-4 No MATLAB ele ser definido da seguinte forma: poli = [1 -3 4 -4];

    GVA -FEM- 001

    12

  • Curso de Introduo ao MATLAB

    Note que o coeficiente 4, apesar de aparentemente no estar acompanhado da varivel x, aparece entre os coeficientes. Isso ocorre porque na verdade ele est sim acompanhado de x, porm como temos x0 que igual a 1, torna-se por norma no represent-lo.

    7.1.2 - Clculo das razes de um polinmio As razes de um polinmio P(x) so os valores das variveis para os quais as igualdade P(x)=0 satisfeita. Vamos definir um outro polinmio no MATLAB; coef = [1 2 1]; O polinmio assim definido no MATLAB corresponde a: x2+2x+1. A fim de calcularmos as razes deste polinmio, o igualaramos a zero e teramos: x2+2x+1=0 No MATLAB, para calcular as razes deste polinmio, devemos encontrar o valor de x para que a igualdade

    seja satisfeita. Para tanto, usamos o comando roots da seguinte forma: r = roots (coef) r = -1 -1 O polinmio em questo possui duas razes iguais. Note que 1 o valor que atribudo a x torna verdadeira

    a igualdade. Suponha agora que voc tenha que encontrar as razes da equao: x3-15x=4 O procedimento no MATLAB o seguinte: coef = [ 1 0 -15 -4]; r = roots(coef) r = 4.0000 -3.7321 -0.2679 Nas linhas acima, note que antes de escrevermos os coeficientes do polinmio, temos que ajeitar a equao

    igualando-se a zero. Assim: x3+15x-4=0 Note tambm que como no temos o termo x2 colocamos zero no lugar de seu coeficiente. 7.1.3 - Calculando os coeficientes de um polinmio partindo de suas razes Podemos, com as razes do polinmio coef utilizado anteriormente, obter os coeficientes deste mesmo

    polinmio utilizando a funo poly: p = poly(r) p = 1.0000 0.0000 -15.0000 -4.0000 7.1.4 - Visualizando as razes de um polinmio. Seja a equao:

    GVA -FEM- 001

    13

  • Curso de Introduo ao MATLAB

    y=x3-3x2-6x+8 Deseja-se calcular os valores de x para os quais y seja igual a zero, ou seja, deseja-se calcular as razes do

    polinmio e, alm disso, deseja-se visualizar essas razes graficamente. O procedimento de clculo das razes do polinmio o mesmo descrito anteriormente: coef = [ 1 -3 -6 8]; roots(coef) ans = 4.0000 -2.0000 1.0000 Uma vez definida as razes, temos que definir o domnio de x que contm estas razes: x=-3: .1 :5; Observe que x um vetor contendo vrios nmeros; dentre eles as razes do polinmio. Agora vamos utilizar uma nova funo que vai calcular para cada valor de x um valor correspondente para

    y. Essa a funo polyval. Ela utilizada com dois argumentos, sendo primeiro o vetor de coeficientes e o outro o vetor que contm as razes que queremos plotar:

    y = polyval(coef,x); Agora s nos resta fazer a plotagem na janela grfica. plot(x,y) grid title('Grfico de y=x^3 -3x^2-6x+8') xlabel('eixo x') ylabel('eixo y') zoom O resultado ser:

    GVA -FEM- 001

    14

  • Curso de Introduo ao MATLAB

    Voc pode observar no grfico que, como era de se esperar, onde temos x=4, -2 e 1 temos y=0. O ltimo comando realizado, zoom, permite efetuarmos um zoom em grficos 2D. Utilize este recurso e realize uma aproximao na rea onde a curva corta o eixo x e verifique as razes do polinmio.

    7.1.5 - Operaes com polinmios Com a mesma facilidade que operamos com nmeros reais, vetores, matrizes e nmeros complexos,

    podemos tambm operar com polinmios. Vejamos algumas operaes possveis: - Multiplicao e diviso de polinmios: Deixaremos por conta do leitor a reviso da teoria de diviso de polinmios, caso queira acompanhar os

    resultados obtidos no MATLAB. Sejam dois polinmios p1= 2s2+3s+1 p2= 5s-2 Queremos p1*p2. Sabemos que o resultado esperado : p1*p2=10s3+11s2-s-2 No MATLAB teremos: p1=[2 3 1]; p2=[5 -2]; A funo conv utilizada para a multiplicao entre dois polinmios: p3=conv(p1,p2) p3 = 10 11 -1 -2 Temos ento resultado esperado. Enquanto a funo conv utilizada para realizar multiplicaes, o contrrio, ou seja a diviso, efetuada com

    a funo deconv. Observe como feito: [Q R]=deconv(p3,p1) Q = 5 -2 R = 0 0 0 0 O vetor Q contm os coeficientes do quociente polinomial, que no nosso caso, so os coeficientes do

    prprio polinmio p2. O vetor R contm os coeficientes do polinmio que corresponde ao resto da diviso polinomial. Como a

    diviso de p3 por p1 exata, o resto zero. Vamos agora , substituir o polinmio p3 pelo polinmio p4 assim definido: p4=10s3+11s2+2s No MATLAB escreve-se: p4=[10 11 2 0]; Realizando a diviso:

    GVA -FEM- 001

    15

  • Curso de Introduo ao MATLAB

    [Q R]=deconv(p4,p1) Q = 5 -2 R = 0 0 3 2 Agora j temos um resto na diviso, ou seja, o polinmio 3s+2 7.2 - Sistemas de equaes lineares Para resoluo dos sistemas de equaes lineares, fundamental o clculo do determinante da matriz. O

    determinante de uma matriz um nmero especfico associado a toda e qualquer matriz quadrada. No MATLAB, como visto anteriormente, o comando utilizado para o clculo de determinantes o

    comando det . Vale lembrar que o clculo de determinantes s possvel para matrizes quadradas. Vejamos um exemplo:

    w=[2 1 3;-5 6 -1; 4 0 -2] w = 2 1 3 -5 6 -1 4 0 -2

    det(w) ans = -110

    Podemos agora propor um sistema de equaes lineares para ser resolvido: x1+2x2+3x3=4 2x1+3x2+4x3=5 4x1+2x2+5x3=1 No MATLAB, podemos representar este sistema de equaes por uma matriz 3x3 e um vetor: A=[1 2 3; 2 3 4; 4 2 5] A = 1 2 3 2 3 4 4 2 5

    B=[4 5 1]' B = 4 5 1

    Calcularemos agora o determinante de A: det(A) ans = -5 Aqui vale a pena relembrarmos um aspecto importante na resoluo de sistemas de equaes lineares. Um

    sistema de equaes lineares somente possui soluo determinada de a matriz que o representa possuir determinante no nulo, ou seja, a matriz formada com os coeficientes das equaes no pode ser uma matriz singular. No exemplo anterior, percebe-se que o sistema proposto tem soluo.

    A soluo mais prtica utilizando-se o MATLAB multiplicar diretamente o vetor B pela inversa da matriz A. Esta operao corresponde a resoluo de uma operao com as matrizes que representam o sistema de equaes lineares, como visto abaixo:

    An x n * Xn x 1 = Bn x 1 A matriz A contm os coeficientes do sistema, o vetor X representa as incgnitas e o vetor B contm os

    termos independentes do sistema. No MATLAB, temos: X = inv(A)*B X = -1.4000

    GVA -FEM- 001

    16

  • Curso de Introduo ao MATLAB

    1.8000 0.6000 De outra forma, poderamos realizar uma diviso esquerda entre A e B. Veja como : X=A\B X = -1.4000 1.8000 0.6000 7.3 - Encontrando a melhor curva partindo de dados experimentais O MATLAB nos permite fazer a interpolao polinomial partindo-se dados experimentais. Para isto

    utilizamos o comando polyfit . Os exemplos que sero vistos a seguir ilustram a utilizao deste comando. Os pontos experimentais a seguir representam a posio de um mvel em MRU ao longo do tempo.

    S(cm) 4,00 6,71 9,43 12,18 14,87 17,7t(s) 0,00 1,00 2,00 3,00 4,00 5,00

    Vamos definir dois vetores com os dados experimentais: S=[4 6.4 9.93 12.18 14.87 16.7]; t=[0 1 2 3 4 5]; Agora iremos plotar os pontos para termos uma noo da evoluo dos mesmos

    Iremos ento realizar a interpolao dos dados atravs de um polinmio de primeira ordem, o mesmo

    procedimento pode ser realizado para qualquer polinmio de grau n.

    0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 4

    6

    8

    10

    12

    14

    16

    18

    poly = polyfit(t,S,1) poly = 2.6046 4.1686 Agora iremos traar a reta obtida sobre os dados experimentais:

    GVA -FEM- 001

    17

  • Curso de Introduo ao MATLAB

    hold on; t=0:.1:5; S = polyval(poly,t); plot(t,S) E o resultado final ser:

    0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 4

    6

    8

    10

    12

    14

    16

    18

    8 Anlise Numrica

    8.1 Integrao O MATLAB possui trs funes para determinar numericamente a integral de uma funo em um domnio finito: trapz, quad e quad8. A funo trapz aproxima a integral de uma funo somando a rea de trapzios formados a partir de pontos da curva. Na verdade, este mtodo subestima o valor da rea sob o grfico em alguns pontos e superestima em outros. Desta forma, quanto maior o nmero de trapzios que utilizamos, melhor ser a aproximao. A funo trapz chamada como a funo plot. Experimentemos com os vetores t e S utilizados no item anterior:

    area = trapz(t,S) area = 53.7300

    As funes quad e quad8, utilizam o conceito matemtico de quadratura e tcnicas de variao da largura dos trapzios conforme as caractersticas da funo, ou seja, elas diminuem as larguras dos trapzios nas regies do grfico em que ocorrem as variaes mais rpidas da funo. Entretanto, seu modo de chamada um pouco diferente da funo trapz. Para demonstr-lo, utilizaremos a funo humps, default do MATLAB:

    area = quad('humps', -1 , 2) area = 26.3450

    area = quad8('humps', -1, 2) area = 26.3450

    A nica diferena entre quad e quad8, que a segunda um pouco mais rigorosa nos clculos que a primeira.

    GVA -FEM- 001

    18

  • Curso de Introduo ao MATLAB

    8.2 Diferenciao Comparada integrao, a diferenciao numrica muito mais difcil. A derivao deve ser, devido as suas dificuldades inerentes, evitada ao mximo, principalmente se os dados a serem derivados foram obtidos de forma experimental. Neste caso, melhor efetuarmos um ajuste de curva pelos mnimos quadrados e ento derivar o polinmio resultante. Como exemplo, vamos considerar os dados abaixo:

    a = [0:.1:1]; b = [-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; n = 2; % Ordem do ajuste p = polyfit(x,y,n) p = -0.0004 -0.3007 0.9489 d = polyder(p) d = -0.0007 -0.3007

    O vetor d contm os coeficientes do polinmio que resultado da derivao de p.

    O MATLAB possui ainda a funo diff, que d como resultado uma derivao grosseira atravs do mtodo de diferenas finitas. Por ser uma aproximao muito ruim, no iremos abordar este comando neste curso. 8.3 Equaes Diferenciais As equaes diferenciais ordinrias (EDO) descrevem como a taxa de variao das variveis de um sistema influenciada por variveis do sistema e por estmulos externos, ou seja, por entradas. Quando as EDOs podem ser resolvidas analiticamente, alguns recursos do Toolbox de Matemtica Simblica podem ser usados para encontrar solues exatas. Naqueles casos em que as equaes no podem ser resolvidas prontamente de forma analtica, conveniente resolve-las numericamente. Como exemplo, resolveremos a seguinte equao diferencial:

    0)1( 222

    =+ xdtdxx

    dtxd

    Para ser resolvida, a equao deve ser reescrita da seguinte forma:

    21

    21 :;: ydtdy

    EntodtdxyexySejam ===

    12

    12 )1(: yy

    dtdy

    Assim = A funo a ser usada ser a ode45, que necessita como parmetros de entrada uma M-file de funo contendo a equao na forma reescrita, o tempo atual e o os valores atuais de y1 e y2. Esta funo deve ser editada no editor do MATLAB tem o seguinte formato:

    Este arquivo deve ser salvo com um dado nome (sugerimos yprime), no seu diretrio de trabalho.

    Escolhemos, em seguida, um intervalo de tempo de 0 a 30 segundos e as condies iniciais: unitria para a derivada primeira e nula para a derivada segunda. Abaixo setamos estes parmetros:

    GVA -FEM- 001

    19

  • Curso de Introduo ao MATLAB

    intervalo = [0 30]; cond_inic = [1; 0]; % Usando a funo ode45 ode45('yprime', intervalo, cond_inic);

    A sada ser um grfico do comportamento temporal do sistema. Para termos acesso aos dados, basta colocarmos argumentos de sada, como mostrado abaixo:

    [t, y] = ode45('yprime', intervalo, cond_inic); O vetor t conter os instantes de tempo em que a soluo foi calculada e y uma matriz de duas colunas e length(t) linhas (para este caso). Na primeira coluna de y esto armazenados os valores correspondentes a y(1) e na segunda coluna os valores de y(2). 9 - Grficos em 2D

    9.1 - Funes grficas elementares A seo grfica do MATLAB possui variadas e sofisticadas tcnicas para representar e visualizar dados. Um

    ponto negativo deve-se a forma com que as ferramentas so aplicadas a uma entidade grfica, atravs de comandos, diferenciando-se da maioria dos softwares com aplicaes dessa ordem, onde as alteraes so efetuadas de forma mais amigvel, com uso do mouse e atalhos que facilitam as aes.

    Os principais comandos utilizados na edio e criao de grficos so listados abaixo: plot - plota um vetor ou uma funo; title - adiciona ttulo ao grfico ; xlabel - adiciona um rtulo ao eixo x; ylabel - adiciona um rtulo ao eixo y; text - insere um texto numa determinada posio da janela grfica; gtext - insere um texto no grfico usando o mouse como posicionador; grid - traa linhas de grade.

    Exemplo de aplicao:

    A formatao de cor e estilo da linha podem ser facilmente ajustados atravs da edio dos argumentos do comando plot.

    GVA -FEM- 001

    20

  • Curso de Introduo ao MATLAB

    A tabela a seguir mostra as opes.

    Cor da Linha Estilo da Linha Caracter Cor Caracter Estilo

    y amarela . Ponto m magenta o Crculo c cyan x marca "x" r vermelha + Mais g verde * Asterisco b azul - Slido w branca : Pontilhado k preta -- Tracejado

    Observe o formato da linha de comando: plot (x,y,'ro') Note que o argumento de cor ou formato de linha deve ser escrito entre aspas simples. Podem ser usados

    um argumento para cor e um para estilo de linha, ou apenas uma das opes. 9.2 - Plotando um vetor Considerando um vetor arbitrrio x, o comando plot(x) cria um grfico em escala linear do vetor x em

    funo de seus ndices.

    9.3 - Plotando um nmero complexo Se c um nmero complexo, o comando plot(c) equivalente a plot(real(c), imag(c)).

    GVA -FEM- 001

    21

  • Curso de Introduo ao MATLAB

    9.4 - Plotando uma matriz Sendo M uma matriz, o comando plot(M) ir representar uma linha grfica para cada coluna de M.

    Observe que no foi necessrio adicionar nenhum argumento ao comando para criar linhas de cores diferentes.

    9.5 - Plotando um vetor em funo de outro O comando plot(x,y) plota o vetor x em funo de y. Condio necessria: length(x)==length(y). 9.6 - Plotagens combinadas

    9.6.1 - Usando a mesma linha de comando Podemos efetuar vrias plotagens na mesma tela com apenas um comando plot. Veja.

    GVA -FEM- 001

    22

  • Curso de Introduo ao MATLAB

    9.6.2 - Adicionando linhas a um grfico j existente Essa caracterstica obtida com o comando hold. Com essa opo setada, o programa no apaga as linhas j

    existentes ao traar outras. Essa ao pode ajustar automaticamente a escala da janela grfica para comporta as novas curvas.

    Digitando hold off, o MATLAB retorna ao modo default. 9.7 - Ajustando os limites de escala O comando axis permite o ajuste dos limites de escalas da janela grfica atual. axis [xmin xmax ymin ymax] A opo axis('auto') restaura as configuraes padro do MATLAB. Para verificar os limites atuais da escala de uma janela grfica, basta digitar v=axis, onde v ser um vetor

    com os valores das escalas. 9.7.1 - Corrigindo distores Variaes do comando axis('argumento') permitem corrigir distores indesejadas em representaes grficas. Acompanhe s linhas de comando que seguem: t = 0:100; plot(sin(t),cos(t)) O grfico correto seria um crculo, voc est visualizando um crculo? Para corrigir esse problema proceda

    com o comando: axis('equal') Essa variao do comando axis faz com que os incrementos dos vetores em x e y sejam iguais. Outras alternativa para corrigir o problema seria a opo axis('square') Onde a janela grfica tornar-se- quadrada. 9.8 - Escondendo eixos e escalas Em algumas aplicaes apenas as curvas de dados nos interessam e podemos eliminar da janela grfica

    eixos, escalas, sinais de graduao e grade com o comando:

    axis('off')

    Para reverter:

    axis('on)

    9.9 - Apagando figuras da janela grfica Suponha que aps construir uma janela com curva, rtulos e escalas j configuradas voc queira agora traar

    outra curva na mesma janela, sem a anterior e no precisando ajustar as caractersticas da janela. Acompanhe os comandos: a = [3 5 3 7 9 3 2 1 5 2 2]; plot(a) title('vetor "a" ') xlabel('indices') ylabel('elementos') gtext('maior elemento') axis[0 12 0 10]

    GVA -FEM- 001

    23

  • Curso de Introduo ao MATLAB

    Agora temos que plotar outro vetor, mas as caractersticas da janela ainda nos sero teis. Vejamos ento como usar o comando cla

    cla b = [1 2 4 7 0 4 5 3 4 5 2 ]; plot(b) 9.10 - Trabalhando com mltiplas janelas grficas Para criar uma nova janela usamos o comando figure cada janela identificada por um nmero que

    chamamos de handle. Quando trabalhamos com mais de uma janela grfica devemos ter o cuidado de saber qual a janela ativa no

    momento para evitarmos fazer alteraes na janela errada. Para verificar qual o handle da janela ativa no momento utilizamos a funo gcf - get curent figure. h = gcf A varivel h conter o nmero da janela ativa. Supondo que a janela ativa seja a 2 mas voc pretende alterar a janela 5. Para tanto proceda assim: figure(5) Outra forma de obter essa ao e clicar com o mouse sob a rea de plotagem da figura desejada. Para fechar determinada janela grfica use o close close(3) 9.11 - Construindo subgrficos Subgrficos podem ser construdos numa mesmas janela com a funo subplot. subplot(m,n,s) ou subplot(mns) Gera uma janela com uma matriz m x n onde cada elemento da matriz um subgrfico. O nmero s indica

    qual subgrfico ser plotado ou ativado. t=0:0.1:30; subplot(321) plot(sin(t)) subplot(322) plot(cos(t),'r') subplot(323) plot(tan(t),'g') subplot(324) plot(sinc(t),'m') subplot(325) plot(sin(t+pi/2)) subplot(326) plot(cos(t+pi) 9.12 - Ampliando a visualizao grfica - ZOOM

    Vamos explicar as funes do zoom com um exemplo. Fazendo uso da funo peaks criamos um matriz 100 x 100, a seguir vamos plot-la. ma = peaks(100); Ateno no esquea do ponto-e-vrgula! plot(ma)

    GVA -FEM- 001

    24

  • Curso de Introduo ao MATLAB

    Responda agora com base no grfico: qual o maior valor que a funo alcana no eixo y com uma preciso

    de trs casas decimais? Observando afigura, notamos que o valor fica prximo a 8, ocorrendo entre 70 e 80 no eixo x. Para um resultado mais apurado damos um "zoom" no local. Poderamos usar o comando axis axis [ 70 80 7 9] Mas essa opo no se faz muito til, pois para cada aproximao deveramos redigitar os parmetros para o

    comando. Tente agora com: zoom Clique na regio a ser ampliada, formando um retngulo com o boto esquerdo do mouse pressionado. Algumas variaes do comando zoom podem ser vistas com o help. help zoom 9.13 - Plotando funes com o MATLAB Para plotar a funo exp(x) no intervalo [0 10], poderamos criar um vetor x e um vetor y em seguida plotar

    um em funo do outro. Porm para funes matemticas j definidas no programa, ou novas funes definidas pelo usurio temos o comando fplot.

    fplot('exp', [0 10]) grid Note, entre apstrofos ' ', temos a funo. Entre colchetes [ ], o intervalo de anlise. 9.14 Outras formas de grficos

    9.14.1 - Grficos de barras Para visualizar dados em forma de barras, para aplicaes onde tal caracterstica seja til, utilizamos o

    comando bar. Sua aplicao fcil, veja: b=[1 2 3 4 5 4 3 2 1]; bar(b) Importante: as configuraes para cor e estilo de linha vistas para o comando plot so vlidas aqui tambm.

    GVA -FEM- 001

    25

  • Curso de Introduo ao MATLAB

    9.14.2 - Escala logartmica Em muitas aplicaes a utilizao de escalas lineares em um ou ambos os eixos de um grfico limitam a

    forma com que as informaes so apresentadas. Para otimizar a representao utilizamos escalar logartmicas . Vamos direto a uma aplicao: t=0:1e6; y=1./(1+t./10); Plotar numa mesma janela em trs grficos separados a funo (i) em escala linear (ambos os eixos) plot(x,y) (ii) escala logartmica no eixo x logx(x,y) (iii) escala logartmica nos dois eixos loglog(x,y) O resultado deve ser esse:

    9.14.3 - Grficos de variveis discretas Uma forma de representar fenmenos ou quantidades que no apresentam-se numa forma contnua

    plotando as "amostras" discretas. Como exemplo de varivel discreta poderamos citar a cotao de uma moeda, em sua variao diria. A funo do MATLAB que permite tal representao o stem. dias=1:15; cota = rand(15); stem(dias,cota) Para maior clareza, utilize os comando estudados para nomear os eixos e ttulo do grfico.

    GVA -FEM- 001

    26

  • Curso de Introduo ao MATLAB

    9.14.4 - Grficos em escada Uma variao que une caractersticas dos comandos j vistos bar e stem, o comando stairs. Execute o

    comando stairs para os dados de cotao da moeda, visto acima.

    9.14.5 - A Funo compass Para representar nmeros complexos com amplitude e ngulo. a=3+j*4 compass(a) Note que a janela apresenta o mdulo e a fase do nmero "c".

    GVA -FEM- 001

    27

  • Curso de Introduo ao MATLAB

    10 - Programando com o MATLAB

    Hoje, o conhecimento de linguagens de programao diferencia profissionais aos olhos do mercado. A programao esta cada vez mais presente dentro da engenharia (simulaes, clculos complexos e rotineiros, anlise e projeto de sistemas, etc) e saber programar se tornou uma necessidade. Nesta parte do curso, estaremos tratando da programao com o MATLAB utilizando-se de suas diversas funes e ferramentas que facilitam e simplificam muito a estrutura dos programas. Tpicos a serem abordados:

    Operaes Relacionais e Lgicas; Rotinas de Programao; Estruturas de Controle Repetitivas; Estruturas de Controle Condicionais; Construindo Novas Funes; Debugando com o MATLAB.

    Para o estudo seguinte, parte-se do princpio que todos j tenham noes bsicas de rotinas e estruturas de

    programao. 10.1 - Operaes relacionais e lgicas Os operadores relacionais so aqueles que respondem a uma determinada operao com verdadeiro ou

    falso, que so simbolizados respectivamente por 1 e 0. A tabela a seguir relaciona operador com a descrio do operador.

    OPERADOR DESCRIO < Menor que

    Maior que

    >= Maior ou igual == Igual ~= Diferente

    Para os que ainda no tiveram contato com este raciocnio, os exemplos a seguir demonstram algumas operaes.

    GVA -FEM- 001

    28

  • Curso de Introduo ao MATLAB

    No prompt, quando perguntamos se 2 + 2 igual a 4, o MATLAB nos d como resposta a afirmativa (1). J depois quando perguntamos se 2 + 2 diferente de 4, o MATLAB nos responde que no (0).

    Veja alguns outros exemplos:

    O MATLAB responde aos operadores lgicos da mesma forma que responde aos operadores relacionais acima descritos. Para verdadeiro tem-se 1 e falso 0. No MATLAB temos os seguintes operadores lgicos descritos na tabela:

    OPERADOR DESCRIO& AND | OR ~ NOT

    O operador AND & responde sim (1) apenas quando as duas ou mais expresses envolvidas na questo forem verdadeiras, caso contrrio a resposta no (0). Veja o exemplo no prompt abaixo onde no primeiro caso temos a primeira expresso verdadeira e a segunda expresso dois falsa, que torna a resposta falsa (0). (1& 0 = 0).

    GVA -FEM- 001

    29

  • Curso de Introduo ao MATLAB

    J o operador OR | , mostrado no segundo caso do prompt, responde sim (1) se pelo menos uma das expresses for verdade.

    Por fim o operador NOT ~ inverte seu argumento. Note que resposta da ltima operao que sim (1) efetuado com o OR invertida e passa a valer (0).

    10.2 - Rotinas especiais de programao Antes de confeccionarmos nosso primeiro programa, precisamos conhecer as rotinas especiais de

    programao do MATLAB que so comuns vrias linguagens. Estas rotinas associadas aos inmeros recursos oferecidos pelo MATLAB propiciam ao usurio desenvolver desde simples programas feitos em calculadoras de bolso, como HP, at os mais sofisticados programas desenvolvidos em linguagens de alto nvel, como C++.

    ROTINAS DESCRIO

    for end Gera um loop enumervel

    while End Gera um loop enquanto uma condio () for verdadeira

    if elseif end

    Seqncia de comandos executveis condicionalmente

    if else end

    Seqncia de comandos executveis condicionalmente

    Switch case

    otherwise end

    Seqncia de comandos executvei condicionalmente

    break Sair fora de um loop for ou while return Retornar de uma funo (arquivo.m) pause Para num ponto do programa at que se aperte qualquer tecla do teclado

    (*) Todas as funes / comandos do MATLAB devem ser escritos com letras minsculas.

    GVA -FEM- 001

    30

  • Curso de Introduo ao MATLAB

    10.3 - Estruturas de controle repetitivas (loops)

    loop for Partiremos direto para a utilizao do for no exemplo a seguir. Vamos editar este pequeno programa sem

    utilizar ainda dos recursos de M-file que sero abordados na seqncia. Fez-se isso, para mostrar que rotinas repetitivas tambm podem ser digitadas e executadas diretamente no prompt do MATLAB. Neste exemplo, construiremos uma matriz zero (nula) 4 X 4 e em seguida a transformaremos em uma matriz unidade (identidade), onde substituiremos por 1 os termos nulos da sua diagonal principal. Veja na tela abaixo a seqncia de comandos:

    Aqui, escolhemos n como um contador e geramos a matriz nula A. Depois partimos para o programa principal. Quando digitamos a primeira linha e teclamos < ENTER >, o cursor fica esperando novas instrues at que o comando seja fechado com end. O sinal de prompt s aparece com o fechamento de todos os loops abertos. Veja que depois que fechamos todos os comandos abertos com seus respectivos ends, voltamos ao sinal de prompt onde podemos chamar a matriz A e conferir o funcionamento do programa. A rotina for funciona aqui da mesma forma que funciona nas linguagens mais usuais, ou seja, a varivel i incrementada a cada loop e as instrues de programa so executadas repetitivamente at que se constate que i > n. Observe que quando se termina uma linha de instruo de comando colocado o ponto e virgula ; que suprime a impresso na tela. Experimente no usar o ponto o virgula e executar o programa.

    (*) erros de digitao ou de programao ocorridos em linhas anteriores a atual dentro de estruturas de repetio no podero ser corrigidos sem nova digitao integral do programa.

    loop while

    Comandos repetitivos tambm podem ser organizados dentro de uma estrutura while. O loop while tem a seguinte forma:

    while comandos;

    end

    A condio testada e sendo verdadeira os comandos so executados. Depois de realizados todos os comandos, novamente testa-se a condio que, sendo verdadeira, fora uma nova execuo dos comandos. A rotina permanece sendo executada at que a condio seja falsa.

    O exemplo a seguir introduz a criao de M-files explorando os recursos da estrutura de controle while.

    GVA -FEM- 001

    31

  • Curso de Introduo ao MATLAB

    Quando vamos escrever no MATLAB uma seqncia de comandos, tanto podemos escrever estes comandos diretamente na linha de prompt, como fizemos at agora, como podemos escrever uma rotina de comandos em arquivos especiais que so chamados de M-files. Os M-files so arquivos executveis no MATLAB e so chamados do prompt bastando-se digitar o nome do arquivo e . Assim, todos os comandos listados no arquivo so executados seqencialmente. Editar um arquivo M-file muito simples. Para faz-lo voc pode utilizar o editor de textos de sua preferncia.

    Vamos criar um programa em um arquivo (M-file) com a funo de gerar esta seqncia de nmeros. Este arquivo ser chamado de fibonac.m.

    Para criar o M-file, v at o menu File, submenu New e escolha M-file. Assim, voc se encontrar no editor de textos do prprio MATLAB onde as linhas de comandos do programa devem ser escritas.

    Nmeros de Fibonacci: uma seqncia de nmeros onde os dois primeiros nmeros so iguais a 1, o terceiro igual a soma dos dois primeiros, o quarto a soma do segundo com o terceiro, o quinto igual a soma do terceiro e do quarto e assim por diante.

    Para executar mais facilmente seus programas, salve-os no subdiretrio bin do MATLAB, assim ao abrir o MATLAB seus programas j podero ser executados diretamente chamando-se os arquivos da linha de prompt sem precisar redirecionar diretrios. Uma vez salvo os M-files, basta digitar o nome do arquivo e executar.

    Como sada do programa temos o vetor f com a seqncia de nmeros de Fibonacci que so mostrados no grfico seguinte.

    GVA -FEM- 001

    32

  • Curso de Introduo ao MATLAB

    10.4 - Estrutura de controle condicional As estruturas de controle condicionais envolvem tomadas de deciso para a execuo de comandos.

    if - elseif - else - end if < condio 1 >

    comandos 1 elseif < condio 2 >

    comandos 2 else

    comandos 3 end

    Onde os comandos 1, 2 e 3 podem ser executados de acordo com os resultados de suas respectivas condies. Se a condio 1 verdadeira, comandos 1 so executados, se a condio 2 que a verdadeira, ento comandos 2 so executados e por ltimo se nem condio 1 ou 2 verdadeira, ento comandos 3 que so executados. O entendimento desta ltima seqncia de condies e comandos, principalmente saber diferenciar o else do elseif, muito importante.

    (*) No exemplo da estrutura com if e elseif somente os comandos associados a primeira condio verdadeira encontrada so executados. As expresses condicionais seguintes no so testadas e o resto da estrutura if-elseif-else-end ignorada. Alm disso, no necessrio que o comando final else esteja presente.

    Veja o seguinte exemplo onde utilizaremos o editor de textos do MATLAB para escrever o M-file que chamaremos de aleatori.m.

    GVA -FEM- 001

    33

  • Curso de Introduo ao MATLAB

    A primeira linha de comentrio d informaes sobre o programa. Depois de salvo este M-file, ao

    escrevermos na linha de prompt help aleatori o contedo de comentrios escrito depois de (%) aparece na tela. Depois das linhas de comentrios, utilizamos a funo rand que gera um nmero aleatrio entre 0,0 e 1,0.

    Este nmero multiplicado por 100 depois arredondado e sua parte decimal truncada pelo comando fix. Fazendo assim, o valor que atribudo a x fica entre 0 e 100.

    Na linha seguinte, define-se como 7 o nmero de chances possveis para que o jogador acerte o valor de x. A varivel teste, que necessria ao final do programa na deciso de perdedor ou ganhador, atribudo o valor 1.

    No loop for que s se repete ao mximo 7 vezes, nmero de chances, so colocados os comandos que verificam se o palpite do jogador convm com o valor de x.

    Utilizamos a funo int2str para transformar o inteiro n em uma string (cadeia de caracteres) que guardada na varivel nun. Voc j vai entender o porque desta transformao ao observar as duas formas da funo disp na linha seguinte.

    disp(Seu palpite deve ser um nmero entre 0 e 100: );

    Nesta forma da funo disp o termo entre apstrofos ( ) imprimido na tela na linha de prompt.

    disp(Voc tem direito a num palpite(s));

    Nesta Segunda forma, concatena-se o texto 1, o contedo da varivel e o texto 2. O que ocorre que esta varivel, para poder ser imprimida junto com os textos, deve estar sob forma de string. Da a necessidade de se transformar n em uma string atravs da funo str2num.

    Depois, a funo input da linha mostrada abaixo, atribui a varivel palpite, o contedo digitado na linha de prompt. O texto que aparecer na tela do MATLAB ao se executar esta funo o que fica entre os apstrofos ( ).

    palpite = input(Entre com o palpite );

    Entrando na estrutura de controle condicional, temos as seguintes rotinas:

    1) Se palpite menor que x, a mensagem Seu palpite est abaixo do nmero aleatrio vai para tela. 2) Se palpite maior que x, a mensagem Seu palpite est acima do nmero aleatrio impressa na tela.

    GVA -FEM- 001

    34

  • Curso de Introduo ao MATLAB

    3) Se palpite igual a x, a mensagem de Parabns! Voc acertou! vai para a tela.

    Caso o jogador no acertar o nmero dentro das sete chances oferecidas, o loop for encerrado, k = 7, e a ltima estrutura de controle condicional constata a condio de teste maior que 0 como verdade, teste = 1, e executa o comando imprimindo na tela Voc perdeu!. Perceba que este programa apenas indica, mas no probe que o jogador entre com valores de palpite tanto abaixo de 0 como acima de 100. Pense num acrscimo a ser feito neste programa que solucione tal problema. switch-case-end

    Quando seqncias de comandos devem ser condicionalmente executadas, com base no uso repetido de um teste de igualdade com um argumento comum, uma estrutura swicth-case-end pode ser usada. A estrutura tem a seguinte forma:

    switch case comandos1 case {} comandos2 otherwise comandos 3 end Aqui, o argumento um escalar ou um string de caracteres. Se o argumento escalar, o comando case

    executa o comando == . Se for um string de caracteres, o teste executado com o comando strcmp(,). Nesta estrutura, no comando case, o argumento comparado com os testes de argumento e, quando estes so iguais, a seqncia de comandos desta comparao executada. Se todas as comparaes case forem falsas, ento o comando otherwise, que opcional, executado.

    Um exemplo de estrutura switch-case-end demonstrado abaixo, onde criou-se o M-file centmetro.m para converter valores de comprimento em diferentes unidades para centmetro.

    GVA -FEM- 001

    35

  • Curso de Introduo ao MATLAB

    10.5 - Construindo funes com o MATLAB

    At esta parte do curso, j citamos e utilizamos inmeras funes do MATLAB ( fix( ), input( ), plot( ), etc...), agora veremos que podemos criar nossas prprias funes. Os arquivos destas funes tambm so chamados de M-files, porm a diferena destes para os j vistos script files (arquivos com extenso .m em sua forma simples - aleatori.m), que nestes arquivos a primeira palavra que deve ser escrita aps eventuais comentrios function. Por isto o nome function files.

    Diferentemente dos script files que operam com variveis de forma global na sesso de trabalho, os function files trabalham com parmetros locais, os quais so declarados entre parnteses e separados por virgulas logo aps a palavra function. Alm destes, qualquer varivel utilizada dentro de uma function file local.

    Variveis Globais : so aquelas vlidas tanto dentro como fora do arquivo onde so geradas. Variveis Locais: so aquelas vlidas somente dentro do arquivo onde so geradas.

    Vejamos um exemplo simples de uma funo editada para se calcular o valor da hipotenusa de um tringulo retngulo a partir de seus valores de cateto oposto e adjacente. Para editar a funo, utilize o editor de textos do prprio MATLAB da mesma forma como feito anteriormente para os script files.

    Depois de escrita a funo, temos algumas opes para salva-la: 1) Salvando no subdiretrio Bin - ao iniciar o MATLAB voc se encontrar no caminho c:\MATLAB\bin e

    as funes salvas neste diretrio so compiladas a cada execuo. Isto significa que voc poder fazer alteraes nas funes salvas desta maneira e senti-las na prxima execuo. As funes salvas s podero ser executadas dentro diretrio bin, onde foram salvas.

    2) Salvando nos subdiretrios especficos de funes do MATLAB - os subdiretrios contidos no caminho c:\MATLAB\toolbox\MATLAB, como elfun, elmat, funfun, etc, so utilizados especificamente para guardar funes do MATLAB. Quando MATLAB iniciado, ele varre estes subdiretrios catalogando, compilando e guardando em memria, todas as funes neles contidas. Desta maneira, o usurio pode executar a funo diretamente em qualquer diretrio apenas chamando-a. Ao se criar uma nova funo ou modifica-la, para que o MATLAB a tenha cadastrada e atualizada, deve-se reiniciar o MATLAB.

    3) Salvando as funes em subdiretrios exclusivos - caso voc prefira criar um subdiretrio exclusivo para o armazenamento de suas funes, para execut-las voc precisar se encontrar no domnio deste subdiretrio onde as gravou. A cada execuo o MATLAB compila e executa a funo da mesma forma que ocorre no sudiretrio bin. Eventuais alteraes podem ser feitas e so atualizadas na execuo.

    Para o exemplo criado da funo que calcula a hipotenusa, estaremos a salvando-a no subdiretrio de

    trabalho (que foi setado com o auxlio da funo chdir).

    GVA -FEM- 001

    36

  • Curso de Introduo ao MATLAB

    Elabore agora uma funo (divide.m) que d como resposta o resto de uma diviso inteira entre dois nmeros. Por fim, voc deve concluir que programar com MATLAB muito simples e que, alm de todas as funes j oferecidas pelo MATLAB, voc poder criar outras diversas funes de acordo com sua necessidade. 10.6 - Debugando com o MATLAB Nesta ltima parte do curso, veremos alguns comandos que auxiliam o programador no trabalho de criao de novos programas. Freqentemente quando estamos programando em uma linguagem qualquer, nos deparamos com alguns erros de programao que, por vezes, so de fceis localizao e correo. Porm, s vezes o programador pode cometer um erro sutil, tornando-se difcil e demorado o trabalho de deteco e correo do mesmo. Exatamente a que precisamos debugar o programa, ou seja, fazer um rastreamento, uma depurao, um acompanhamento da execuo do programa de tal forma que se localizem os erros. Uma maneira simples de se detectar erros analisar o valor das variveis usadas e verificar se estas correspondem ao esperado. Trabalhando com script files, variveis globais, isso pode ser feito tranqilamente. Porm quando trabalhamos com function files, variveis locais, isso no possvel, uma vez que as variveis usadas dentro destas no so acessveis aps execuo. Veremos trs comandos que so vlidos tanto para scripts como para function files. Echo - No menu options podemos escolher turn echo on e isto faz com que as linhas de comandos sejam mostradas na tela medida que o programa executado. Esta opo valida somente para script files. Para desativar este comando selecione turn echo off. Para se fazer o controle deste comando via teclado durante a execuo de um sicript file, digita-se na linha de prompt echo on para ativar e echo off para desativar. Para estender este comando a um function file e se permitir que os comandos dentro desta aparecem na tela, digitamos na linha de prompt os comandos echo file on, onde em file substitui-se o nome da funo. Para que todas as function files sejam ativadas, temos o comando echo on all. Assim, muitos os erros podem ser mais facilmente detectados, pois ao ocorrerem no programa, na tela estar sendo mostrado em que linha de comando do programa o problema acontece. Keyboard Tambm de muita utilidade quando estamos debugando o programa, o keyboard deve ser includo numa linha do programa em anlise fazendo com que a seqncia de execuo seja momentaneamente suspendida, deixando o teclado do computador disponvel para que se verifique ou at se altere valores de variveis.

    Este comando vale igualmente tanto para script files como para function files e na seqncia, para se retornar execuo do programa, digita-se return seguido do .

    Perceba que a grande utilidade deste recurso consiste no fato de que o programador pode interferir durante a execuo do programa alterando e conferindo variveis. Com a prtica voc vai notar a importncia deste comando para o soluo de problemas em programas.

    GVA -FEM- 001

    37

  • Curso de Introduo ao MATLAB

    Pause Este comando faz com que a execuo de um programa seja interrompida at que o programador

    aperte qualquer tecla. Este artifcio no permite que o programador atue alterando variveis durante execuo, mas um bom recurso quando se deseja analisar, por exemplo, uma seqncia de plots que constituem a evoluo de um sistema. Para utilizar este comando, deve-se incluir pause numa linha do programa em questo. Escrevendo-se pause(n), interrompe-se a execuo por n segundos.

    GVA -FEM- 001

    38

  • Curso de Introduo ao MATLAB

    11 - Exerccios

    Exerccio 01: Voc decidiu comprar um carro novo por R$ 18.500,00. O vendedor est lhe oferecendo duas opes de financiamento: (1) uma taxa mensal de juros de 0,24%, paga durante quatro anos, ou (2) uma taxa mensal de juros de 0,74%, tambm paga durante quatro anos, mas com um desconto de fbrica de R$ 1.500,00. Qual das duas opes o melhor negcio?

    Dados: