410 likes | 605 Views
MATLAB 6 . R12. OTÍLIA GEROTTO. 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.
E N D
MATLAB 6 R12 OTÍLIA GEROTTO
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: nome-do-tipo :: lista-de-identificadores • Exemplos: >>vet_01=[0.1 -0.5 1] Vet_01 = 0.1000 -0.5000 1.000 >>Mat1=[1 2 3 4 5 6; 7 8 9 2 0 5] Mat1 = 1 2 3 4 5 6 7 8 9 2 0 5
Comando de Atribuição: Variável = expressão - Exemplos: x = sin(5) y=1/3 Z=9.63973 w=1.602e-20 r = .0001 soma=3+2i c = ‘ABC’
Expressões Lógicas: 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 = 1 -6 -72 -27
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);
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)
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: 1 6 9 12 15 18 21 24 27 30
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
Controladores de Fluxo.... • 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.
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.
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 • >>
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 functionque 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:
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 = 453.2950
Bibliografia: • BALTHAZAR, J.Manoel, MATLAB Conceitos Básicos – UNESP – DEMAC, 2001 • MATSUMOTO, Élia Yathie, Matlab6 Fundamentos Pgmação, 2001; • TODESCO, José Leomar, Curso Introdut. MATLAB – UFSC, 1995;