Você está na página 1de 10

Introduo ao MATLAB

O MATLAB, Laboratrio de Matrizes, uma poderosa ferramenta para computao numrica e visualizao grfica destinado a aqueles utilizadores, fundamentalmente das reas das engenharias e cincias, que precisam de um ambiente potente para realizar clculos matemticos, desenvolver algoritmos, modelao, simulao de prottipos, etc. O MATLAB est dotado de um sistema interactivo e uma linguagem de programao. Alem de bibliotecas para clculos aritmticos bsicos, o Matlab ainda oferece um grande nmero de ferramentas especializadas (toolboxes) para a resoluo de problemas em reas especficas, tais como estatstica, programao linear, sistemas de controles, etc. Por tudo isto, o Matlab permite solucionar muitos problemas numricos com um esforo muito menor do esforo que seria necessrio para escrever um programa em uma linguagem de programao de alto nvel como o Pascal, C, etc. Baseado em matrizes que no requerem dimensionamento, um dos objectivos principais do MATLAB proporcionar ao utilizador uma soluo simples e eficiente de muitos problemas computacionais que envolvem matrizes e vectores.

1. Ficheiros do Matlab: M-ficheiros


M-Ficheiros so ficheiros do MatLab com extenso .m que contm scripts e funes que podem ser chamados e executados na janela de comandos do MatLab
!" scripts utilizados para armazenar instrues de programa !" Funes utilizados para armazenar funes e procedimentos

2. Ambente de trabalho em MatLab


!" Janela de comandos:

Existem dois modos de utilizao: 1. modo imediato - para entrar variveis e executar os comandos do MatLab 2. modo de execuo de funes 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 comear a sua execuo.
!" Janela de edio: para a edio dos M-ficheiros !" Janela de grficos: para a visualizao e impreso de grficos

3. Trao do programa
#" diary <filename> redirecciona a informao de sada para um ficheiro activa/ desactiva o trao do programa #" diary on/off

4. Ajuda
#" HELP topic d ajuda no tpico #" HELP word - onde 'word' um nome de um ficheiro. Visualiza o primeiro comentrio no Mficheiro 'word.m'.

5. Comandos de visualizao e informao


#" ; #" , #" %
Gladys Castillo

coloca-se no final da linha para suprimir a repetio (echo) do comando a coloca-se no final da linha se deseja-se o computer echo comentrio
Mtodos Numricos e Estatstica Aulas Prticas

#" #" #" #" #" #" #" #" #"

format short format long who what clear clear variables clear functions clc clg

visualiza 4 lugares decimais visualiza 14 lugares decimais lista todas as variveis lista os ficheiros apaga o work space apaga as variveis apaga as funes limpa o display limpa o grfico

6. Comandos para atribuir valores s variveis


>> x = 2; >> y = x^2 -3*x + 2;

7. Programao em MATLAB
!"

Script - um conjunto de comandos e instrues em MatLab armazenadas num M-Ficheiro


% <program-name> {<specification-statements>} {<executable-statements>}

!"

Funes em MATLAB
function [lista de parmetros de sada] = nome (lista de parmetros de entrada) {<instrues para declarao de variveis>} {<instrues de execuo>} Example 7.1 : Implemente a funo sroot para determinar as races de um nmero pelo mtodo de Newton. Grave esta funo no M-ficheiro sroot.m function r = sroot(A) % Mtdodo de Newton para determinar A^(1/2) p0 = 1; % valor inicial for k=1:50, p1 = (p0+A/p0)/2; disp(p1); if abs(p1-p0)/p1 < eps, break, end; p0 = p1; end Execute a funo sroot e G na janela de comandos
sroot(5) 3 2.33333333333333 2.23809523809524 2.23606889564336 2.23606797749998 2.23606797749979 2.23606797749979

Example 7.1: grave estas funes nos M-ficheiros: f.m and G.m function y = f(x) y = exp(-x./10) + sin(x); function W = G(Z) x = Z(1); y = Z(2);
Gladys Castillo

% Z is a 1 by 2 vector

Mtodos Numricos e Estatstica Aulas Prticas

