Introdução ao MATLAB

O MATLAB, Laboratório de Matrizes, é uma poderosa ferramenta para computação numérica e visualização gráfica destinado a aqueles utilizadores, fundamentalmente das áreas das engenharias e ciências, que precisam de um ambiente potente para realizar cálculos matemáticos, desenvolver algoritmos, modelação, simulação de protótipos, etc. O MATLAB está dotado de um sistema interactivo e uma linguagem de programação. Alem de bibliotecas para cálculos aritméticos básicos, o Matlab ainda oferece um grande número de ferramentas especializadas (toolboxes) para a resolução de problemas em áreas específicas, tais como estatística, programação linear, sistemas de controles, etc. Por tudo isto, o Matlab permite solucionar muitos problemas numéricos com um esforço muito menor do esforço que seria necessário para escrever um programa em uma linguagem de programação de alto nível como o Pascal, C, etc. Baseado em matrizes que não requerem dimensionamento, um dos objectivos principais do MATLAB é proporcionar ao utilizador uma solução simples e eficiente de muitos problemas computacionais que envolvem matrizes e vectores.

1. Ficheiros do Matlab: M-ficheiros
M-Ficheiros – são ficheiros do MatLab com extensão .m que contêm scripts e funções que podem ser chamados e executados na janela de comandos do MatLab
!" scripts – utilizados para armazenar instruções de programa !" Funções – utilizados para armazenar funções e procedimentos

2. Ambente de trabalho em MatLab
!" Janela de comandos:

Existem dois modos de utilização: 1. modo imediato - para entrar variáveis e executar os comandos do MatLab 2. modo de execução de funções para executar procedimentos e programas armazenados em M- ficheiros

Nota: utilize o comandos cd para mover-se para a directoria onde se encontra o M-ficheiro e introduza logo o nome do ficheiro para começar a sua execução.
!" Janela de edição: para a edição dos M-ficheiros !" Janela de gráficos: para a visualização e impresão de gráficos

3. Traço do programa
#" diary <filename> → redirecciona a informação de saída para um ficheiro → activa/ desactiva o traço do programa #" diary on/off

4. Ajuda
#" HELP topic – dá ajuda no tópico #" HELP word - onde 'word' é um nome de um ficheiro. Visualiza o primeiro comentário no Mficheiro 'word.m'.

5. Comandos de visualização e informação
#" ; #" , #" %
Gladys Castillo

coloca-se no final da linha para suprimir a repetição (echo) do comando a coloca-se no final da linha se deseja-se o computer echo comentário
Métodos Numéricos e Estatística Aulas Práticas

1

m function y = f(x) y = exp(-x. break.23606797749979 Example 7. % valor inicial for k=1:50. >> y = x^2 -3*x + 2. 7. Gladys Castillo % Z is a 1 by 2 vector 2 Métodos Numéricos e Estatística Aulas Práticas ./10) + sin(x).m and G.23606797749979 2. if abs(p1-p0)/p1 < eps.23606889564336 2. Programação em MATLAB !" Script .23606797749998 2. Grave esta função no M-ficheiro sroot.1: grave estas funções nos M-ficheiros: f.23809523809524 2. end Execute a função sroot e G na janela de comandos » sroot(5) 3 2. function W = G(Z) x = Z(1).m function r = sroot(A) % Métdodo de Newton para determinar A^(1/2) p0 = 1. end.#" #" #" #" #" #" #" #" #" format short format long who what clear clear variables clear functions clc clg visualiza 4 lugares decimais visualiza 14 lugares decimais lista todas as variáveis lista os ficheiros apaga o work space apaga as variáveis apaga as funções limpa o display limpa o gráfico 6. y = Z(2). p1 = (p0+A/p0)/2. Comandos para atribuir valores ás variáveis >> x = 2. disp(p1).um conjunto de comandos e instruções em MatLab armazenadas num M-Ficheiro % <program-name> {<specification-statements>} {<executable-statements>} !" Funções em MATLAB function [lista de parâmetros de saída] = nome (lista de parâmetros de entrada) {<instruções para declaração de variáveis>} {<instruções de execução>} Example 7.33333333333333 2. p0 = p1.1 : Implemente a função sroot para determinar as raíces de um número pelo método de Newton.

