MATLAB 6 OTÍLIA GEROTTO R12
O que é o Matlab? - MATLAB (Matrix Laboratory) – software p/ cálculo numérico e científico de visualização de alta performance. - Elementos Básicos: Matrizes que não requerem dimensionamento. -Mais rápido e eficiente que C, Basic, Pascal ou Fortran. -TOOLBOXES:Grande coleção de funções para: otimização, manip.algébrica, redes neurais, process. Sinais, simul.sist.dinâmicos, etc.
Objetivos: Resolver problemas matemáticos rápida e eficientemente; Fácil de ser usado; Problemas e soluções são expressos quase que da mesma maneira que no papel; Facilidade de transcrição de fórmulas matemáticas para serem usadas em computadores; Utilizado em aplicações matemáticas, engenharia e análises científicas;
Elementos Básicos do Matlab: Escalares (matriz 1X1) Vetores: Linha e Coluna Matrizes bi e multidimensionais Variáveis Reservadas: ans, pi, i, j, inf, version, flops, NaN, computer Expressões Lógicas Polinômios Gráficos 2D e 3D Programação e também o Help
Tipos de Dados: INTEIRO : 5 COMPLEXO: ´i´ e ´j´. Ex: -3i NOTAÇÃO CIENTÍFICA: -1.23e4 CHARACTER. Ex: ´ant´
Variáveis: Alfanuméricas com até 32 caracteres; 1º caractere deve ser uma letra; Aceita - no meio da variável; São sensíveis a maiúsculo e minúsculo;
Declaração de Variáveis: Exemplos: >>vet_01=[ ] Vet_01 = >>Mat1=[ ; ] Mat1 = nome-do-tipo :: lista-de-identificadores
Comando de Atribuição: Variável = expressão - Exemplos: x = sin(5) y=1/3 Z= w=1.602e-20 r =.0001 soma=3+2i c = ABC
Expressões Aritméticas: OPERADOROPERAÇÃO +Adição -Subtração *Multiplicação Matricial.*Multiplicação Escalar /Divisão Matricial./Divisão Escalar.\Divisão esquerda ^Potência.^Potência escalar ´Transposta ()Precedência
Funções Básicas: ExpEPolyPolinômio característico LogLogarritmo naturalDetDeterminante Log10Log.base 10AbsValor absoluto FindIndice não zeroSqrtRaiz quadrada MaxMáximo valorRealParte real nº complexo MinMínimo valorImagParte imag.nºcomplexo MeanMédia aritméticaConjConjunto nº complexo StdDesvio padrãoRoundarredondar
Expressões Lógicas: OperadorSignificado <Menor que <=Menor ou igual que = Igual ~=Não igual >Maior que >=Maior ou igual que Operadores lógicos: & Para conjunção | Para disjunção ~ Para a negação
Polinômios Vetores de uma linha, com coeficientes ordenados em ordem descrescente. Ex: x³ - 6x² - 72x – 27 é representado da forma: > p=[1 –6 –72 27] p =
Funções para Polinômios: Roots-> raízes do polinômio Polyval -> valor do polinômio no ponto Conv-> multiplicação polinômios Deconv-> divisão de polinômios Polyder-> derivadas outras...
GRÁFICO 2D PLOT : função básica para desenhar gráficos em duas dimensões. Ex: f(x) = sen(x), 0<x<2*pi fica: >>x=[0:0.1:2*pi]; >>plot(x,sin(x)) Que resulta no seguinte gráfico:
Ex. de Gráfico 2D: f(x) = sen(x)
Gráficos 3D: Podem ser: Curvas ou Superfícies Curvas: plot3 – plota curvas em 3D contour – curvas de nível Superfícies: surf, surfc, sufl – superfícies em 3D mesh, meshc – linhas em perspectivas 3D Exemplo de um gráfico de curvas de uma hélice circular: t=0:pi/50:10*pi; plot3(sin(t),cos(t),t);
Ex. Gráfico 3D de curvas:
Um exemplo em 3 tempos: f(x,y) = sin(x/2).cos(y/3) -pi< x,y<pi 1). Se utilizarmos um gráfico 2D: x=[-pi:0.1:pi]; y=x; z=sin(x/2).*cos(y/3); plot(z) (x,y,z são vetores linha de 1x63)
2). Gráfico 3D com curvas x=[-pi:0.1:pi];y=x; [x,y]=meshgrid(x,y); z=sin(x/2).*cos(y/3); plot3(x,y,z) 3). Gráfico 3D com superfícies x=[-pi:0.1:pi];y=x; [x,y]=meshgrid(x,y); z=sin(x/2).*cos(y/3); mesh(z); (x,y,z são matrizes 63x63)
1).Utilizando-se plot (2D):
2).Utilizando-se meshgrid+plot3
3).Utilizando-se meshgrid+mesh
Programação: Controladores de Fluxo Arquivos m : Scripts matrizes extensas Comandos frequentemente digitados Funções Função Funções
Controladores de Fluxo: 1). FOR variável = expressão bloco de comandos... END Ex: >For i=^1:10 v(i) = 3*i; end Cria um vetor V com 10 elementos:
Controladores de Fluxo.... 2). WHILE (expressão verdadeira) bloco de comandos... END Ex do cálculo do fatorial de n até n!< 10¹00 >N=1; while prod(1:N)<1.e100 prod(1:N) N=N+1; end > N = 70
Controladores de Fluxo.... 3). IF condição verdadeira bloco de comandos ELSEIF condição2 verdadeira bloco de comandos ELSE bloco de comandos END
BREAK – termina um laço INPUT - recebe dados do teclado. PAUSE - pausa na execução pgma até que qq.tecla seja pressionada. PAUSE(n) – dá uma pausa de n segundos. Controladores de Fluxo....
Arquivos m: Automatizam uma sequência comandos. Úteis p/entrar com matrizes extensas. Podem ser criados a partir de qq.editor de texto e são arquivos textos comuns. Três tipos de arquivos M: Scripts Funções Funções Função
Scripts: Quando chamado, o Matlab executa todos os comandos do arquivo. Ex arq. Fibonacci.m: % Arquivo M que calcula prim.números de Fibonacci f= [1 1];I=1; while f(i) = f(i+1) < 1000 f(i+2) = f(i) + f(i+1); i = i+1; end plot(f) Para executar: somente fibonacci, fatorial, etc.
Gráfico do script fibonacci
Ex. de Script p/eq. 2o.Grau: Arquivo func2grau.m: % plota uma funcao y=ax^2 + bx +c no intervalo -5<x<5 clear aux='s'; while aux=='s', clc a=input('a='); b=input('b='); c=input('c='); x=-5:0.1:5; y=a*x.^2+b*x+c; plot(y) figure(1) pause clc close aux=input('Plotar outro? (s/n) ==> ','s'); end
Execução do script func2grau Para executar: func2grau a=3 b=4 c=5 já é criado a figura Plotar outro? (s/n) ==> n >>
Figura gerada pela execução:
Arquivos Função: Uma função difere de um script porque argumentos podem ser passados p/ela. Na prim.linha do arq. Deverá aparecer a palavra function que definirá o nome da função
Ex. arq. Função: function y= escal(a,b) % escal Produto escalar de dois vetores if size(a) ~= size(b) error(´Erro: vetores tamanhos diferentes´) end y=sum(ª*b); p/ executar: a=3; b=98; escal(a,b); > Ans = 294
Arquivos Funções Funções: As Funções Funções recebem strings que são nomes de funções. Ex. de algumas funções funções: Fplot veja ex. Gráfico de uma função FzeroRaíz de uma função Quad veja ex. Integração Numérica FminMínimo de uma função
Ex. Função Fplot da função velocid function v=velocid(t) % velocid velocidade de uma partícula num instante t v=sin(t).*t.^2+8*t+1; Agora usando a função função fplot > fplot(velocid,[0,12])
Script que utiliza funções: % Nome desse script tvelocid.m % Script para rodar a funçao velocid x=0:0.5:12; y=velocid(x); figure(1) plot(x,y) title('Figura 01 com plot') pause % Script para rodar a funçao velocid utilizando-se a funcao funcao fplot figure(2) fplot('velocid',[0,12]) title('Figura 02 com fplot') pause % Script da mesma funcao velocid, utilizando-se a funcao funcao quad (integracao numerica) xint=quad('velocid',0,12)
Execução script tvelocid >> tvelocid (nesse ponto foi gerada as 2 figuras com pause entre elas) xint =
Resultado execução tvelocid
Bibliografia: 1. BALTHAZAR, J.Manoel, MATLAB Conceitos Básicos – UNESP – DEMAC, MATSUMOTO, Élia Yathie, Matlab6 Fundamentos Pgmação, 2001; 3. TODESCO, José Leomar, Curso Introdut. MATLAB – UFSC, 1995;