Tutorial de Matlab® - cin.ufpe.brcz/files/MatlabTut.pdf · álgebra linear. Este tutorial o ... e...

12
Tutorial de Matlab® Francesco Franco Matlab® é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada para parecer como a notação usada na álgebra linear. Este tutorial o guiará nos primeiros passos para o uso de Matlab®. Abra o programa. A janela principal é subdividida em três janelas. A janela Command é aquela na qual você insere seus comandos (depois de um >>, que é usado para denotar uma linha de comando). I Vetores: Quase todos os comandos básicos de Matlab® giram em torno do uso de vetores. Para simplificar a criação de vetores, você pode definir um vetor ao especificar a primeira entrada, um incremento, e a última entrada. Matlab® automaticamente descobrirá de quantas entradas você precisa e quais os valores. Por exemplo, para criar um vetor cujas entradas sejam 1, 3, 5 e 7, digite o seguinte: Matlab® continua a rastrear o último resultado. No exemplo anterior, a variável "ans" é criada. Para ver a transposição do resultado anterior, insira o seguinte (' é o operador de transposição): Para ser capaz de rastrear os vetores que cria, você pode dar nome a eles. Para criar um vetor v de fileira:

Transcript of Tutorial de Matlab® - cin.ufpe.brcz/files/MatlabTut.pdf · álgebra linear. Este tutorial o ... e...

Tutorial de Matlab®Francesco Franco

Matlab® é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar amanipulação deles. A interface segue uma linguagem que é projetada para parecer como a notação usada naálgebra linear.Este tutorial o guiará nos primeiros passos para o uso de Matlab®. Abra o programa. A janela principal ésubdividida em três janelas. A janela Command é aquela na qual você insere seus comandos (depois de um>>, que é usado para denotar uma linha de comando).

I

Vetores: Quase todos os comandos básicos de Matlab® giram em torno do uso de vetores. Para simplificar acriação de vetores, você pode definir um vetor ao especificar a primeira entrada, um incremento, e a últimaentrada. Matlab® automaticamente descobrirá de quantas entradas você precisa e quais os valores. Porexemplo, para criar um vetor cujas entradas sejam 1, 3, 5 e 7, digite o seguinte:

Matlab® continua a rastrear o último resultado. No exemplo anterior, a variável "ans" é criada. Para ver atransposição do resultado anterior, insira o seguinte (' é o operador de transposição):

Para ser capaz de rastrear os vetores que cria, você pode dar nome a eles. Para criar um vetor v de fileira:

Se você adicionar um ponto-e-vírgula (;) no final da linha de comando, o resultado não será exibido.Matlab® permitirá que você procure por partes específicas do vetor, para assim trabalhar com os 3 primeiroselementos de v:

Depois que você dominar a notação, estará livre para realizar outras operações:

A definição de uma matriz é semelhante à definição de um vetor. Para definir uma matriz, você pode tratá-lacomo uma coluna de vetores de fileira (observe que os espaços são obrigatórios!):

Você também pode tratá-la como uma fileira de coluna de vetores:

Agora você tem várias variáveis definidas. Se você perder o controle de quais variáveis foram definidas, ocomando whos lhe indicará todas as variáveis presentes em sua área de trabalho.

É claro que você pode multiplicar matrizes e vetores (tenha o cuidado de deixá-las todas do tamanhocorreto):

Você pode trabalhar com partes diferentes de uma matriz, do mesmo modo que com vetores, para assimtrabalhar com a sub-matriz A(1:2:2:3):

Assim que você conseguir criar e manipular uma matriz, será possível realizar várias operações-padrão nela.Por exemplo, é possível encontrar o inverso de uma matriz. Entretanto, você deve tomar cuidado, pois asoperações são manipulações numéricas feitas em computadores digitais (calcule o determinante de A...talvez usando Matlab o comando seja det(A)). O software ainda lhe dará a resposta:

Uma fonte de problema é que Matlab® faz a diferenciação do uso de maiúsculas e minúsculas, de modo queA não é a. Todas as operações disponíveis estão no manual e na ajuda de Matlab®. Uma maneira fácil de selembrar de o que uma operação faz é inserir help "nome da operação" na linha de comando. Por exemplo,para encontrar os autovalores da matriz, o comando é eig. Vamos ver como usar esse comando:

Assim, digitando eig(A), os autovalores são exibidos, enquanto ao digitarmos [v,e]=eig(A) nós temos tantoos autovalores quanto os autovetores:

Agora, se você quiser descobrir x2, que é a solução de v=Bx:

Ou usando o operador \ (divisão da matriz esquerda):

Se v=xB, então

Para limpar todos os dados na memória, use clear (faça uma verificação usando whos logo depois). Paraobter uma relação completa dos operadores, digite help +. Você deve saber as regras para adicionar, subtrair,multiplicar e dividir matrizes (elas devem ser semelhantes).

Muitas vezes queremos fazer uma operação a cada entrada em um vetor ou matriz. Matlab® permitirá quevocê faça isso com operações "conscientes" do elemento. Por exemplo, vamos supor que você queiramultiplicar cada entrada em um vetor v por sua entrada correspondente no vetor b. Em outras palavras,vamos supor que você queira encontrar v(1)*b(1), v(2)*b(2) e v(3)*b(3). Seria ótimo usar o símbolo "*", jáque você está fazendo um tipo de multiplicação, mas como ele já tem uma definição, temos que fazer algumaoutra coisa. Os programadores que criaram Matlab® decidiram usar os símbolos ".*" para isso. Na verdade,você pode colocar um ponto final na frente de qualquer símbolo matemático para dizer ao Matlab® que vocêdeseja que a operação ocorra em cada entrada do vetor.

Agora trabalharemos com um vetor grande, e vamos usar outras funções sofisticadas (se você passar umvetor para uma função matemática predefinida, ele retornará um vetor do mesmo tamanho, e cada entradaserá encontrada ao se realizar a operação especificada na entrada correspondente do vetor original. Lembre-se de usar a vírgula caso você não queira o que o resultado seja impresso na tela).

Agora vamos fazer um gráfico do resultado:

Para ver todas as opções de gráficos, digite help plot (gráfico gerado pelo Matlab®)

II

Haja vista o fator de que escreveremos programas, os Loops irão se tornar muito importantes. O loop nospermite repetir certos comando. Se você quiser repetir alguma ação de alguma forma predeterminada, épossível usar o loop "for". Todas as estruturas do loop no Matlab® são iniciadas com uma palavra-chavecomo "for" ou "while" e todas terminam com a palavra "end". O loop "for" irá girar ao redor de alguma

declaração, e você deve dizer ao Matlab® onde iniciar e onde terminar. Basicamente, você dá um vetor nadeclaração "for" e o Matlab® fará o loop para cada valor no vetor:

Por exemplo, um loop simples ocorrerá quatro vezes:

Outro exemplo é aquele no qual queremos realizar operações nas fileiras de uma matriz. Se você quiseriniciar na segunda fileira de uma matriz, depois subtrair da primeira fileira da matriz e em seguida repetiressa operação nas fileiras seguintes, um loop "for" pode fazer isso em uma ordem curta:

O loop "while" repete uma seqüência de comandos desde que algumas condições sejam cumpridas. Porexemplo, vamos criar um Passeio Aleatório y(t)=y(t-1) +ε(t), onde ε é iid (N(0,1) e y(0)=0.

III

Agora nós temos instrumentos suficientes para criar um arquivo executável. Quando você tiver uma rotinageral em um arquivo Matlab®, ele permitirá que você realize operações mais complexas e será mais fácil derepetir essas operações. Por exemplo, você deve ter um conjunto de instruções para criar um PasseioAleatório, mas pode querer usar essas instruções para condições iniciais, e o número de observações.Primeiro, você precisará criar o arquivo. Vá até File, escolha New e depois M.file. Isso abre o editor doMatlab®. Digite o seguinte:

Depois que os comandos estiverem no lugar, salve o arquivo. Volte para a janela original e inicie o Matlab®.O arquivo é chamado ao digitar simplesmente Randomwalk no nome de base (você deve estar no diretóriocerto, você pode usar o caminho chdir).

Às vezes você pode querer repetir uma seqüência de comandos, mas pode querer ser capaz de fazê-lo comdiferentes vetores e matrizes. Uma maneira de facilitar isso é pelo uso de sub-rotinas. As sub-rotinas sãocomo arquivos executáveis, mas você pode passar diferentes vetores e matrizes para usar. Por exemplo, vocêpode querer calcular a utilidade de consumo usando uma função de utilidade de energia. Então, criaríamos arotina poweru que calcula essa utilidade quando a chamamos. A única diferença com o arquivo executável éque na primeira linha teremos a função[x] = power(c) (é necessária um c como entrada):

Como você pode ter notado, nós usamos a declaração "se" (if). Às vezes, você pode querer que se códigotome uma decisão.No caso anterior, você deseja que a rotina use formas funcionais diferentes dependendo dovalor de RRA. Assim, se usamos no log gama=1, ou se gama for menor que zero, o programa dirá que essevalor é inválido. Cada declaração "if" deve ser terminada com um comando end, pois você também podecriar um bloco else ou elseif dentro de uma declaração if (digite Help if).