Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
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.
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'.
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
7. Programao em MATLAB
!"
!"
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
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)
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)
ans =
Gladys Castillo
mean(V)
% 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;
x= 1 8.3. Matrizes
A = [1 2 3 4,
13
17
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
C = inv(A)
3 4];
Gladys Castillo
9. Operadores
!" Operadores aritmticos
+ * / ^
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
ans = 1 4 9 16
!" Operadores Relacionais
igual a no igual a menor que maior que menor ou igual a maior ou igual a
Not And Or
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
!" WHILE
Gladys Castillo
Exemplo 10.5: m = 10; k = 0; while k<=m x = k/10; disp([x, x^2, x^3]); k = k+1; end
11. Grficos
!"
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;
Gladys Castillo
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;
Gladys Castillo
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
#" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #" #"
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
#" #" #" #" #" #" #" #" #" #" #" #" #" #"
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