Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Matlab Num Instante1 2, Manuais, Projetos, Pesquisas de Informática

Livro de aprendizagem rápida do funcionamento do MatLab

Tipologia: Manuais, Projetos, Pesquisas

2011

Compartilhado em 03/10/2011

micaela-santos-12
micaela-santos-12 🇵🇹

1 documento

1 / 28

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Matlab num Instante
Ver s ˜ao 1.2
Jos´eManuelNetoVieira
Departamento de Electr´onica e Telecomunica¸oes
da
Universidade de Aveiro
12 de Setembro de 2002
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Pré-visualização parcial do texto

Baixe Matlab Num Instante1 2 e outras Manuais, Projetos, Pesquisas em PDF para Informática, somente na Docsity!

Vers˜ao 1.

Jos´e Manuel Neto Vieira

Departamento de Electr´onica e Telecomunica¸c˜oes

da

Universidade de Aveiro

12 de Setembro de 2002

Conte´udo

Agradecimentos O autor agradece aos seus colegas Prof. Ana Maria Tom´e, Prof. Ant´onio Joaquim Teixeira, Prof. Paulo Jorge Ferreira e Prof. Jos´e Lu´ıs Azevedo, pelas sugest˜oes e correc¸c˜oes realizadas neste documento

°c 2002, Jos´e Manuel Neto Vieira ([email protected]) http://www.ieeta.pt/˜vieira/MatlabNumInstante.pdf

