Matlab Módulo Avançado



Documentos relacionados
E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Introdução ao estudo de equações diferenciais

Introdução ao MATLAB

por séries de potências

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB

Estrutura de Dados Básica

Exercícios 1. Determinar x de modo que a matriz

Falso: F = Low voltage: L = 0

Exercícios Adicionais

Resolução de sistemas lineares

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

Notas de Aula MatLab Série, limite, equação diferencial

Sistemas de Numeração

1 A Integral por Partes

CAPÍTULO 2. Grafos e Redes

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Aula Teórica 16: Estruturas de Dados Heterogêneas

Lista 1 para a P2. Operações com subespaços

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;

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

1. Criar uma nova apresentação

INTRODUÇÃO À LINGUAGEM C++

Discussão de Sistemas Teorema de Rouché Capelli

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

Truques e Dicas. = 7 30 Para multiplicar fracções basta multiplicar os numeradores e os denominadores: 2 30 = 12 5

A Torre de Hanói e o Princípio da Indução Matemática

INTRODUÇÃO AO MAXIMA - PARTE 1

Notas de Cálculo Numérico

Unidade II - Sistemas de Equações Lineares

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Notas sobre a Fórmula de Taylor e o estudo de extremos

Reginaldo J. Santos. Universidade Federal de Minas Gerais Agosto de de maio de 2009

Mas para iniciar o uso do CRM é necessário efetuar algumas configurações em primeiro lugar.

Sistemas de Apoio à Decisão

Para além das funções (comandos) pré-definidas no matlab, o utilizador pode também criar as suas próprias funções

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

Capítulo 5: Aplicações da Derivada

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

Implementando uma Classe e Criando Objetos a partir dela

Curvas em coordenadas polares

PROGRAMAÇÃO LINEAR. Resolução de problemas de programação linear usando o comando Solver, no Excel.

Faculdade de Computação

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

Facturação Guia do Utilizador

Material Teórico - Aplicações das Técnicas Desenvolvidas. Exercícios e Tópicos Relacionados a Combinatória. Segundo Ano do Ensino Médio

4 Sistemas de Equações Lineares

Análise de Sistemas Não Lineares por Plano de Fase Recorrendo ao MATLAB

Análise e Processamento de Bio-Sinais. Mestrado Integrado em Engenharia Biomédica. Sinais e Sistemas. Licenciatura em Engenharia Física

N1Q1 Solução. a) Há várias formas de se cobrir o tabuleiro usando somente peças do tipo A; a figura mostra duas delas.

Eventos independentes

Exercícios Teóricos Resolvidos

Ajuste de Curvas. Ajuste de Curvas

Unidade 5: Sistemas de Representação

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

5 Transformações Lineares e Matrizes

O Gerenciamento de Documentos Analógico/Digital

Álgebra. SeM MiSTéRio

Astra LX Frases Codificadas Guia para o processo de Configuração de Frases Codificadas no Programa AstraLX.

Manual do Gestor da Informação do Sistema

MD Sequências e Indução Matemática 1

Capítulo 2 - Problemas de Valores Fronteira para Equações Diferenciais Ordinárias

Sistema de equações lineares

Aproximação de uma função pelo polinómio de Taylor.

Capítulo 22 Otimização. Introdução ao MATLAB p.1/18

UML (Unified Modelling Language) Diagrama de Classes

Computação II Orientação a Objetos

ORIENTAÇÕES PARA O PREENCHIMENTO DO QUESTIONÁRIO POR MEIO DA WEB

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

Equações Diferenciais Ordinárias

Bem-vindo ao curso delta Gerenciamento de peso para a versão 9.1. Este curso aborda a nova solução de peso introduzida nessa versão.

Pedro Ribeiro 2014/2015

UNIVERSIDADE ESTADUAL DE CAMPINAS INSTITUTO DE MATEMÁTICA, ESTATÍSTICA E COMPUTAÇÃO CIENTÍFICA Matemática Licenciatura. (Números Complexos)

Apresentação do VisualA

INSTITUTO TECNOLÓGICO

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello 1

Manual de Utilizador. Caderno. Recursos da Unidade Curricular. Gabinete de Ensino à Distância do IPP.

