630 likes | 806 Views
MATLAB. PROF. OSWALDO COBRA. O objetivo deste curso é a apresentação de ferramentas básicas do ambiente MATLAB. Realço que o tempo (8 horas) de curso impõe uma metodologia dinâmica de aula. Em função disto, evite conversas paralelas. Cursos em ambiente de laboratório exigem atenção!.
E N D
MATLAB PROF. OSWALDO COBRA
O objetivo deste curso é a apresentação de ferramentas básicas do ambiente MATLAB. Realço que o tempo (8 horas) de curso impõe uma metodologia dinâmica de aula. Em função disto, evite conversas paralelas. Cursos em ambiente de laboratório exigem atenção!
OPERAÇÕES COM VETORES E MATRIZES Quando inicializamos o MATLAB, são criadas uma ou mais janelas e, dentre elas, a janela de comando é o principal local de interação com o MATLAB. A aparência da janela a apresentada a seguir: O sinal de prompt é dado por >>
MATEMÁTICA ELEMENTAR MATLAB executa operações algébricas como se fosse uma calculadora, possuindo as seguintes operações aritméticas elementares:
A ordem na qual essas operações são executadas em uma expressão é dada pelas regras usuais de precedência: as expressões são executadas da esquerda para direita com operação de potênciação tendo a maior precedência, seguida de multiplicação e divisão (ambas com mesma ordem de precedência), seguidas de adição e multiplicação (mesma ordem de precedência). Parênteses podem ser usados para alterar a ordem de precedência.
ÁREA DE COMANDOS Você pode criar variáveis na memória do programa MATLAB e estas variáveis são armazenadas enquanto durar o uso do programa. >> teste=3; >> prova=7; >> teste+prova ans = 10
VARIÁVEIS Existem regras em relação aos nomes das variáveis na linguagem do MATLAB. • As variáveis são sensíveis a maiúsculas e minúsculas • Podem conter até 31 caracteres • Os nomes das variáveis devem começar com uma letra • Caracteres de pontuação não são permitidos, nem caracteres acentuados
Observação: O MATLAB possui alguns nomes de variáveis especiais:
COMENTÁRIOS E PONTUAÇÃO Todo texto digitado depois do sinal de % é considerado no ambiente MATLAB como um comentário. >> % PROGRAMA EXEMPLO >> X=10; % X REPRESENTA UMA VARIAVEL QUALQUER Observação: MATLAB armazena o valor x=10 e ignora os caracteres à direita de %.
Pode-se também adicionar ou escrever vários comandos por linha, separando-os por vírgula ou ponto e vírgula: >> y=3, t=4, u=34 y = 3 t = 4 u = 34
Quando se coloca o sinal de ponto e vírgula no final da sentença do MATLAB, o resultado de uma operação ou comando não é exibido na tela do MATLAB. Veja a diferença: >> p=3 p = 3 >> p=3;
Uma sucessão de três pontos indica ao MATLAB que o resto do comando aparecerá na linha seguinte, mas lembre-se que o nome de uma variável não pode ser dividido entre linhas: >> valores_das_concentracoes=33+... 44; >>
JANELA DE COMANDOS Todas as informações, dados e variáveis criados na janela de comandos são armazenados no espaço de trabalho do MATLAB. O comando who mostra os nomes das variáveis. O comando clear apaga variáveis do espaço de trabalho do MATLAB. O comando cls apaga as informações do espaço de trabalho, mas não da memória. O comando diary permite que você armazena em arquivo texto tudo o que você digitou. Sua sintaxe é diary nome do arquivo. Deve ser finalizado com o comando diary off.
ARQUIVO M DE COMANDOS Em problemas simples, é mais simples a digitação de comandos no prompt do MATLAB. Para problemas, mais complexos é conveniente, ou que você deseja repetir n vezes, o MATLAB apresenta a possibilidade de escrever os comandos em arquivo texto e depois executá-lo introduzindo o nome do arquivo na área de comandos do MATLAB.
COMO CRIAR ARQUIVOS M Clique em File, New, M-file.
ARQUIVO DE DADOS Existem muitas maneiras de carregar e gravar arquivos de dados no MATLAB. Inicialmente, vamos considerar os comandos load e save. O comando save grava dados do espaço de trabalho em arquivo de disco. Sua sintaxe é: Save nome_do_arquivo var1 var2 var3 Var1 var2 var3 … são as variáveis a serem gravadas no arquivo nome_do_arquivo.
Salvando em formato que podem ser lidos por planilhas e programas escritos em outras linguages. Clique >> x=[1 2 5.6 789 4.5]; >> save x.dat x -ascii Explore esta área! Apenas como exercício, encerre o MATLAB e inicialize-o novamente. Digite *.dat
Como você pode verificar os Dados foram gravados!
Caso você queira utilizar os dados gravados diretamente na área de trabalho do MATLAB, pode utilizar: load nome_do_arquivo No nosso exemplo, load x.dat Agora digite x e verifique que a variável x, ou o vetor x, como queira, está como variável atualizada na memória.
OPERAÇÕES COM VETORES E MATRIZES A criação de vetores no MatLab é muito simples. Você deve começar com um colchete esquerdo e inserir os valores desejados, separados por espaços ou vírgulas e fechar o conjunto com um colchete direito. Quantos elementos este vetor possui? >> x=[1.2 3 4.5 6 9]; Este vetor possui 5 elementos. Mais precisamente ele possui uma linha e 5 colunas, ou seja, é um vetor linha.
No MATLAB o acesso aos elementos de um vetor é feito utilizando índices na forma nome_do_vetor(i). Veja Alguns Exemplos!
>> x=[1.2 3 4.5 6 9]; >> x=[1.2 3 4.5 6 9]; >> x(0) ??? Index into matrix is negative or zero. >> X(1) ??? Undefined function or variable 'X'. >> x(1) ans = 1.20 >> x(5) ans = 9.00
Para ter acesso a um bloco de elementos utilize a notação de dois pontos (:) : >> x(1:5) ans = 1.20 3.00 4.50 6.00 9.00 >> x(1:3) ans = 1.20 3.00 4.50 >> x(2:4) ans = 3.00 4.50 6.00
A construção de vetores também pode ser feita, ao invés de digitar todos os elementos, sob algumas formas alternativas. A função linspace possui a seguinte sintaxe: Função linspace linspace(primeiro_valor,último_valor,número_de_valores)
linspace(2,5,4) ans = 2.00 3.00 4.00 5.00 Mas você também pode criar o vetor utilizando o comando: x=início:incremento:fim >> x=[1:.8:5] x =1.00 1.80 2.60 3.40 4.20 5.00
ORIENTAÇÃO DE VETORES Você pode criar vetores com mais de uma linha, utilizando a notação de ponto e vírgula: OBSERVE A DIFERENÇA!
>> x=[1 2 3 4 5] x = 1 2 3 4 5 >> x=[1; 2; 3; 4 ;5] x = 1 2 3 4 5
Você também pode transpor um vetor, utilizando a anotação apóstrofo: >> x=[1 4 5 89] x = 1 4 5 89 DIGITE! >> x' ans = 1 4 5 89
MATRIZES Usam-se espaços para separar os elementos de uma linha e utliza-se ponto e vírgula para criar linhas na matriz: Digite >> x=[1 2 3;4 5 6;7 8 9] x = 1 2 3 4 5 6 7 8 9
SOMA DE MATRIZES A soma de matrizes é exemplificada abaixo: x=[1 2 3;4 5 6;7 8 9] ans = 5 7 9 12 14 18 12 14 16 y=[4 5 6; 8 9 12; 5 6 7]; DIGITE x+y
MULTIPLICAÇÃO OU DIVISÃOELEMENTO POR ELEMENTO O ponto anterior ao Operador indica Que a operação Deve ser feita elemento A elemento! x=[1 2 3;4 5 6;7 8 9] x.*y ans = 4 10 18 32 45 72 35 48 63 x./y ans = 0.2500 0.4000 0.5000 0.5000 0.5556 0.5000 1.4000 1.3333 1.2857 y=[4 5 6; 8 9 12; 5 6 7]; DIGITE x.*y Ou x./y
SISTEMAS LINEARES Muitas aplicações de Engenharia envolvem a solução de sistemas lineares. Considere o exemplo: O que é equivalente a escrevermos , onde A é a matriz dos coeficientes, W a matriz das incógnitas do sistema e B a matriz dos resultados. A Álgebra linear nos fornece o conceito de que este sistema possui solução se o determinante da matriz A for diferente de zero. Vejamos a solução deste problema utilizando o MATLAB: >> A=[1.2 6 4; 5 8 0;7 12 5]; >> B=[12;3;6]; >> det(A) ans = -86.0000. A solução do sistema por ser dada por . No MATLAB pode ser expresso por: >> x=inv(A)*B x = -3.9767 2.8605 -0.0977
FATORAÇÃO LU No MATLAB a fatoração LU pode ser implementada pelo comando: A\B Matriz dos resultados Matriz dos coeficientes
GRÁFICOS 2D x=linspace(0,2*pi,50); >> y=exp(x).*sin(x); >> plot(x,y)
OUTRAS FUNÇÕES fplot f(x)=cos(x)*ex fplot(‘cos(x)*exp(x)’,[0 3*pi]) DIGITE
polar r=3cos(4t), t=0:.01:2*pi; r=3*cos(4*t); polar(t,r)
y1=exp(x); y2=log(x) x=1:.1:6; y1=exp(x); y2=log(x); ax=plotyy(x,y1,x,y2); hy1=get(ax(1),'ylabel'); hy2=get(ax(2),'ylabel'); set(hy1,'string','exp(x)'); set(hy2,'string','log(x)'); plotyy
semilogx Também existe o comando semilogy( ) e o Comando loglog( ) t=linspace(0,3*pi,300); >> x=exp(-t); >> y=t; >> semilogx(x,y); grid
hist prof=char('Professor Universitario','Engenheiro Quimico','Medico'); sal=[999; 6789; 9999]; barh(sal); for i=1:3 gtext(prof(i,:)); end xlabel('Salario em reais'); title('Profissoes e Remuneraçao = Alerta',... 'fontsize',19);
pie prof=char('Professor Universitario','Engenheiro Quimico','Medico'); sal=[999; 6789; 9999]; pie(sal); for i=1:3 gtext(prof(i,:)); end xlabel('Salario em reais'); title('Profissoes e Remuneraçao = Alerta',... 'fontsize',19);
USANDO SUBPLOT Uma janela pode conter mais de um conjunto de eixos e, neste caso, pode ser usado o comando subplot(m,n,p), que divide a janela de figuras em uma matriz m por n regiões , nas quais se pode traçar gráficos e ativa a região de ordem p. Os subgráficos são numerados da esquerda para direita, linha por linha.
x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> a=sin(x).*cos(x); >> b=sin(x)./(cos(x)+eps); >> subplot(2,2,1) %seleciona o grafico à esquerda, no alto >> plot(x,y); >> subplot(2,2,2) %seleciona o grafico à direita, no alto >> plot(x,z); >> subplot(2,2,3) %seleciona o grafico à esquerda, embaixo >> plot(x,a); >> subplot(2,2,4) %seleciona o grafico à direita, embaixo >> plot(x,b);