O “Matlab num Instante” pode ser distribu´ıdo sujeito `as seguintes restri¸c˜oes:

  • O seu conte´udo n˜ao pode ser alterado.
  • N˜ao pode ser utilizado (no todo ou em parte) na venda ou promo¸c˜ao de qualquer produto ou documento.

Matlab num Instante

Introdu¸c˜ao

O que ´e o Matlab?

O Matlab ´e um sistema para c´alculo cient´ıfico que proporciona um ambiente de f´acil utiliza¸c˜ao com uma nota¸c˜ao intuitiva mas poderosa. Permite a realiza¸c˜ao de algoritmos num´ericos sobre matrizes com o m´ınimo de programa¸c˜ao. Al´em disso, no ambiente Matlab ´e poss´ıvel a cria¸c˜ao e manipula¸c˜ao de matrizes sem a necessidade de dimensionamento pr´evio e a manipula¸c˜ao das vari´aveis pode ser realizada de forma interactiva. O termo“Matlab” tem origem na conjuga¸c˜ao dos termos“MATrix” e“LABoratory”. Este documento pretende ser apenas uma introdu¸c˜ao muito breve ao Matlab e permitir a um utilizador n˜ao“iniciado” come¸car a dominar os aspectos mais b´asicos em pouco tempo. A leitura deste documento deve ser realizada ao lado de um PC com o Matlab, para o utilizador poder testar os exemplos e fazer os diferentes exerc´ıcios.

Ajuda

O comando HELP

Para esclarecer a maior parte das d´uvidas acerca da utiliza¸c˜ao de uma dada fun¸c˜ao do Matlab o comando help ´e de grande utilidade. Se se pretender, por exemplo, informa¸c˜ao sobre a fun¸c˜ao sin, basta fazer

Àhelp sin

obtendo-se a seguinte descri¸c˜ao

SIN Sine. SIN(X) is the sine of the elements of X.

O Matlab possui todas as fun¸c˜oes organizadas em grupos e a pr´opria estrutura de direct´orios onde o Matlab ´e armazenado em disco reflecte esse facto. Por exemplo, todas as fun¸c˜oes de ´algebra linear est˜ao armazenadas no direct´orio matfun. Para obter uma lista completa deste tipo de fun¸c˜oes basta fazer

Àhelp matfun

Como n˜ao ´e f´acil decorar os nomes de todas as categorias de fun¸c˜oes, existe uma janela de ajuda mais organizada, bastando para tal escrever o comando

Àhelpwin

O comando LOOKFOR

Quando se pretende encontrar uma fun¸c˜ao para resolver um problema, mas desconhece-se se existir´a alguma adequada no Matlab, o comando lookfor permite pesquisar as primeiras linhas do“help” de todas fun¸c˜oes da instala¸c˜ao do Matlab. Esta pesquisa ´e adequada para resolver a maior parte das situa¸c˜oes uma vez que a primeira linha do“help” de uma fun¸c˜ao cont´em sempre uma descri¸c˜ao sum´aria da sua funcionalidade. O seguinte exemplo procura pela palavra“inverse”.

Àlookfor inverse Se se pretender que a fun¸c˜ao lookfor pesquise todas as linhas do“help”, pode-se utilizar a op¸c˜ao -all, tal como o seguinte exemplo ilustra.

Àlookfor -all inverse

´Indices

O elemento da linha i e da coluna j de uma matriz A ´e designado por A (i, j). Por exemplo o elemento da linha 1 e coluna 3 da matriz A ´e designado por A (1, 3). Em nota¸c˜ao Matlab, para obter o elemento A (1, 3) definida anteriormente, pode-se escrever ÀA(1,3) e obt´em-se ans= 3 Para alterar o valor do elemento A (1, 3) para 7 basta fazer ÀA(1,3)= 7 Os ´ındices das matrizes s˜ao n´umeros inteiros positivos pertencentes ao intervalo [1... N] em que N depende da mem´oria dispon´ıvel, e podem ser vectores declarados anteriormente. Se pretendermos por exemplo, extrair a segunda linha da matriz A podemos fazer Àv= A(2,[1 2 3]) v= 4 5 6 ou declarando primeiro um vector para os ´ındices das colunas Àk= [1 2 3] Àv= A(2,k) v= 4 5 6

O operador “:”

A cria¸c˜ao de vectores elemento a elemento ´e bastante morosa e para matrizes de grandes dimens˜oes quase irrealiz´avel. O Matlab permite gerar sequˆencias de n´umeros de forma r´apida se fizermos uso do operador“:”. Se quisermos gerar o vector a = [1, 2 , 3 ,... , 10] podemos fazer Àa= 1: A nota¸c˜ao geral para o operador “:” ´e a seguinte

N´umero inical : incremento : N´umero final

e permite a gera¸c˜ao de sequˆencias de n´umeros inteiros como no exemplo anterior ou mesmo de n´umeros reais. Eis alguns exemplos: Àe= 0:pi/20:2*pi Àf= 10:-1:- O operador“:” pode ser utilizado na gera¸c˜ao de vectores de ´ındices obtendo-se uma nota¸c˜ao muito compacta. Se quisermos obter as colunas ´ımpares da matriz A podemos fazer ÀB=A(1:2,1:2:3) No caso anterior s˜ao indexadas todas as linhas da matriz. Para simplificar a nota¸c˜ao, quando n˜ao se conhece exactamente o n´umero de linhas de uma matriz, pode-se utilizar a nota¸c˜ao ÀB=A(:,1:2:3)

Exerc´ıcio 1 Gere uma sequˆencia de n´umeros pares com in´ıcio em 4 e a terminar no n´umero 100.

Exerc´ıcio 2 Gere uma sequˆencia num´erica decrescente com in´ıcio em 5 e a terminar em -5.

Exerc´ıcio 3 Gere uma sequˆencia num´erica com 100 elementos pertencentes ao intervalo [0... 1].

Exerc´ıcio 4 Considere uma matriz A com 20 linhas e 30 colunas. Construa um comando que permita extrair para uma matriz B uma sub-matriz de A constitu´ıda pelas linhas de 10 a 15 e as colunas de 9 a 12.

Exerc´ıcio 5 Gere uma sequˆencia de n´umeros m´ultiplos de 3 compreendidos entre 100 e 132, dispostos num vector por ordem decrescente.

Exerc´ıcio 6 Gere uma sequˆencia a come¸car em π e a acabar em −π com um passo de −π/ 15.

Express˜oes

O Matlab permite a constru¸c˜ao de express˜oes matem´aticas sem qualquer declara¸c˜ao do formato num´erico ou dimens˜ao das matrizes. Existem quatro constituintes b´asicos nas express˜oes do Mat- lab:

  • Vari´aveis
  • N´umeros
  • Operadores
  • Fun¸c˜oes

Vari´aveis

Todas as vari´aveis do Matlab s˜ao do tipo matriz e a sua cria¸c˜ao ´e autom´atica. Por exemplo, o comando

ÀCusto total= 1000

resulta na cria¸c˜ao em mem´oria de uma matriz de 1 × 1 com o valor 1000. O Matlab distingue as letras mai´usculas das min´usculas nos nomes das vari´aveis e s´o toma em considera¸c˜ao os primeiros 31 caracteres. Para visualizar o valor de uma vari´avel basta escrever o seu nome. Existe uma vari´avel especial que ´e utilizada pelo Matlab quando n˜ao se atribui o resultado de uma express˜ao a qualquer vari´avel. Esta vari´avel designa-se por“ans” (do termo“answer”, resposta) e pode ser utilizada numa sess˜ao interactiva para continua¸c˜ao dos c´alculos, tal como o exemplo seguinte demonstra

À2*sin(2) ans=

Àans/ ans =

N´umeros

O Matlab utiliza uma nota¸c˜ao standard para a representa¸c˜ao dos n´umeros, admitindo nota¸c˜ao cient´ıfica e n´umeros complexos. A unidade imagin´aria j = sqrt(−1) ´e representada no Matlab pelas letras i ou j. Como estas letras podem ser utilizadas no nome de outras vari´aveis conv´em ter o cuidado de confirmar o seu valor antes de as usar. A seguir ilustram-se alguns exemplos:

1+i 10j 3e 10e6j 10e-2 -2.3e-

Express˜oes

Na constru¸c˜ao de express˜oes podemos utilizar operadores, fun¸c˜oes e vari´aveis. Eis alguns exemplos:

Àr= (pi+1)/(pi-1) r =

Àa= abs(4+3i) a= 5 Àt= angle(4+3i) t=

Àa= 0/ Warning: Divide by zero. a = NaN Àx= sqrt(-2) x = 0 + 1.4142i Àx= log(-1) x= 0 + 3.1416i

Polin´omios

Existe no ambiente Matlab um conjunto de fun¸c˜oes para manipular polin´omios. A defini¸c˜ao de polin´omios ´e feita criando vectores cujos elementos s˜ao os coeficientes do polin´omio ordenados por potˆencia decrescente tal como o exemplo seguinte ilustra. Para representar o polin´omio p(x) = x^2 − 3 x + 2, cria-se o vector p=[1 -3 2]; e para calcular as suas ra´ızes existe a fun¸c˜ao r= roots(p) r= 2 1 Para obter os coeficientes de um polin´omio a partir das ra´ızes pode-se utilizar a fun¸c˜ao poly(r) ans= 1 -3 2 Tamb´em ´e poss´ıvel calcular o valor de um polin´omio num conjunto de pontos utilizando a fun¸c˜ao polyval tal como o exemplo ilustra polyval(p,r) ans= 0 0 e que, como se pode ver, calculou o valor do polin´omio nos seus zeros. O produto entre dois polin´omios ´e obtido atrav´es da fun¸c˜ao conv (convolu¸c˜ao). O exemplo seguinte ilustra o produto entre os polin´omios x^2 + 1 e x^3 + x − 1 dado por x^5 + 2x^3 − x^2 + x − 1 p1= [1 0 1] p2= [1 0 1 -1] conv(p1,p2) ans= 1 0 2 -1 1 -

Exerc´ıcio 7 Calcule o seno, o coseno, a tangente, a ra´ız quadrada e a ra´ız c´ubica de π/ 2.

Exerc´ıcio 8 Calcule o logaritmo e a ra´ız quadrada de -1.

Exerc´ıcio 9 Calcule o valor da fun¸c˜ao ex^ em 100 pontos do intervalo [− 1... 1].

Exerc´ıcio 10 Calcule o valor da fun¸c˜ao sin(x + pi/10) ∗ cos(x) em 100 pontos do intevalo [−π... π].

Exerc´ıcio 11 Calcule o produto dos polin´omios x^6 + 10 e x^2 − 2 x + 3.

Exerc´ıcio 12 Obtenha o polin´omio cujas ra´ızes s˜ao os n´umeros inteiros 1, 2 e 3.

Exerc´ıcio 13 Calcule os zeros do seguinte polin´omio p(x) = x^3 + 4x^2 − 3 x + 1. Calcule o valor do polin´omio em 100 pontos da forma x = ejω^ com ω ∈ [0... 2 π].

Exerc´ıcio 14 Calcule o valor do m´odulo do polin´omio p(x) = 1/

x^2 + 1

em 100 pontos da forma x = ejω^ com ω ∈ [0... 2 π].

Manipula¸c˜ao de matrizes

Esta sec¸c˜ao introduz alguns conceitos elementares sobre a cria¸c˜ao e manipula¸c˜ao de matrizes.

Manipula¸c˜ao de matrizes

As cinco fun¸c˜oes seguintes permitem a cria¸c˜ao de algumas matrizes elementares:

  • zeros Cria uma matriz preenchida com zeros
  • ones Cria uma matriz preenchida com uns
  • eye Cria a matriz identidade
  • rand Cria uma matriz de n´umeros aleat´orios com distribui¸c˜ao uniforme [0... 1]
  • randn Cria uma matriz de n´umeros aleat´orios com distribui¸c˜ao normal

Vejamos alguns exemplo de utiliza¸c˜ao destas fun¸c˜oes: ÀZ= zeros(2,5) Z = 0 0 0 0 0 0 0 0 0 0 Àa= ones(2,3)* a = 3 3 3 3 3 3 Àn= round(3rand(1,10)) n = 3 1 2 1 3 2 1 0 2 1 ÀA= randn(1,3)+jrandn(1,3) A = -0.43256 + 0.28768i -1.6656 - 1.1465i 0.12533 + 1.1909i

Remo¸c˜ao de colunas e linhas

E poss´^ ´ ıvel remover de uma dada matriz qualquer conjunto de linhas e colunas. Para tal, basta atribuir o valor de uma matriz vazia definida por“[]” `as linhas e colunas que se pretende remover. No exemplo que se segue, elimina-se a 2acoluna da matriz A.