W = [x.^2-y.^2 2*x.*y]; Execute a funo f e G na janela de comandos


f(pi/2)

ans = 1.85463599915323
G([2 1])

ans =

8. Matrizes
Todas as variveis em MATLAB so tratadas como arrays (matrizes). Um escalar uma matriz de um por um. Inicializao: um array pode ser inicializado com zeros, uns ou com valores aleatrios
Z = zeros(1,5)

% Inicializa uma linha com zeros. 0 % Inicializa um vector como columna com zeros.

Z= 0

W = zeros(3,1)

W= 0 0 0
M = ones(2,4)

% Inicializa a matriz com uns.

M= 1 1 1 1
size(M)

1 1

1 1

ans = 2 4 8.1. Vectores: podem ser entrados e armazenados como uma matriz de uma linha ou uma coluna
V = [1,2,3,4]

V= 1

length(V)

% o cumprimento de um vector V

ans =
sum(V)

4 % a soma dos elementos de V 10

ans =

Gladys Castillo

Mtodos Numricos e Estatstica Aulas Prticas

mean(V)

% a media aritmtica dos elementos de V

ans = 2.5000 Podem ser criados vectores utilizando o operador : (colon)


X = 1:20; Y = X.^2; Y(10:20)

% um vector(lista) com nmeros inteiros desde 1 at 20. % um vector(lista) com cada nmero elevado ao quadrado. % visualiza os ltimas 11 elementos.

ans = 100 121 144 169 196 225 256 289 324 361 400
x=1:4:20;

% um vector com nmeros inteiros desde 1 to 20, com incremento 4.

x= 1 8.3. Matrizes
A = [1 2 3 4,

13

17

5 6 7 8, 9 10 11 12]; % seleccionar um elemento da matriz 3 % seleccionar uma sub-matriz

A(1,3)

ans =

A(2:3, 1:2)

ans =

5 9

6 10

Outras operaes sobre matrizes: inv A rank det eig norm rand eye rot90 fliplr flipud diag tril triu inversa transposta caracterstica determinante valores e vectores prprios norma elementos aleatrios matriz de identidade rotao 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,

C = inv(A)

3 4];

% determinar a matriz inversa

Gladys Castillo

Mtodos Numricos e Estatstica Aulas Prticas

C= -2.0000 1.0000 1.5000 -0.5000

9. Operadores
!" Operadores aritmticos

+ * / ^

Adio Subtraco Multiplicao Diviso Potncia

Operaes aritmticas sobre arrays .+ ..* ./ .^ Somar por elemento Subtrair por elemento Multiplicao por elemento Diviso por elemento Potncia por elemento 3 4]; % o quadrado da matriz