Sistemas Lineares. Módulo 3 Unidade 10. Para início de conversa... Matemática e suas Tecnologias Matemática

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Conceitos básicos da linguagem C

9 Comandos condicionais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Aula prática Como utilizar um multímetro

Serviço de Clientes. Gestix Enterprise. Gestix.com

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

Unidade 3 Função Logarítmica. Definição de logaritmos de um número Propriedades operatórias Mudança de base Logaritmos decimais Função Logarítmica

36 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase

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

Problemas de Valor Inicial para Equações Diferenciais Ordinárias

COMO ENSINEI MATEMÁTICA

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto

1. A corrida de vetores numa folha de papel.

Estatística II Antonio Roque Aula 9. Testes de Hipóteses

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

QUANTIFICADORES. Existem frases declarativas que não há como decidir se são verdadeiras ou falsas. Por exemplo: (a) Ele é um campeão da Fórmula 1.

INSTRUMENTAÇÃO E CONTROLE DE PROCESSOS TRANSFORMADAS DE LAPLACE

COMO PROGRAMAR SEU TIME

Transcrição:

Matlab Módulo Avançado Sérgio Manuel Ângelo da Cruz 2007 Aplicações Informáticas para Engenharia

Estruturas Em matlab, tal como em muitas outras linguagens, torna-se importante dispormos de estruturas capazes de armazenar dados de diferentes tipos Por exemplo, se pretendermos criar uma ficha individual de um aluno, é importante ter a possibilidade de dispormos de um campo onde podemos inserir o seu nome, morada, idade, etc. Claramente necessitamos de poder inserir strings nos dois primeiros campos e um valor numérico no terceiro campo Pegando no exemplo anterior, poder-se-ia fazer o seguinte em matlab para criar a tal ficha do aluno: >> Fichaaluno.nome='António da Silva' Fichaaluno = nome: 'António da Silva' 2

Estruturas >> Fichaaluno.morada='Coimbra' Fichaaluno = nome: 'António da Silva' morada: 'Coimbra' >> Fichaaluno.idade=22 Fichaaluno = nome: 'António da Silva' morada: 'Coimbra' idade: 22 No exemplo anterior, o matlab vai criar automaticamente uma estrutura com o nome Fichaaluno, com três campos ( fields ):nome, morada, idade A qualquer momento podemos aceder ao conteúdo de cada campo escrevendo o nome da estrutura, seguida de um ponto final e por fim o nome do campo que pretendemos consultar. Um exemplo: 3

Estruturas >> Fichaaluno.idade 22 Escrevendo apenas o nome da estrutura, o matlab irá mostrar todos os campos que a compõem: >> Fichaaluno Fichaaluno = nome: 'António da Silva' morada: 'Coimbra' idade: 22 Usando o comando fieldnames, podemos saber quais os campos que compõem uma determinada estrutura: >> fieldnames(fichaaluno) 'nome' 'morada' 'idade' 4

Estruturas Aplicações Informáticas para Engenharia Para acrescentarmos mais fichas de outros alunos, por forma a criar um vector de estruturas, basta colocarmos um índice à frente do nome da estrutura. Continuando com o exemplo anterior pode-se fazer o seguinte: >> Fichaaluno(2).nome='Bárbara Guimarães'; >> Fichaaluno(2).morada='Lisboa'; >> Fichaaluno(2).idade=35; >> Fichaaluno(2) nome: 'Bárbara Guimarães' morada: 'Lisboa' idade: 35 5

Estruturas Aplicações Informáticas para Engenharia >> Fichaaluno Fichaaluno = 1x2 struct array with fields: nome morada idade Pode-se criar uma estrutura de uma única vez com o comando struct. O mesmo exemplo anterior: >> Fichaaluno=struct('nome','António Ferreira','morada','Coimbra','idade',23) Fichaaluno = nome: 'António Ferreira' morada: 'Coimbra idade: 23 6