Àa= [1 2; 3 4]; ÀA= [a a; a a] A = 1 2 1 2 3 4 3 4 1 2 1 2 3 4 3 4 ÀA(:,2)= [] A = 1 1 2 3 3 4 1 1 2 3 3 4 A remo¸c˜ao de um elemento isolado de uma matriz n˜ao ´e poss´ıvel uma vez que esta deixaria de respeitar as propriedades de uma matriz

ÀA(1,2)=[] ??? Indexed empty matrix assignment is not allowed.

Exerc´ıcio 22 Gere uma matriz com dimens˜ao 8 × 8 constitu´ıda por n´umeros aleat´orios obtidos com a fun¸c˜ao randn, e obtenha uma sub-matriz constitu´ıda pelas colunas de ´ındice ´ımpar utilizando a t´ecnica de remo¸c˜ao de colunas.

Exerc´ıcio 23 Resolva o exerc´ıcio anterior utilizando uma solu¸c˜ao sem “[]”.

Exerc´ıcio 24 Gere um vector com todos os n´umeros inteiros de 1 a 101 e elinine os elementos pares.

Gr´aficos

A gera¸c˜ao de gr´aficos no Matlab representa um dos seus aspectos mais ´uteis. Nesta sec¸c˜ao ser˜ao apresentados alguns dos comandos mais importantes para a cria¸c˜ao de gr´aficos a partir dos valores armazenados em matrizes.

