Mrio J. Franca mfranca@dec.uc.pt mfranca@tetraplano.com Departamento de Engenharia Civil Tetraplano, Engenharia Lda. FCT - Universidade de Coimbra
1 INTRODUO AO AMBIENTE MATLAB 2 OPERAES E SINTAXE DE BASE 3 VECTORES E MATRIZES 4 GRFICOS
Curso de introduo ao MATLAB 2
1 INTRODUO AO AMBIENTE MATLAB
MATLAB um sistema interactivo, baseado na representao matricial, que permite, num ambiente visual amigvel, realizar trabalhos de clculo, resoluo numrica, processamento de dados e visualizao recorrendo a uma forma de programao fcil. O interface MATLAB utilizado como ferramenta de clculo e visualizao em trabalhos de investigao e no apoio resoluo de problemas de engenharia. Trabalhar com o MATLAB inclui as seguintes componentes: - interface de trabalho (onde se encontram as janelas de comando, edio, rea de trabalho, anlise de programas, etc.); - biblioteca de funes matemticas (existe uma vasta biblioteca de funes matemticas pr-programadas); - linguagem MATLAB; - manipulao de grficos (2D, 3D, animaes, etc.); - referncias externas (interaco com programas em C e Fortran e transformar scripts MATLAB em ficheiros executveis).
Ajuda de base disponvel: - livro Getting Started e outra documentao fornecida com a compra (disponvel em pdf); - product help atravs do menu Help; - documentao online com MATLAB help menu Help; - animaes disponveis sobre as diversas funes do MATLAB basta escrever demo na linha de comando do MATLAB; - comando help seguido da funo sobre a qual se tem dvidas, por exemplo escrever: help plot; - fruns de discusso online da comunidade de utilizadores em http://www.mathworks.com/
Curso de introduo ao MATLAB 3
Ambiente de trabalho: Os menus mudam consoante a ferramenta que se utiliza Janela de comandos onde se entram os comandos Directoria corrente Contedo da directoria corrente Janela de comandos
O MATLAB um ambiente inicialmente concebido para ser utilizado recorrendo a linhas de comando e mantm esta orientao. Actualmente muitas das funes do MATLAB podem ser acedidas e controladas atravs de um interface grfico. Os interfaces grficos, vulgo janelas, podem ser teis para principiantes como forma de conhecer as potencialidades do MATLAB ou para tarefas interactivas simples e pontuais. No entanto, a utilizao de linhas de comando mais adequada para operaes mais complexas e feitas medida do utilizador e para a criao de scripts que permitam reproduzir tarefas repetidamente, permitindo ainda mais criatividade ao utilizador. Privilegia-se neste curso a utilizao do MATLAB com recurso linha de comando. Os comandos devero ser inseridos na janela de comandos, aps o smbolo >>. Para se executar qualquer comando deve-se utilizar a tecla enter. Existem diversas toolboxes que se podem adquirir com funes especficas pr- programadas tais como Statistics Toolbox, Signal Processing Toolbox, Neural Network Toolbox, Partial Differential Equation Toolbox, etc. Estas folhas contm informao sobre os comandos de base a utilizar em MATLAB disseminada no texto principal e nos exemplos de cdigo que vo sendo apresentados. Espera que o principiante siga os exemplos que so mostrados transcrevendo os comandos apresentados e seguindo o seu resultado. So sugeridos alguns exerccios ao longo do texto. Curso de introduo ao MATLAB 4
2 OPERAES E SINTAXE DE BASE
Definio de directoria de trabalho: - Com recurso ao menus File\Set Path. - Com recurso janela onde se encontra inscrita a directoria corrente. - Utilizando a linha de comandos: cd path; cd \ (para aceder ao nvel de directoria inferior)
Funes genricas: - quit: permite sair do programa. - who: identifica as variveis criadas no ambiente de trabalho. - whos: identifica as variveis criadas no ambiente de trabalho e fornece informao mais detalhada respeitante a estas. - clear: apaga todas as variveis no ambiente de trabalho; clear variable apenas apaga a varivel variable. - close: fecha a figura aberta em primeiro plano; close(h) fecha a janela identificada como h; close all fecha todas as janelas criadas pelo utilizador. - help: permite aceder a um texto de ajuda do MATLAB sobre determinado comando; dever ser procedido do comando em questo.
Aritmtica simples: >> 5+5 ans = 10 >> Ficamos com a varivel ans armazenada com o valor 10. Esta uma varivel genrica que adquire sempre o valor da ltima operao desde que a este no tenha sido atribuda um nome de varivel. Podemos atribuir um nome varivel: Curso de introduo ao MATLAB 5
>> a = 5 - 5 a = 10 >> Ficamos agora com a varivel a armazenada com o valor 10, o que pode ser confirmado com os comandos who ou whos. Se o utilizador no quiser visualizar sempre o resultado da operao que realizou poder utilizar o smbolo ; no final do comando: >> b = 10 *5; >> A varivel b foi guardada com o valor 50 apesar de no ter sido visualizada na janela de comando. Este aspecto de sintaxe pode adquirir particular importncia quando se efectua clculo numrico envolva muitos valores, poupando bastante tempo de processador. As variveis podero ser acedidas atravs da janela correspondente ao workspace. Por fim, quando se efectua uma operao com resultado infinito ou impossvel obtm-se os valores Inf e NaN (Not A Number): >> inexistente = 0/0; >> infinito = 5/0; >> Nota que o valor NaN pode ser enganador. Quando se trabalha com operaes de lgica, duas variveis com valor NaN so consideradas de valor diferente. Podemos agora ver todas as variveis criadas com who ou whos e, por fim, elimin- las parcialmente do rea de trabalho, >> clear ans % elimina a varivel ans >> clear a inexistente % elimina as variveis a e inexistente >> Ou todas, >> clear Curso de introduo ao MATLAB 6
>> Outros exemplos de operaes matemticas: As funes matemticas comuns esto todas pr-programadas e tm de ser fornecida com os respectivos argumentos: >> s = sin(pi); >> Quando atribumos ao mesmo nome outro valor, a varivel anterior substituda: >> s=atan(Inf)/pi; >> Exemplos de outras operaes: >> exp(i*pi) ans = -1.0000 + 0.0000i >> ans^2 ans = 1.0000 - 0.0000i >> imag(ans) ans = 0 >> sqrt(9) ans = 3 >> 2^3 ans = 8 >> numero_dias_que_ghandi_viveu = floor(now)-datenum(1948,01,30) numero_dias_que_ghandi_viveu = Curso de introduo ao MATLAB 7
22226 >> log(exp(1)) ans = 1 >> log10(exp(1)) ans = 0.4343 >> Quando se procura ajuda utilizando o comando help surgem uma srie de sugestes que podero ser teis (See also ): >> help now NOW Current date and time as date number. T = NOW returns the current date and time as a serial date number.
FLOOR(NOW) is the current date and REM(NOW,1) is the current time. DATESTR(NOW) is the current date and time as a string.
See also date, datenum, datestr, clock.
Reference page in Help browser doc now
>> help imag IMAG Complex imaginary part. IMAG(X) is the imaginary part of X. See I or J to enter complex numbers. Curso de introduo ao MATLAB 8
See also real, isreal, conj, angle, abs.
Reference page in Help browser doc imag
Exerccios: 1. Efectuar as seguintes operaes matemticas: (a) (2.1185) (b) (0.9201) (c) Calcular a rea de um crculo de dimetro 6. (28.2743) (d) (2.0263)
2. Qual o nome das funes pr-programadas que o MATLAB utiliza para: (a) Calcular a funo Bessel do segundo tipo? (b) Multiplicar dois polinmios? (c) Representar graficamente um campo de vectores? (d) Calcular a matriz inversa?
2. Qual o significado das funes pr-programadas: rand; fft: plot e load.
Curso de introduo ao MATLAB 9
3 VECTORES E MATRIZES
O MATLAB foi concebido inicialmente para clculo matricial; a programao em MATLAB dever tirar partido disso e ser orientada o mais possvel para o uso de matrizes.
Construo de vectores e matrizes: >> A = [1 2 3 ; 4 5 6 ; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> b = [0 ; 1 ; 0] b = 0 1 0 >> B = [0 1 0] B = 0 1 0 O MATLAB trata os vectores como bidimensionais, embora com uma dimenso trivial. Aceita matrizes reais e complexas (no MATLAB, salvo indicao contrria, i corresponde unidade imaginria): >> C=[sqrt(-1) (-2)^3+5i;log(25) sin(2*pi/3)] C = 0 + 1.0000i -8.0000 + 5.0000i 3.2189 0.8660 Curso de introduo ao MATLAB 10
>> Existem comandos que permitem saber as dimenses das matrizes ou vectores: >> size(A) , size(b) , size(B), size(C) ans = 3 3 ans = 3 1 ans = 1 3 ans = 2 2 >> ndims(A) , ndims(b) , ndims(B), ndims(C) ans = 2 ans = 2 ans = 2 ans = 2 As matrizes podem ser construdas a partir da concatenao de outras matrizes ou vectores desde que as suas dimenses sejam compatveis: >> [A b] ans = 1 2 3 0 4 5 6 1 7 8 9 0 Curso de introduo ao MATLAB 11
>> [A ; b] ??? Error using ==> vertcat CAT arguments dimensions are not consistent. >> [A B] ??? Error using ==> horzcat CAT arguments dimensions are not consistent. >> D = [ [1 2;3 4] [5;6] ] D = 1 2 5 3 4 6 >> permitida a construo de vectores constitudos por escalares igualmente espaados com uma sintaxe simples e condensada do seguinte modo utilizando o operador ponto e vrgula (first:step:last): >> 1:8 ans = 1 2 3 4 5 6 7 8 >> 0:2:10 ans = 0 2 4 6 8 10 >> d = 1:-.5:-1 d = 1.0000 0.5000 0 -0.5000 -1.0000 >>
Manipulao dos valores no interior de vectores e matrizes: Podemos nos referir aos valores no interior de matrizes ou vectores utilizando a notao indicial para cada elemento: Curso de introduo ao MATLAB 12
>> B(3) % unidimensional ans = 0 >> A(2,3) % bidimensional ans = 6 >> b(2) % unidimensional ans = 1 >> A(1:2,2:3) % submatriz ans = 2 3 5 6 >> A(2,2:end) % utilizando o operador end ans = 5 6 >> A(:,2) % utilizao do carcter especial : ans = 2 5 8 >> A(3,:) ans = 7 8 9 >> imag(C(1,2)) % manipulao de elementos de uma matriz ans = Curso de introduo ao MATLAB 13
5 >> real(C(1,2))+imag(C(1,2)) ans = -3 Um elemento de uma matriz pode ser acedido atravs de um nico ndice uma vez que estas so armazenadas em memria linearmente pela primeira dimenso e subsequentemente pelas outras dimenses: >> A A = 1 2 3 4 5 6 7 8 9 >> A(3) ans = 7 >> A(6) ans = 8 Outras operaes de manipulao das matrizes incluem: >> R = rand(2,5) R = 0.1576 0.9572 0.8003 0.4218 0.7922 0.9706 0.4854 0.1419 0.9157 0.9595 >> R(:,4) = [ ] % apaga elementos da matriz R = 0.1576 0.9572 0.8003 0.7922 0.9706 0.4854 0.1419 0.9595 Curso de introduo ao MATLAB 14
>> R(2,:) = 111 % expande o escalar 111 na linha 2 R = 0.1576 0.9572 0.8003 0.7922 111.0000 111.0000 111.0000 111.0000 >> R(3,1) = 555 % cria uma nova linha para alocar um novo escalar R = 0.1576 0.9572 0.8003 0.7922 111.0000 111.0000 111.0000 111.0000 555.0000 0 0 0 >> R' % matriz transposta ans = 0.1576 111.0000 555.0000 0.9572 111.0000 0 0.8003 111.0000 0 0.7922 111.0000 0
Operaes de lgica com vectores e matrizes: Os operadores de lgica so: ==; <; <=; >; >=; ~=. >> R>0.8 ans = 0 1 1 0 1 1 1 1 1 0 0 0 >> R(ans) ans = 111.0000 555.0000 Curso de introduo ao MATLAB 15
0.9572 111.0000 0.8003 111.0000 111.0000 >> R(R==0) ans = 0 0 0 >> R([1 1 1]) ans =
Operaes com vectores e matrizes: >> A+A ans = 2 4 6 8 10 12 14 16 18 >> ans-0.5 ans = 1.5000 3.5000 5.5000 7.5000 9.5000 11.5000 13.5000 15.5000 17.5000 >> 0.1*R ans = 0.0158 0.0957 0.0800 0.0792 Curso de introduo ao MATLAB 16
11.1000 11.1000 11.1000 11.1000 55.5000 0 0 0 >> A*B % clculo matricial impossvel por incompatibilidade de dimenses ??? Error using ==> mtimes Inner matrix dimensions must agree. >> A*b ans = 2 5 8 >> A*R(:,2:4) ans = 222.9572 222.8003 222.7922 558.8287 558.2011 558.1688 894.7002 893.6020 893.5455 >> A^2 ans = 30 36 42 66 81 96 102 126 150 >> cos(A) ans = 0.5403 -0.4161 -0.9900 -0.6536 0.2837 0.9602 0.7539 -0.1455 -0.9111 O operador \ permite a resoluo de sistemas lineares de equaes do seguinte modo: Curso de introduo ao MATLAB 17
>> R(:,1:3)\b ans = 0 -0.0460 0.0550 Os operadores *, /, ^ tm uma interpretao prpria no que diz respeito ao clculo matricial. Para aplicar estas operaes elemento a elemento entre duas matrizes de dimenses semelhantes utiliza-se o smbolo . antes do operador: >> A.*R(:,2:4) ans = 0.9572 1.6006 2.3766 444.0000 555.0000 666.0000 0 0 0 >> A./R(:,2:4) ans = 1.0447 2.4991 3.7869 0.0360 0.0450 0.0541 Inf Inf Inf >> A.^3 ans = 1 8 27 64 125 216 343 512 729
Funes utilizadas com vectores e matrizes: Curso de introduo ao MATLAB 18
size, length, ndims, find, eye, zero, ones, diag, triu, tril, rand, rank, \, det, norm, expm, lu, qr, chol, eig, svd, sparse; max; sum; mean; any; min; diff; median; all; sort; prod; std; cumsum; ones. Escrevendo na linha de comando help seguido do nome da funo obtm-se informao sobre cada uma delas. Exerccios: 1. Definir o significado das funes e operadores: ~=; eye; triu; eig; det; ones, sum 2. Crie uma matriz (3x3) onde em cada linha dever incluir a sua data de nascimento (dia, ms, ano) e dos seus pais. Com uma linha de comando calcule a idade dos trs. Determine, com uma linha de comando, qual a idade da pessoa mais velha das trs. Com uma linha de comando apenas indique quantos dias faltam para o primeiro aniversrio a acontecer entre os trs. 3. Crie, com um comando apenas, uma matriz (11x5) em que todos os seus elementos escalares valem 16. 4. Crie a matriz A (5x5) constituda por valores aleatrios. Encontre o mximo valor em cada coluna, em cada linha e o mximo total. Encontre os ndices correspondentes aos elementos com valores superiores a 0.3. 5. Escreva um comando (numa s linha) que permita determinar numa matriz qualquer A (16x16), constituda por valores aleatrios, quantos valores so superiores a 0.25. 6. Escreva um comando que permita calcular a mdia da quarta linha de uma matriz qualquer (n x m), em que n superior a 4. 7. Crie, com um comando apenas, uma matriz (4x4) em que os elementos da diagonal so todos iguais a 13 e os restantes iguais a 2. Calcule a sua inversa utilizando dois comandos diferentes. Determine a sua triangular superior e a inferior.
Curso de introduo ao MATLAB 19
4 GRFICOS
Para exemplificar alguns comandos grficos do MATLAB vamos utilizar o ficheiro de dados exemplo_vel.mat: load demo_graphs.mat Este ficheiro de dados de MATLAB contm seis variveis: quatro matrizes bidimensionais com dados de velocidade mdia (V1 e V2) de um escoamento em superfcie livre e da respectiva varincia (var1 e var2); e dois vectores correspondentes s coordenadas espaciais onde os valores de velocidade foram medidos (x e z).
Comando plot. O comando mais bsico de manipulao grfica que o MATLAB contm o comando plot. Permite criar grficos bidimensionais. Vamos criar um grfico onde figure a evoluo da velocidade V1 ao longo do canal (variao em x) para a quinta posio na vertical (em z, segundo ndice nas matrizes de dados de velocidade igual a 5). figure(10) plot(v_test_1(:,5),x)
Curso de introduo ao MATLAB 20
Para manter na figura criada esta imagem e sobrepor outros dados dever utilizar- se o comando hold. Vamos introduzir na mesma figura os dados relativos a v_test_2. figure(10) hold plot(v_test_2(:,5),x)
O comando close permite fechar as janelas abertas. Para se fechar a figura 10: close(10); close all fecha todas as figuras abertas no desktop; close apenas fecha a figura activa. De seguida apresenta-se o exemplo de um cdigo que permite obter na mesma figura as duas funes de velocidade apresentadas anteriormente, distinguidas com cores diferentes, com legendas, etc., e que permite criar um ficheiro do tipo jpeg com o resultado final. % Exemplo de figuras
load demo_graphs.mat
figure(20) hold % imagem fica fixa
% criar linhas com cor, simbologia, etc. pr-definidas plot(x,v_test_1(:,5),'r','linewidth',2); plot(x,v_test_2(:,5),'b-x','linewidth',1,'markersize',8);
% definio dos eixos set(gca,'xtick',0:0.02:0.14,'Fontsize',11,'Fontname','Times'); set(gca,'ytick',0:0.05:0.35,'Fontsize',11,'Fontname','Times');
Curso de introduo ao MATLAB 21
% definir os limites dos eixos do grfico axis([0 0.12 0 0.35]);
% criao das legendas num grfico bidimensional definido o tipo e tamanho % de letra pretendido xlabel('x (m)','Fontsize',14,'Fontname','Times'); ylabel('velocidade (m/s)','Fontsize',14,'Fontname','Times');
% criar grelha grid on
% colocar legenda, o argumento indica a posio da legenda legend('v1','v2',3)
% definio da posio e do tamanho da figura set(gcf,'PaperPosition',[0.133858 4.19575 8 3.30141])
% imprimir para ficheiro jpeg print -djpeg90 velocidades
% fechar figura close(20) Este cdigo, tal como est, pode ser escrito e gravado como um script do tipo m-file. O nome deste script poder ser evocado no ambiente MATLAB e os comandos no seu interior sero executados sequencialmente. Note-se que o carcter % permite a insero de comentrios no cdigo de MATLAB. A ttulo de exemplo mostra-se como se poderia criar o mesmo grfico em formato logartmico. figure(30)
loglog(x,v_test_1(5,:,5),'r','linewidth',2); hold loglog(x,v_test_2(5,:,5),'b-x','linewidth',1,'markersize',8);
Curso de introduo ao MATLAB 22
Podemos agora separar os dados em grficos diferentes mas na mesma figura, juntando os dados de varincia: utilizao do comando subplot. figure(40)
subplot(221), hold, grid, plot(x,v_test_1(:,5),'k','linewidth',2); set(gca,'xtick',0:0.02:0.14,'Fontsize',11,'Fontname','Times'); set(gca,'ytick',0:0.05:0.35,'Fontsize',11,'Fontname','Times'); axis([0 0.12 0 0.35]); xlabel('x (m)','Fontsize',11,'Fontname','Times'); ylabel('velocidade (m/s)','Fontsize',11,'Fontname','Times'); % inserir ttulo da figura title('V1','Fontsize',14,'Fontname','Times');
O comando cla permite apagar o contedo de uma figura conservando a sua formatao.
Grficos tridimensionais Existem vrios comandos que permitem a criao de grficos tridimensionais, entre eles contour, image, surf, quiver, e plot3. Os dados tridimensionais so geralmente constitudos por duas variveis unidimensionais definidoras da moldura bidimensional (no presente caos x e y) e por uma terceira varivel que fornece a informao correspondente elevao (no caso do presente exemplo os valores de velocidade e varincia). Vamos criar exemplos de aplicao dos comandos contour e quiver. contour: este comando produz um grfico de linhas de nvel com base nas coordenadas da moldura e nos dados de base. Exemplifica-se uma utilizao simples do comando contour: figure(50)
contour(x,z,v_test_1') % note-se que a matriz de dados foi transposta % para que o comprimento de x correspondesse ao % seu nmero de colunas Curso de introduo ao MATLAB 24
O comando contour ignorou, na construo das linhas de nvel, os valores na matriz de dados identificados como NaN. O nmero de linhas de nvel e a equidistncia entre estas foram criados automaticamente em funo dos valores limites dos dados; o utilizador pode definir estes quer dando o nmero de classes de curvas de nvel quer fornecendo os seus limites mximo, mnimo e uma equidistncia. figure(60), hold, grid contour(x,z,v_test_1',[0.1:0.01:0.3]) set(gca,'xtick',0:0.2:0.12,'Fontsize',13,'FontName','Times'); set(gca,'ytick',0:0.02:0.1,'Fontsize',11,'Fontname','Times'); xlabel('x (m)','Fontsize',14,'Fontname','Times'); ylabel('z (m)','Fontsize',14,'Fontname','Times'); title('v test 1, (m/s)') colormap('winter') % podemos definir vrias paletes de cores colorbar % introduz a escala de classes das curvas de nvel
Curso de introduo ao MATLAB 25
contourf: uma extenso do comando contour, em que o espao entre curvas de nvel preenchido a cores. Mostramos de seguida um exemplo de imagem onde se combinam os comandos contour e contourf. figure(70), hold % nesta linha de comando mostra-se como incluir operaes no interior do % cdigo definidor de grficos de forma a generalizar a sua aplicao contourf(x,z,v_test_1',[min(min(v_test_2)):... (max(max(v_test_2))-min(min(v_test_2)))/15:max(max(v_test_2))]) % a utilizao de "..." permite continuar na linha seguite [C,H]=contour(x,z,v_test_1',10,'--r'); % 10 curvas de nvel so definidas % C a matriz que define o mapa das curvas de nvel % H o handle do grfico contour; serve para evocar este grfico clabel(C,H) set(gca,'xtick',0:0.025:0.12,'Fontsize',13,'FontName','Times'); set(gca,'ytick',0:0.02:0.1,'Fontsize',11,'Fontname','Times'); xlabel('x (m)','Fontsize',14,'Fontname','Times'); ylabel('z (m)','Fontsize',14,'Fontname','Times'); title('v test 1, (m/s)') colormap('summer'), colorbar % o uso de vrgulas permite colocar dois % comandos na mesma linha shading flat % permite eliminar os contornos das linhas de nvel set(gca,'XGrid','on') % activa apenas as linhas de grelha verticais set(gcf,'PaperPosition',[0.133858 4.19575 6 4]) print -djpeg90 contour_plot, close(70)
Curso de introduo ao MATLAB 26
Combinao de grficos bidimensionais e tridimensionais na mesma figura utilizando o subplot figure(80) subplot(211), hold contourf(x,z,v_test_1',[min(min(v_test_2)):... (max(max(v_test_2))-min(min(v_test_2)))/15:max(max(v_test_2))]) [C,H]=contour(x,z,v_test_1',10,'--b'); clabel(C,H) set(gca,'xtick',0:0.025:0.12,'Fontsize',13,'FontName','Times'); set(gca,'ytick',0:0.02:0.1,'Fontsize',11,'Fontname','Times'); xlabel('x (m)','Fontsize',14,'Fontname','Times'); ylabel('z (m)','Fontsize',14,'Fontname','Times'); title('contorno, (m/s)') colormap('autumn'), colorbar shading flat set(gca,'XGrid','on') gtext('NaN','Fontsize',13,'FontName','Times'); % permite colocar texto % em qualquer parte da figura
subplot(223), hold, grid % definem-se apenas alguns dos perfis verticais a representar plot(v_test_1([10 20 30 40 50],:),z,'k','linewidth',2); set(gca,'xtick',0:0.1:0.5,'Fontsize',11,'Fontname','Times'); set(gca,'ytick',0:0.02:0.1,'Fontsize',11,'Fontname','Times'); axis([0 0.5 0 0.1]); xlabel('vel_t_e_s_t_,_1 (m/s)','Fontsize',11,'Fontname','Times'); ylabel('z (m)','Fontsize',11,'Fontname','Times'); title('perfis de velocidade','Fontsize',14,'Fontname','Times');
Exerccios: 1. No mesmo grfico represente um perfil vertical de velocidade para cada teste e na mesma posio longitudinal (em x) com diferentes simbologias. Faa uma legenda da simbologia e coloque manualmente uma indicao junto a cada perfil com o nome do teste correspondente. 2. Considere que as seguintes variveis V=v_test_1 e W=0.1*v_test_2. Faa um grfico tridimensional das linhas de nvel da intensidade do vector definido por r no campo definido pelas coordenadas dos vectores x e z. 3. No grfico anterior, sobreponha o campo vectorial definido pelo vector utilizando para tal o comando quiver. No represente todos os vectores, apenas alguns seleccionados de forma a no sobrecarregar a imagem.