Toolbox de Matemática Simbólica - Introdução Para além de cálculo numérico, o matlab também permite efectuar cálculo simbólico. Para esse efeito, existe uma toolbox de matemática simbólica ( Symbolic Math Toolbox ) Com esta toolbox podem-se efectuar cálculos de diferentes naturezas, designadamente: cálculo propriamente dito (diferenciação, integração, determinação de limites, somatórios, série de Taylor, etc.); algebra linear (inversa de uma matriz, determinantes, valores próprios, etc.); simplificação de expressões algébricas; obtenção de soluções analíticas de equações algébricas e diferenciais; Transformadas de Laplace, Z e de Fourier, etc., etc. Para efectuar cálculo simbólico, o matlab define um novo tipo de dado, designado por objecto simbólico Para indicar ao matlab que uma dada variável (ou expressão) deve ser encarada como objecto simbólico usa-se o comando sym 7

Toolbox de Matemática Simbólica - Introdução Observe as diferenças entre os dois exemplos a seguir apresentados: >> a=sqrt(2) a = 1.4142 >> b=sqrt(sym(2)) b = 2^(1/2) Neste último caso, foi indicado ao matlab que ele devia considerar o número 2 como uma constante simbólica pelo que ele devolve o resultado sem efectuar qualquer cálculo numérico (b será encarado em todos os cálculos posteriores como uma constante simbólica) Havendo interesse, pode-se a qualquer momento converter b para o valor numérico correspondente: 8

Toolbox de Matemática Simbólica - Introdução >> double(b) 1.4142 Outro exemplo ilustrativo das diferenças entre cálculo numérico e simbólico: >> sym(2)/sym(3)+sym(1)/sym(5) 13/15 >> 2/3+1/5 0.8667 Considere agora, a título de exemplo, que pretende simplicar uma dada expressão designatória. O comando simplify pode ajudar nessa tarefa. Se essa expressão for (x^2-1)/(x-1), podemos simplificá-la da seguinte forma: 9

Toolbox de Matemática Simbólica - Introdução >> a=sym('x^2-1'), b=sym('x-1') a = x^2-1 b = x-1 >> simplify(a/b) x+1 Frequentemente, temos necessidade de dizer ao matlab que diversas variáveis devem ser consideradas como simbólicas. Nesse caso, torna-se mais fácil e prático usar o comando syms em vez de sym Como exemplo, vamos assumir que se pretende estudar a função quadrática f, dada pela expressão a*x^2+b*x+c. Neste caso, devemos em primeiro lugar indicar ao matlab que a, b, c e x devem ser tratadas como variáveis simbólicas e só depois definir a função f: 10

Toolbox de Matemática Simbólica - Introdução >> syms a b c x >> f=sym('a*x^2+b*x+c') % em alternativa pode-se fazer f=a*x^2+b*x+c f = a*x^2+b*x+c Pode-se agora manipular f da forma desejada, tendo a garantia que o matlab vai tratar todas as variáveis como simbólicas. (Nota a respeito de syms: podemos, para além de enumerar as variáveis simbólicas, indicar qual o tipo dessas variáveis: reais (real), positivas (positive), etc. Isto é efectuado colocando um parâmetro a seguir à última variável definida. Um exemplo: syms x real) Uma vez definida f, pode-se agora criar uma nova função em que a sua expressão designatória é igual à da função f após substituirmos a, b e c por 4, 5 e 8, respectivamemente. Essa operação poderá ser efectuada usando o comando subs: >> g=subs(f,[a,b,c],[4,5,8]) g = 4*x^2+5*x+8 11

Toolbox de Matemática Simbólica O comando findsym permite ver quais as variáveis simbólicas presentes numa dada expressão. Por exemplo, em f existem 4 variáveis simbólicas mas em g existe apenas uma (x): >> findsym(g) x O comando solve é bastante útil pois permite resolver equações (ou sistemas de equações) algébricas. Como exemplo, pretende-se achar as soluções da equação x^2-10*x+21=0. Pode-se então fazer: >> solve('x^2-10*x+21') 7 3 Mais exemplos demonstrativos do uso da função solve: 12

Toolbox de Matemática Simbólica >> equacaosegundograu='a*x^2+b*x+c=0 ; >> solve(equacaosegundograu) 1/2/a*(-b+(b^2-4*a*c)^(1/2)) 1/2/a*(-b-(b^2-4*a*c)^(1/2)) >> B=solve(equacaosegundograu,'a=1','b=-3','x=10') % calcula o valor de c que %fará com que a condição seja verdadeira B = a: [1x1 sym] b: [1x1 sym] c: [1x1 sym] x: [1x1 sym] >> B.c % vê qual o valor de c armazenado na estrutura B -70 13