Cria¸c˜ao de gr´aficos

A fun¸c˜ao plot ´e a mais utilizada no Matlab para gerar gr´aficos variando o seu comportamento con- soante os parˆametros de entrada. A sua forma mais simples consiste em passar como entrada apenas um vector:

Àplot(y)

O gr´afico gerado apresenta em abcissas os ´ındices i dos elementos do vector e em ordenadas o valor de cada um dos elementos do vector. Tamb´em ´e poss´ıvel utilizar um segundo vector para o eixo das abcissas tal como no exemplo seguinte:

Àw=0:pi/100:2*pi; Àx= sin(w); Àplot(w,x)

-1 0 1 2 3 4 5 6 7

-0.

-0.

-0.

-0.

0

1

Figura 1:

-1 0 1 2 3 4 5 6 7

-0.

-0.

-0.

-0.

0

(^1) sin cossin*cos

Figura 2:

A fun¸c˜ao plot admite a representa¸c˜ao simultˆanea de v´arias curvas, acrescentando mais argumentos de entrada, devendo os vectores possuir o mesmo n´umero de amostras. Vejamos um exemplo:

Àw=0:pi/100:2pi; Àx1= sin(w); Àx2= sin(w+pi/2); Àx3= x1.x2; Àplot(w,x1,w,x2,w,x3) Àlegend(’sin’,’cos’,’asin*cos’)