3.4] V= 1 2 3 4 » length(V) % o cumprimento de um vector V ans = » sum(V) 4 % a soma dos elementos de V 10 ans = Gladys Castillo 3 Métodos Numéricos e Estatística Aulas Práticas . Matrizes Todas as variáveis em MATLAB são tratadas como arrays (matrizes). uns ou com valores aleatórios » Z = zeros(1.*y].2. Execute a função f e G na janela de comandos » f(pi/2) ans = 1.1. M= 1 1 1 1 » size(M) 1 1 1 1 ans = 2 4 8. Inicialização: um array pode ser inicializado com zeros.1) W= 0 0 0 » M = ones(2. 0 % Inicializa um vector como columna com zeros. Um escalar é uma matriz de um por um.W = [x. Z= 0 0 0 0 » W = zeros(3.4) % Inicializa a matriz com uns.5) % Inicializa uma linha com zeros.^2 2*x.^2-y. Vectores: podem ser entrados e armazenados como uma matriz de uma linha ou uma coluna » V = [1.85463599915323 » G([2 1]) ans = 3 4 8.

ans = 100 121 144 169 196 225 256 289 324 361 400 » x=1:4:20.^2. » C = inv(A) 3 4]. % um vector com números inteiros desde 1 to 20. % visualiza os últimas 11 elementos.5000 Podem ser criados vectores utilizando o operador “:” (colon) » X = 1:20. 5 9 13 17 5 6 7 8.» mean(V) % a media aritmética dos elementos de V ans = 2. x= 1 8.3. 9 10 11 12]. com incremento 4. » Y(10:20) % um vector(lista) com números inteiros desde 1 até 20. % um vector(lista) com cada número elevado ao quadrado. 1:2) ans = 5 9 6 10 Outras operações sobre matrizes: ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ inv A’ rank det eig norm rand eye rot90 fliplr flipud diag tril triu → inversa → transposta → característica → determinante → valores e vectores próprios → norma → elementos aleatórios → matriz de identidade → rotação dos elementos da matriz → inverter matrix left-to-right → inverter matrix up-and-down → extraer diagonal → lower triangular part → upper triangular part Exemplo: matriz transposta » A = [1 2. Matrizes » A = [1 2 3 4. % determinar a matriz inversa Gladys Castillo 4 Métodos Numéricos e Estatística Aulas Práticas . % seleccionar um elemento da matriz 3 % seleccionar uma sub-matriz » A(1. » Y = X.3) ans = » A(2:3.

+ .5000 9.END if (<expresão-lógica#1>).C= -2..0000 1.0000 1. {<instruções executáveis>} Gladys Castillo Métodos Numéricos e Estatística Aulas Práticas 5 . » A^2 ans = 7 10 15 22 » A. Instruções de Controlo para programação em MatLab !" IF – ELSEIF – ELSE .* . ans = 1 4 9 16 !" Operadores Relacionais #" #" #" #" #" #" == ~= < > <= >= → igual a → não igual a → menor que → maior que → menor ou igual a → maior ou igual a !" Operadores Lógicos #" ~ #" & #" | → Not → And → Or Valores booleanos 1 True 0 False 10. Operadores !" Operadores aritméticos + * / ^ Adição Subtracção Multiplicação Divisão Potência Operações aritméticas sobre arrays . % o quadrado da matriz » A = [1 2.5000 -0.^2 % O quadrado de cada elemento da matriz./ .^ Somar por elemento Subtrair por elemento Multiplicação por elemento Divisão por elemento Potência por elemento 3 4].

sum1 = sum1 + 1/k. else {<instruções executáveis>} end !" Ciclos !" FOR for variável = expressão {<instruções executáveis>} end break → interrompe o ciclo Exemplo 10. break.78760603604439 Exemplo 10. sum2 = sum2 + 1/k. {<instruções executáveis>} …. end » sum1 sum1 = 9. for k = 10000:-1:1. end end »A % The 5 by 5 Hilbert matrix A will be displayed.3: sum2 = 0. !" WHILE while <expresão> {<instruções executáveis>} end Gladys Castillo 6 Métodos Numéricos e Estatística Aulas Práticas . A(j. for k = 1:5.elseif (<expresão-lógica#2>). end » sum2 sum2 = 9. end end Exemplo 10. if x>5. for k = 1:1:10000.2: For loop sum1 = 0. x=sqrt(k).k) = 1/(j+k-1).1: for k=1:100.4: for j = 1:5.78760603604434 Exemplo 10.

1]). plot([-0. k. c .1: Escreva um programa em MatLab que construa o gráfico da função y=sin(x). Similarmente se X=0:pi/8:pi então Y=sin(X) produz uma matriz Y da mesma dimensão que X com os correspondentes valores de sin(x). * .Exemplo 10.[0.0].m O Matlab permite rápidamente avaliar funções num largo conjunto de dados. hold off. x^2. para x ∈ [0. k = k+1.vermelho. !" Pause : esta instrução gera uma pausa na execução do programa 11.[-0. grid. + . For example: se X=[-1 0 1]. -. Gráficos !" função plot( ) . ^ . end % A table of values will be printed.preto tipo de linha: . while k<=m x = k/10. g – verde.gera gráficos em R2 → desenha um gráfico que passa pelos pontos (x(i).’:’) → desenha vários gráficos com diferentes cores e formatos de linhas.azul . Example 11. % define os eixos de coordenadas % desenha os eixos % desenha o gráfico Gladys Castillo 7 Métodos Numéricos e Estatística Aulas Práticas .quadrado.y. ylabel('y'). r . o . Y = sin(X).1 1. >. x^3]).y2. v. plot(X. ‘g’. #" plot(x.[0.’r*’.y1. : .azul celeste. xlabel('x'). x2. k = 0. figure(1).1]). Grave o programa num ficheiro com o nome PlotSin. -. title('Graph of y = sin(x)').y) → desenha um gráfico que passa pelos pontos (i. m – magenta.1 1.Y). % PlotSin – construi o gráfico da função y=sin(x) X = 0:pi/16:pi. s . d –diamante. .y2. For example: plot(x1. x. disp([x. Π] com passo Π /8 . x2. então sin(X) produz o resultado [sin(-1) sin(0) sin(-1)].y(i)) #" plot(y) → onde S é um string que define o color e tipo da linha. S) S pode estar formado por o primeiro elemento que identifica a cor da linha e o segundo que identifica o tipo de linha: cor : y – amarelo. w – branco.5: m = 10. . <. hold on.2 3.0].2]. clf. b .2 -0. axis([-0. etc.2 3. --.y(i)) #" plot(x.

Execute o commando PlotPoly para visualizar o gráfico Gladys Castillo 8 Métodos Numéricos e Estatística Aulas Práticas .[0.2:0.3562 2.7071 0.1:4.2 4.m figure(1).clf.0].7071 0.X). % polyval . axis. % definir um vector com os coeficientes do polinómio X=-0. X= 0 0. hold off.10x4 + 35x3 . % definir as abcissas Y=polyval(C.3 4. grid. ylabel('y').2 4.3]).3927 0.2: Escreva um programa em MatLab que construa o gráfico do polinómio p(x) = x5 .7854 1.Execute o commando PlotSin para visualizar o gráfico Comentários: Os dados usados pelo comando plot tem de ser dois vectores de igual comprimento.3]).9635 2.0000 Example 13.0000 0.9239 1. C = [1 -10 35 -50 24].50x2 + 24 Grave o programa num ficheiro com o nome PlotPoly.[-2.2 -2.função que avalia um polinómio axis([-0. % desenhar os eixos plot(X.7489 3.2].3827 0. title('Graph of a polynomial.3 4.5708 1.3827 0.').1416 Y= 0 0. % desenhar o gráfico hold on.Y).1781 1. % definir os eixos plot([-0.[0. xlabel('x').0].9239 0.2.

Sugestão: A função f pode ser definida como texto.3: Escreva um programa em MatLab onde o utilizador pode entrar a função para construir o gráfico. [0. por exemplo.10]) Gladys Castillo 9 Métodos Numéricos e Estatística Aulas Práticas .Example 13. se f=’sin(x)’ pode ser usado o comando fplot (f.

14.Prentince Hall. Outras funções do MatLab !" Funções Matemáticas #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" cos(x) sin(x) tan(x) exp(x) acos(x) asin(x) atan(x) log(x) log10(x) sqrt(x) abs(x) round(x) fix(x) floor(x) ceil(x) sign(x) cosh(x) sinh(x) tanh(x) acosh(x) asinh(x) atanh(x) real(z) imag(z) conj(z) angle(z) rem(p. Fink. (c) John H.q) → → → → → → → → → → → → → → → → → → → → → → → → → → → cosine (radians) sine (radians) tangent (radians) exponential exp(x) inverse cosine (radians) inverse sine (radians) inverse tangent (radians) natural logarithm base e common logarithm base 10 square root absolute value round to nearest integer round towards zero round towards -ì round towards +ì signum function hyperbolic cosine hyperbolic sine hyperbolic tangent inverse hyperbolic cosine inverse hyperbolic sine inverse hyperbolic tangent real part of complex number z imaginary part of complex number z complex conjugate of the complex number z argument of complex number z remainder when p is divided by q !" Funções para Análise de Dados #" #" #" #" #" #" #" #" #" #" #" #" #" #" Max Min Mean Median std sort sum prod cumsum cumprod diff hist corrcoef cov → → → → → → → → → → → → → → maximum value minimum value mean value median value standard deviation sorting sum the elements form product of the elements cumulative sum of elements cumulative product of elements approximate derivatives (differences) histogram correlation coefficients covariance matrix Bibliografia: !" NUMERICAL METHODS using MATLAB Programs. Mathews. 1999 Gladys Castillo 10 Métodos Numéricos e Estatística Aulas Práticas . Kurtis D.