Toolbox de Matemática Simbólica Mais um exemplo do uso do comando solve: >> S = solve('x^2 + x*y + y = 3','x^2-4*x + 3 = 0') S = x: [2x1 sym] y: [2x1 sym] >> S.x 1 3 >> S.y 1-3/2 Neste último exemplo, o resultado do sistema de equações é armazenado numa estrutura, a qual contém as duas soluções para x e y 14

Toolbox de Matemática Simbólica Podemos ver alguns dos resultados anteriores com um aspecto mais amigável usando o comando pretty. Um exemplo: >> h=solve(equacaosegundograu); >> pretty(h) [ 2 1/2] [ -b + (b - 4 a c) ] [1/2 --------------------] [ a ] [ ] [ 2 1/2] [ -b - (b - 4 a c) ] [1/2 --------------------] [ a ] 15

Matemática Simbólica - Derivação A toolbox de matemática simbólica disponibiliza um conjunto de funções de cálculo, entre as quais se destacam a derivação, a qual pode ser efectuada usando o comando diff: >> f=sym('3*x^3+4*x^2-5'); >> diff(f) 9*x^2+8*x % ===== Código alternativo ========= >> syms x >> f=3*x^3+4*x^2-5 f = 3*x^3+4*x^2-5 >> diff(f) 9*x^2+8*x 16

Matemática Simbólica Derivação / Integração Para calcular derivadas de ordem superior à primeira pode-se usar o mesmo comando mas com mais um parâmetro de entrada: >> diff(f,3) % calcula a terceira derivada da função f 18 Para calcular integrais indefinidos pode-se usar o comando int: >> int(f) % calcula a primitiva de f 3/4*x^4+4/3*x^3-5*x Outro exemplo: >> syms a b c x >> h=a*x^2+b*x+c; >> int(h,b) % calcula a primitiva de h considerando que b é a variável independente a*x^2*b+1/2*b^2*x+c*b 17

Matemática Simbólica Integração / Limites Ainda outro exemplo, agora com integrais definidos: >> f=sym(sin(x)) f = sin(x) >> int(f,0,pi) 2 Outra funcionalidade disponibilizada por esta toolbox é o cálculo de limites, usando o comando limit. A sintaxe deste comando é limit(f,x,x0) (calcula o limite da função f quando x tende para x0). Alguns exemplos: >> syms x >> limit(sin(x)/x,x,0) 1 18

Matemática Simbólica Limites / Somatórios Aplicações Informáticas para Engenharia >> limit(x/abs(x),x,0,'left') % calcula o limite à esquerda -1 >> limit(x/abs(x),x,0,'right') % calcula o limite à direita 1 Pode-se também calcular somatórios, neste caso com o comando symsum. Como exemplo, vamos supor que se pretende obter a soma de todos os elementos de uma dada série: soma=1+1/2^2+1/3^2+...1/n^2+... Este cálculo pode ser efectuado da seguinte forma: >> syms k >> soma=symsum(1/k^2,1,inf) soma = 1/6*pi^2 19

Matemática Simbólica Série de Taylor Pode-se ainda decompor uma dada função em série de Taylor (ou Maclaurin), usando o comando taylor. Alguns exemplos: >> syms x >> g=exp(x*sin(x)) g = exp(x*sin(x)) >> t=taylor(g,12,2); % decompõe g em série de Taylor, obtendo os 12 primeiros termos não nulos, em torno do ponto x=2. >> syms x >> f=1/(5+4*cos(x)); >> M=taylor(f,8) % obtém os termos da série de Maclaurin até (mas não incluindo) o de ordem 8 M = 1/9+2/81*x^2+5/1458*x^4+49/131220*x^6 20

Matemática Simbólica Equações Diferenciais Para resolver equações diferenciais de qualquer ordem, usa-se o comando dsolve. Alguns exemplos: >> dsolve('dy=1+y^2') % calcula a solução da equação y =1+y^2 tan(t+c1) % C1 é uma constante >> y=dsolve('dy=1+y^2','y(0)=1') % resolve a equação com uma condição inicial y = tan(t+1/4*pi) Nos exemplos anteriores, a letra D indica ao matlab que se trata da primeira derivada (por defeito a variável independente é t). Colocando um número inteiro após D dá indicação ao matlab de uma derivada de ordem superior. Como exemplo, vamos admitir que se pretende resolver a equação diferencial d (3) y/dx 3 =y, com as condições iniciais y(0)=1; y (0)=-1; y (0)=pi. A solução desta equação pode ser obtida da seguinte forma: 21