A fun¸c˜ao plot permite escolher o tipo de linha, a cor, etc; e existem ainda fun¸c˜oes para por exemplo, acrescentar etiquetas aos eixos, criar uma grelha, etc, (ver o “help” da fun¸c˜ao plot para referˆencia). Destas fun¸c˜oes destacam-se as seguintes:

-1 -1 -0.5 0 0.5 1

-0.

-0.

-0.

-0.

0

1

Exerc´ıcio 34 Visualize em gr´afico a parte real e a parte imagin´aria da fun¸c˜ao ejω, para valores de ω ∈ [0... 2 π] e passo de π/ 10.

Visualiza¸c˜ao de fun¸c˜oes de duas vari´aveis

Para visualizar uma fun¸c˜ao de duas vari´aveis da forma z = f (x, y) o Matlab possui a fun¸c˜ao mesh. Para utilizar esta fun¸c˜ao ´e necess´ario gerar duas matrizes X e Y em que a primeira possui colunas idˆenticas e a segunda linhas idˆenticas, com os valores de x e y em que se pretende calcular a fun¸c˜ao f. A fun¸c˜ao meshgrid gera as matrizes X e Y a partir dos valores iniciais, finais e respectivo incremento. O seguinte exemplo ilustra a forma de gerar um gr´afico 3D da fun¸c˜ao sin (r) /r, com r =

p x^2 + y^2. À[X,Y] = meshgrid(-8:.5:8); ÀR = sqrt(X.^2 + Y.^2) + eps; ÀZ = sin(R)./R; Àmesh(X,Y,Z)

O ambiente Matlab

A janela de comando do Matlab possui algumas potencialidades na apresenta¸c˜ao dos resultados, gest˜ao da vari´aveis, formata¸c˜ao num´erica dos resultados, edi¸c˜ao da linha de comandos, etc. Nesta sec¸c˜ao vamos descrever algumas das suas potencialidades.

Gest˜ao de vari´aveis

Todas as vari´aveis do Matlab s˜ao guardadas na “´area de trabalho” (“workspace”). Para visualizar as vari´aveis que est˜ao na “´area de trabalho” num dado momento podemos utilizar os comados who e