A = [1 2, A^2

ans = 7 10 15 22
A.^2

% O quadrado de cada elemento da matriz.

ans = 1 4 9 16
!" Operadores Relacionais

#" #" #" #" #" #"

== ~= < > <= >=

igual a no igual a menor que maior que menor ou igual a maior ou igual a

!" Operadores Lgicos

#" ~ #" & #" |

Not And Or

Valores booleanos 1 True 0 False

10. Instrues de Controlo para programao em MatLab


!" IF ELSEIF ELSE - END

if (<expreso-lgica#1>), {<instrues executveis>}


Gladys Castillo Mtodos Numricos e Estatstica Aulas Prticas

elseif (<expreso-lgica#2>), {<instrues executveis>} . else {<instrues executveis>} end


!" Ciclos !" FOR

for varivel = expresso {<instrues executveis>} end break interrompe o ciclo Exemplo 10.1: for k=1:100, x=sqrt(k); if x>5, break, end end Exemplo 10.2: For loop sum1 = 0; for k = 1:1:10000, sum1 = sum1 + 1/k; end
sum1

sum1 = 9.78760603604434 Exemplo 10.3: sum2 = 0; for k = 10000:-1:1, sum2 = sum2 + 1/k; end
sum2

sum2 =

9.78760603604439

Exemplo 10.4: for j = 1:5, for k = 1:5, A(j,k) = 1/(j+k-1); end end
A

% The 5 by 5 Hilbert matrix A will be displayed.

!" WHILE

while <expreso> {<instrues executveis>} end

Gladys Castillo

Mtodos Numricos e Estatstica Aulas Prticas

Exemplo 10.5: m = 10; k = 0; while k<=m x = k/10; disp([x, x^2, x^3]); k = k+1; end

% A table of values will be printed.

!" Pause : esta instruo gera uma pausa na execuo do programa

11. Grficos
!"

funo plot( ) - gera grficos em R2

desenha um grfico que passa pelos pontos (x(i),y(i)) #" plot(x,y) desenha um grfico que passa pelos pontos (i,y(i)) #" plot(y) onde S um string que define o color e tipo da linha. #" plot(x,y, 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; m magenta, c - azul celeste; r - vermelho; g verde; b - azul ; w branco; k- preto tipo de linha: . ; -; o ; : ; x; -. ; + ; --; * ; s - quadrado; d diamante; v; ^ ; <; >; etc. For example: plot(x1,y1,r*, x2,y2, g, x2,y2,:) desenha vrios grficos com diferentes cores e formatos de linhas. Example 11.1: Escreva um programa em MatLab que construa o grfico da funo y=sin(x), para x [0, ] com passo /8 . Grave o programa num ficheiro com o nome PlotSin.m O Matlab permite rpidamente avaliar funes num largo conjunto de dados. For example: se X=[-1 0 1], ento sin(X) produz o resultado [sin(-1) sin(0) sin(-1)]. Similarmente se X=0:pi/8:pi ento Y=sin(X) produz uma matriz Y da mesma dimenso que X com os correspondentes valores de sin(x). % PlotSin construi o grfico da funo y=sin(x) X = 0:pi/16:pi; Y = sin(X); figure(1); clf; hold on; axis([-0.2 3.2 -0.1 1.1]); plot([-0.2 3.2],[0,0],[0,0],[-0.1 1.1]); plot(X,Y); xlabel('x'); ylabel('y'); title('Graph of y = sin(x)'); grid; hold off;

% define os eixos de coordenadas % desenha os eixos % desenha o grfico

Gladys Castillo

Mtodos Numricos e Estatstica Aulas Prticas

Execute o commando PlotSin para visualizar o grfico

Comentrios: Os dados usados pelo comando plot tem de ser dois vectores de igual comprimento. X= 0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562 2.7489 3.1416 Y= 0 0.3827 0.7071 0.9239 1.0000 0.9239 0.7071 0.3827 0.0000

Example 13.2: Escreva um programa em MatLab que construa o grfico do polinmio p(x) = x5 - 10x4 + 35x3 - 50x2 + 24 Grave o programa num ficheiro com o nome PlotPoly.m figure(1);clf; C = [1 -10 35 -50 24]; % definir um vector com os coeficientes do polinmio X=-0.2:0.1:4.2; % definir as abcissas Y=polyval(C,X); % polyval - funo que avalia um polinmio axis([-0.2 4.2 -2.3 4.3]); % definir os eixos plot([-0.2 4.2],[0,0],[0,0],[-2.3 4.3]); % desenhar os eixos plot(X,Y); % desenhar o grfico hold on; xlabel('x'); ylabel('y'); title('Graph of a polynomial.'); grid; axis; hold off;

Execute o commando PlotPoly para visualizar o grfico

Gladys Castillo

Mtodos Numricos e Estatstica Aulas Prticas

Example 13.3: Escreva um programa em MatLab onde o utilizador pode entrar a funo para construir o grfico. Sugesto: A funo f pode ser definida como texto, por exemplo, se f=sin(x) pode ser usado o comando fplot (f, [0,10])

Gladys Castillo

Mtodos Numricos e Estatstica Aulas Prticas

14. Outras funes do MatLab


!" Funes Matemticas

#" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #"

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,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

!" Funes para Anlise 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, (c) John H. Mathews, Kurtis D. Fink,Prentince Hall, 1999

Gladys Castillo

10

Mtodos Numricos e Estatstica Aulas Prticas

Você também pode gostar