Matemática Simbólica Equações Diferenciais / Algebra >> y=dsolve('d3y=y','y(0)=1','dy(0)=-1','d2y(0)=pi','x') y = 1/3*pi*exp(x)-1/3*(1+pi)*3^(1/2)*exp(-1/2*x)*sin(1/2*3^(1/2)*x)+(-1/3*pi+1)*exp(- 1/2*x)*cos(1/2*3^(1/2)*x) Para calcular os valores e/ou vectores próprios de uma matriz usa-se o comando eig. Um exemplo: >> A=[1 3 5;2 4 6;7 8 9]; >> eig(a) 16.4340-2.4340-0.0000 Outra funcionalidade proporcionada pela toobox de matemática simbólica é a manipulação de expressões simbólicas (polinomiais ou de outro tipo), ao permitir factorizar ou expandir as referidas expressões 22

Matemática Simbólica Factorização e... Aplicações Informáticas para Engenharia Neste contexto, dois comandos muito úteis são expand e factor. Alguns exemplos da sua utilidade: >> syms x >> f=(x-3)^3+(x+1)^2-3 f = (x-3)^3+(x+1)^2-3 >> expand(f) x^3-8*x^2+29*x-29 >> factor(x^3+x^2-21*x-45) (x-5)*(x+3)^2 Consulte o help e veja ainda a utilidade de simple, collect e combine 23

Transformada de Laplace Aplicações Informáticas para Engenharia Para calcular a Transformada de Laplace ou Transforma de Laplace Inversa usamos os comandos laplace e ilaplace, respectivamente. Alguns exemplos: >> syms t >> f=5*exp(-5*t) f = 5*exp(-5*t) >> laplace(f) % calcula a Transformada de Laplace de f 5/(s+5) >> g=t^2+5*t-6; >> laplace(g) % calcula a Transformada de Laplace de g 2/s^3+5/s^2-6/s 24

Transformada de Laplace, Z e Fourier Aplicações Informáticas para Engenharia >> syms s >> ilaplace(1/sqrt(s)) % calcula a Transformada de Laplace Inversa 1/(pi*t)^(1/2) >> h=(2*s+2)/(s^2+7*s+12) % define h h = (2*s+2)/(s^2+7*s+12) >> ilaplace(h) % calcula a Transformada de Laplace Inversa de h(s) -4*exp(-3*t)+6*exp(-4*t) De forma análoga à Transformada de Laplace, a Transformada Z e a Transformada de Fourier podem ser calculadas por intermédio dos comandos ztrans e fourier, respectivamente 25

Transformada Z Aplicações Informáticas para Engenharia A Transformada Z (unilateral) de uma função f é definida como: ( ), é variável independente = ( ) f n n Z f f n z Um exemplo concreto: >> syms n >> f=n^4 f = n^4 >> sol=ztrans(f) sol = z*(z^3+11*z^2+11*z+1)/(z-1)^5 >> pretty(sol) 3 2 z (z + 11 z + 11 z + 1) ------------------------- 5 (z - 1) n = 0 n 26

Transformada de Fourier Aplicações Informáticas para Engenharia A Transformada de Fourier de uma função f é definida como: iωx f ( x ), x é variável independente F ( ω) = f ( x ) e dx Dois exemplos concretos: >> syms x >> f=exp(-x^2) f = exp(-x^2) >> fourier(f) pi^(1/2)*exp(-1/4*w^2) >> h=x*exp(-abs(x)) h = x*exp(-abs(x)) >> fourier(h) -4*i/(1+w^2)^2*w 27

Transformadas Inversas Aplicações Informáticas para Engenharia De forma análoga à Transformada de Laplace, os comandos iztrans e ifourier permitem calcular as Transformadas Inversas de Z e Fourier, respectivamente Muitas outras funções da toolbox de Matemática Simbólica não foram aqui abordadas pelo que se recomenda uma consulta ao manual da mesma 28