whos. O primeiro apresenta no ecran uma lista abreviada das vari´aveis indicando apenas o seu nome, enquanto que o segundo apresenta tamb´em o espa¸co ocupado em mem´oria, dimens˜ao, etc. Para apagar vari´aveis da mem´oria pode-se utilizar o comando clear. Para apagar por exemplo as vari´aveis x e b faz-se

Àclear x b

O comando clear sem argumentos apaga todas as vari´aveis armazenadas em mem´oria.

O comando format

O comando format controla a forma como os valores num´ericos s˜ao apresentados. Este comando controla apenas a forma com os valores s˜ao apresentados e n˜ao a forma como estes s˜ao representados internamente. Os seguintes exemplos ilustram os formatos mais comuns.

Àa= [1/5 pi] format short 0.2000 3. format short e 2.0000e-001 3.1416e+ format long 0.20000000000000 3. format long e 2.000000000000000e-001 3.141592653589793e+ Uma op¸c˜ao ´util do comando format ´e Àformat compact

que elimina as linhas em branco extra introduzidas entre a apresenta¸c˜ao das vari´aveis permitindo uma apresenta¸c˜ao dos resultados mais compacta.

Supress˜ao de resultados

Quando as matrizes s˜ao de grande dimens˜ao torna-se bastante inc´omodo para o utilizador a apresen- ta¸c˜ao do resultado no ecran de todos os c´alculos efectuados. Para evitar a apresenta¸c˜ao dos resultados basta colocar no final da linha de comando um ponto e v´ırgula tal como o seguinte exemplo demonstra:

Àa= [1/5 pi];

Edi¸c˜ao de comandos

A janela de comando do Matlab permite a edi¸c˜ao de comandos escritos anteriormente. Se por exemplo se entrou o seguinte comando:

Àa= sqrt(1:10] | Improper function reference. A ’’,’’ or ’’)’’ is expected.

o Matlab devolve, como se pode constatar, um erro de sintaxe. Para alterar a linha e substituir o parˆentesis recto por um curvo, basta carregar na tecla ↑ que a linha aparecer´a de novo. Com as teclas ←− e −→ desloca-se o cursor ao longo da linha. O Matlab guarda uma lista de todos os comandos introduzidos numa sess˜ao. Se quiser obter um comando introduzido anteriormente, basta escrever os primeiros caracteres desse comando e carregar em ↑ para que o comando apare¸ca. A lista seguinte mostra as teclas de edi¸c˜ao dispon´ıveis

Exerc´ıcio 36 Ap´os ter criado as vari´aveis A e b tal como ´e indicado no texto, execute o comando whos e compare a mem´oria ocupada por cada uma delas. Visualize a vari´avel b nos seguintes formatos num´ericos: long, short e e long e. Finalmente, apague as vari´aveis e verifique com o comando whos.

Ficheiros de comandos

Quando se pretende executar repetidamente um conjunto de comandos muito longo, ter de os escrever torna-se muito moroso. Para resolver este problema, ´e poss´ıvel colocar num ficheiro de texto com a extens˜ao “.m” o conjunto de comandos que se pretende executar. Para executar os comandos guardados no ficheiro, basta escrever na janela de comando do Matlab o nome do ficheiro sem a extens˜ao. Para criar e come¸car a editar um ficheiro basta escrever o comando edit, para que arranque um pequeno editor de texto com “debugging” integrado.

T´opicos sobre matrizes

Nesta sec¸c˜ao iremos descobrir mais algumas das possibilidades que o Matlab oferece para operar com matrizes.

Algebra linear^ ´

E poss´^ ´ ıvel resolver com o Matlab diversos problemas da ´algebra linear, sendo f´acil realizar c´alculos elaborados com matrizes, como por exemplo, o produto de duas matrizes, invers˜ao de matrizes, c´alculo dos valores pr´oprios, etc. Dadas as matrizes A e B, por exemplo, a sua soma ´e calculada da seguinte forma:

ÀA= rand(4); ÀB= rand(4); ÀC= A+B;

Para calcular o produto entre as duas matrizes anteriores basta fazer

ÀC= A*B

que efectua produtos internos entre as linhas de A e as colunas de B. Se quisermos calcular o produto interno entre dois vectores linha x e y

Àx= 1: Ày= 3: Àx*y’ ans= 50

enquanto que o produto externo entre estes vectores ´e dado por

À A = x’*y A = 3 4 5 6 6 8 10 12 9 12 15 18 12 16 20 24 O determinante da matriz A pode ser calculado fazendo apenas Àd= det(A)

e se quisermos calcular os valores pr´oprios da matriz A, pode-se utilizar o comando

Àeig(A)

e a inversa da matriz A obt´em-se fazendo

Àinv(A)

E igualmente poss´^ ´ ıvel calcular a n potˆencia de uma matriz quadrada fazendo simplesmente

ÀA^n

e se se pretender calcular o polin´omio caracter´ıstico de uma matriz temos

Àp= poly(A) p= 1 2.1 1.1 -5 2

o que indica que o polin´omio caracter´ıstico

det (A − λI)

´e

λ^4 + 2. 1 λ^3 + 1. 1 λ^2 − 5 λ^1 + 2

Exerc´ıcio 37 Construa um vector linha x constitu´ıdo pelos n´umeros inteiros pares pertencentes ao intervalo [1... 8]. Calcule os valores pr´oprios do produto externo de x com x.

Exerc´ıcio 38 Resolva o seguinte sistema de equa¸c˜oes com o Matlab   

x + 2y − z = 10 2 x − 7 y = − 1 −x + 3y − 4 z = 0

Verifique com o Matlab a solu¸c˜ao obtida.

Exerc´ıcio 39 Crie uma matriz quadrada A com a fun¸c˜ao rand e calacule os seus valores pr´oprios. Verifique que A e os seus valores pr´oprios satisfazem a equa¸c˜ao caracter´ıstica de A. Nota: utilize a fun¸c˜ao polyval.

Exerc´ıcio 40 Verifique que fazendo o produto externo entre um vector coluna v e um vector linha preenchido com um n´umero n de uns, se obt´em uma matriz com n colunas iguais a v.

Exerc´ıcio 41 Calcule os valores pr´oprios da matriz sim´etrica B do exerc´ıcio 39 e verifique que pelo menos um deles ´e superior `a unidade. Calcule A^20 e verifique que os elementos da matriz resul- tante aumentaram de valor. Calcule agora

¡ A

20

e verifique que os elementos da matriz resultante diminuiram de amplitude e que os valores pr´oprios s˜ao todos inferiores `a unidade.

Opera¸c˜oes elemento-a-elemento

Em muitas situa¸c˜oes pretende-se efectuar opera¸c˜oes aritm´eticas com matrizes aplicando a opera¸c˜ao entre os elementos das matrizes. Para transformar um operador matricial na forma elemento-a- elemento, basta acrescentar o car´acter “.” antes do operador. Note-se que no caso da adi¸c˜ao “+” e da subtra¸c˜ao “-” n˜ao existe qualquer diferen¸ca para os operadores “.+” e “.-” respectivamente. O exemplo seguinte ilustra o produto elemento-a-elemento de duas matrizes com a mesma di- mens˜ao:

ÀA= [1 2 3; 4 5 6] ÀB= [2 3 4; 9 8 7] ÀA.*B ans= 2 6 12 36 40 42 Vejamos agora uma lista de operadores elemento-a-elemento

  • Adi¸c~ao
  • Subtra¸c~ao .* Multiplica¸c~ao elemento-a-elemento ./ Divis~ao elemento-a-elemento .^ Potencia¸c~ao elemento-a-elemento .’ Transposta n~ao conjugada