SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
MATLABBásico - Versão 6.1
Gabriel de Figueiredo da Costa
Curso de MATLAB Básico 1
Ementa
1. Conceitos Básicos
2. Tipos de Variável
3. Criação de Matrizes
4. Operações Básicas
5. Criação e Manipulação de Gráficos
6. Funções
7. Equações Diferenciais
8. Loops (while, for) e Bifurcações (if)
2Curso de MATLAB Básico
1. Conceitos Básicos
3
Janela de
comandos
Diretório Atual
Ambiente de
Trabalho
Arquivos no
diretório atual
Histórico de
comandos
Curso de MATLAB Básico
1. Conceitos Básicos
• Arquivos “.m”
são usados para escrever programas e funções
• clear all – apaga todas as variáveis
• close all – fecha todas as figuras
• clc – apaga os comandos na janela de comandos
• “;” no final do comando – não apresenta o resultado na
tela
• input(‘texto’) – solicita informação ao usuário
• disp(‘texto’) – apresenta um texto ao usuário
4Curso de MATLAB Básico
2. Tipos de Variável
• String – A = ‘texto’
• Número – B = 1234.56789
• Boolean – C = 0 ou 1
• Vetor – D = [1,2,3,4,5,6,7,8,9]
• Matriz – E = [1,2,3 ; 4,5,6 ; 7,8,9]
• Estrutura – ALUNO.nome = ‘nome1’
ALUNO.idade = 12
ALUNO.cpf = 123456
Curso de MATLAB Básico 5
3. Criação de Matrizes
• [ digitação entre colchetes ]
vírgula – muda de coluna
ponto-e-vírgula – muda de linha
• linspace(início, final, N) – cria um vetor com N
pontos entre os valores inicial e final desejados
• A:p:B – cria um vetor que vai de A até B variando
de p em p
6Curso de MATLAB Básico
3. Criação de Matrizes
• A=[0.998,0.382,0.384;0.182,0.388,0.129]
• eye(M,N) - cria uma matriz identidade M x N
• zeros(M,N) - cria uma matriz M x N de zeros
• ones(M,N) - cria uma matriz M x N de uns
• rand(M,N) - cria uma matriz M x N com valores
aleatórios entre 0 e 1
7Curso de MATLAB Básico
3. Criação de Matrizes
• B(2,2) = 1
• B(4) = 2
• B(end) = 3
8Curso de MATLAB Básico
Inserção e
modificação de
valores nas
matrizes
3. Criação de Matrizes
• x = B(2,2)
• x = B(4)
• x = B(end)
9Curso de MATLAB Básico
Extração de
valores das
matrizes
Exercícios
• Criar um programa que peça ao usuário um valor N e
monte uma matriz aleatória N x N com números de 0 a 1.
• Criar um programa que peça ao usuário valores N, A, B, e
monte uma matriz aleatória N x N com números de A a B.
• Criar um programa que peça ao usuário valores M, N, e
monte uma matriz identidade M x N.
• Criar um programa que peça ao usuário quatro elementos
A1,1, A1,2, A2,1, A2,2 e monte uma matriz 2x2.
10Curso de MATLAB Básico
4. Operações Básicas
+ soma
– subtração
* multiplicação
/ divisão
^ potenciação
Curso de MATLAB Básico 11
4. Operações Básicas
• C = A*B
• D = C*B
• E = A^2
• F = C^2
12Curso de MATLAB Básico
Operações
entre matrizes
4. Operações Básicas
• C = A*B
• D = A.*B
• E = A^2
• F = A.^2
• G = B/A
• H = B./A
13Curso de MATLAB Básico
Operações
ponto-a-ponto
entre matrizes
4. Operações Básicas
• inv(A) inverte a matriz A
• A’ transpõe a matriz A
• det(A) calcula o determinante da matriz A
• size(A) apresenta as dimensões da matriz A
• length(A) apresenta a maior dimensão da matriz A
• sort(A) ordena as linhas de um vetor ou uma matriz
em ordem crescente dos valores da primeira coluna
14Curso de MATLAB Básico
4. Operações Básicas
• C = [A , B]
• D = [A ; B]
• E = [A(:,1) , B(:,2)]
• F = [A(2,:) ; B(1,:)]
• G = [A(1,1) , B(1,1)]
• H = [A(2) , B(4)]
15Curso de MATLAB Básico
Concatenação e
particionamento
de matrizes
Exercícios
• Resolver o seguinte sistema linear:
x + y + z = 6
x – y + 4z = 11
x + 2y + 3z = 14
primeiro pelo método do determinante e depois pelo método da
equação matricial.
Obs.: na forma matricial, sendo A a matriz dos coeficientes, X a
das incógnitas e B a dos resultados, temos
A*X = B -> X = A-1*B
16Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
plot(
x1, y1, ‘format1’,
x2, y2, ‘format2’,
xN, yN, ‘formatN’
)
Cria um gráfico com várias curvas (x1,y1), (x2,y2),
etc, com formatos descritos pelos strings ‘format1’,
‘format2’, etc.
17Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
• Formatos
‘cormarcadorlinha’
18Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
Outros tipos de gráficos
• errorbar(x1, y1, e1, ‘format1’, ...) – cria gráficos
com barras de erro descritas pelos vetores “e”
• plot3(x1, y1, z1, ‘format1’, ...) – cria gráficos de
curvas 3d
• comet(x1, y1) – cria um gráfico animado 2D com
um cometa que anda pela curva
• comet3(x1, y1, z1) – cria um gráfico animado 3D
com um cometa que anda pela curva
19Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
Outros tipos de gráficos
• subplot(m, n, i) – cria uma janela com uma matriz m x
n de gráficos, e ativa o gráfico de número i
• pie([a b c], [1 0 1]) – cria um gráfico de pizza com os
valores já normalizados, e destaca as fatias “a” e “c”
• bar(x1, y1) – cria um gráfico de barras
• contour(X,Y,Z,[a b c]) – cria um gráfico 2D com as
curvas de nível de valor a, b, c da superfície definida
por X, Y, Z
20Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
• figure(N) – ativa o gráfico de número N
• hold on – permite que seja plotado outro gráfico
na mesma figura sem sobrescrevê-la
• xlabel(‘nome’) – muda o nome do eixo x
• ylabel(‘nome’) – muda o nome do eixo y
• zlabel(‘nome’) – muda o nome do eixo z
21Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
• title(‘nome’) – muda o título do gráfico
• legend(‘nome1’, ‘nome2’, ...) – insere uma legenda
• axis([x_min x_max y_min y_max z_min z_max]) –
muda os limites dos eixos
• grid on / grid off – liga ou desliga a grade do gráfico
ativo
22Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
x = xinicial:passo:xfinal
y = yinicial:passo:yfinal
[X,Y] = meshgrid(x,y)
Z = funcao(X,Y)
• surf(X,Y,Z) para plotar uma superfície com as faces
preenchidas
• mesh(X,Y,Z) para plotar uma superfície apenas com
as linhas de grade, sem preenchimento
23Curso de MATLAB Básico
5. Criação e Manipulação de Gráficos
• shading flat – muda o sombreamento para básico, com cada
face de uma cor, e sem linhas;
• shading interp – muda o sombreamento para interpolado,
com uma transição suave entre as faces, e sem linhas;
• shading faceted – muda o sombreamento para facetado,
com cada face de uma cor e com linhas (é o padrão);
• colormap(‘mapa’) – muda o mapa de cores; para saber quais
os mapas disponíveis, use “help graph3d”.
24Curso de MATLAB Básico
Exercícios
• Plotar um gráfico 2D com as funções seno, cosseno
e tangente, num intervalo entre 0 e 2*pi.
• Plotar um gráfico 3D com:
x = t*sin(t)
y = t*cos(t)
z = t
onde t varia de 0 a 20π.
• Plotar uma superfície 3D de um paraboloide.
25Curso de MATLAB Básico
6. Funções
• function [res1, res2] = nome_funcao (arg1, arg2)
>> cálculos a serem realizados <<
res1 = (...)
res2 = (...)
Cria-se um arquivo “.m”, no diretório de trabalho
iniciado pelo cabeçalho típico de funções, e a função
pode ser acessada por qualquer rotina usando
nome_funcao(argumentos).
Curso de MATLAB Básico 26
6. Funções
• function resultado = nome_funcao (arg1, arg2)
global x y z w
Quando se define alguma variável como global tanto
na rotina principal quanto na função, ela adquire o
mesmo valor ao ser usada nos dois ambientes.
Curso de MATLAB Básico 27
6. Funções
• Raiz da função
fzero(‘funcao’, chute_inicial) para qualquer função
roots([A B C D]) para polinômios Ax³ + Bx² + Cx + D
• Valor mínimo da função
fminsearch(‘funcao’, chute_inicial)
Curso de MATLAB Básico 28
6. Funções
• Integral numérica
quadl(‘funcao’, inicio, final)
quad8(‘funcao’, inicio, final)
• Derivada numérica
diff(‘funcao’, ponto)
Curso de MATLAB Básico 29
Exercícios
Gere dados experimentais xexp, yexp e zexp usando a rotina:
xexp=1:100;
yexp=normpdf(xexp,50,20);
yexp=yexp+0.001*rand(size(yexp))-0.0005;
zexp=cumsum(yexp);
total=max(zexp);
yexp=yexp/total;
zexp=zexp/total*0.999;
x e z são as variáveis independentes, e y é a variável dependente
para a qual a curva deve ser ajustada.
30Curso de MATLAB Básico
Exercícios
• A partir destes dados experimentais para x, y e z, ajuste os
parâmetros A e B da correlação y = A*exp(B/x)*(1-z) obtendo
o menor erro quadrático possível entre os valores
experimentais e estimados de y.
• Estime primeiramente os parâmetros por ajuste linear,
linearizando a equação, e em seguida utilize estes parâmetros
como ponto de partida para um ajuste não linear (usando o
comando fminsearch).
• Plote, em um gráfico, a curva experimental (xexp, yexp), a
curva ajustada por regressão linear e a curva ajustada por
regressão não linear.
31Curso de MATLAB Básico
7. Equações Diferenciais
• dx/dt = 2x + 1
function y = dxdt(t, x)
y = 2*x + 1
• dx1/dt = 2x1 + 1
• dx2/dt = 5x2 + 2x1
function y = dxdt(t, x)
y = [2*x(1) + 1 ; 5*x(2) + 2*x(1)]
Curso de MATLAB Básico 32
7. Equações Diferenciais
• Resolução de Equações diferenciais
t = [tinicial : Δt : tfinal]’ - vetor de tempo
[t, x] = ode23s(‘funcao’, t, xinicial) - método antigo
[t, x] = ode45(‘funcao’, t, xinicial) - método novo
• Quaisquer parâmetros podem ser passados para
a função da seguinte forma:
function y = dxdt(t, x, flag, par)
[t, x] = ode45(‘funcao’, t, xinicial, [ ], par)
Curso de MATLAB Básico 33
Exercícios
• Processo contínuo
Ce=800g/L ; V=10.000L ; C(t=0)=275g/L;
Co deve estar entre 250 e 300 g/L
34Curso de MATLAB Básico
Exercícios
• Deseja-se criar um programa onde:
– o usuário insere a vazão de entrada de água
– o programa calcula Co(t) para várias Fe
Fe = 100 ; 200 ; 300 ; 400 ; 500 L/min
t = 0 a 60 min
– é gerado um gráfico com estas curvas
– são indicados os limites desejados p/ Co
35Curso de MATLAB Básico
Exercícios
• Equação diferencial
𝑑𝐶
𝑑𝑡
=
𝐹𝑒 𝐶𝑒
𝑉
−
(𝐹𝑒+𝐹𝑎)𝐶
𝑉
function y = dCdT(t, C, flag, par)
Fe=par(1); Fa=par(2); V=par(3); Ce=par(4);
y = (Fe*Ce)/V - (Fe+Fa)*C/V;
36Curso de MATLAB Básico
Exercícios
• Programa principal
clc; clear all; close all;
Fa = input('Informe a vazão de entrada de água ->
');
V=10000; Ce=800;
t=0:1:60'; vazao=100:100:500;
cores=['b' 'g' 'c' 'm' 'k'];
Cmin=250*ones(61,1); Cmax=300*ones(61,1);
plot(t, Cmin, 'r--', t, Cmax, 'r--'); hold on;
37Curso de MATLAB Básico
Exercícios
• Programa principal (continuação)
for i=1:5;
Fe=vazao(i);
[T,y] =ode45('dCdT', t, 275, [], [Fe Fa V Ce]);
plot(t, y, cores(i));
end
hold off
xlabel('Tempo (min)');
ylabel('Concentração (g/L)');
legend('Cmin', 'Cmax', 'Fe=100', 'Fe=200',
'Fe=300', 'Fe=400', 'Fe=500');
38Curso de MATLAB Básico
Exercícios
• Resultado com Fe = 300 L/min
39Curso de MATLAB Básico
Exercícios
• Resultado com Fe = 300 L/min
40
Vazão ideal
Entre 100 e 200
Curso de MATLAB Básico
8. Loops (while, for) e Bifurcações (if)
• while / end
Repete as mesmas ações enquanto a condição continuar
sendo verdadeira.
• for / end
Repete as mesmas ações um determinado número de vezes.
• if / elseif / else / end
Faz determinadas ações se a condição A ou B ou C for
verdadeira, e outras ações caso nenhuma seja verdadeira.
Curso de MATLAB Básico 41
8. Loops (while, for) e Bifurcações (if)
• Outra forma de bifurcação é a função Switch:
switch S % define S como um “interruptor”
case 1
% ações caso S seja igual a 1
case 2
% ações caso S seja igual a 2
case N
% ações caso S seja igual a N
end
Curso de MATLAB Básico 42
Exercícios
• Encontrar a raiz de funções, usando:
– Método de Newton-Raphson
– Método da Autorrecursão
– Método da Bisseção
– Método da Secante
• Encontrar o valor máximo de funções, usando:
– Método da Busca Sucessiva em 1 dimensão
– Método da Busca Sucessiva em 2 dimensões
• O usuário deve modificar as funções em arquivos “.m”
correspondentes, e fornecer os dados necessários.
43Curso de MATLAB Básico
Obrigado!
44

Mais conteúdo relacionado

Mais procurados

As funcionalidades do winplot no ensino de funções
As funcionalidades do winplot no ensino de funçõesAs funcionalidades do winplot no ensino de funções
As funcionalidades do winplot no ensino de funções01698928
 
Funcao modular
Funcao modularFuncao modular
Funcao modularcon_seguir
 
www.AulasDeMatematicaApoio.com - Matemática - Função Afim
www.AulasDeMatematicaApoio.com  - Matemática - Função Afimwww.AulasDeMatematicaApoio.com  - Matemática - Função Afim
www.AulasDeMatematicaApoio.com - Matemática - Função AfimAulas De Matemática Apoio
 
Volumes de sólidos integral
Volumes de sólidos integralVolumes de sólidos integral
Volumes de sólidos integralHugoTavares82
 
Função modular propriedades
Função modular   propriedadesFunção modular   propriedades
Função modular propriedadesPéricles Penuel
 
Funçao quadratica-revisao
Funçao quadratica-revisaoFunçao quadratica-revisao
Funçao quadratica-revisaoMagda Damião
 
Mat funcao polinomial 2 grau
Mat funcao polinomial 2 grauMat funcao polinomial 2 grau
Mat funcao polinomial 2 grautrigono_metria
 
Livro texto - unidade ii
Livro  texto - unidade iiLivro  texto - unidade ii
Livro texto - unidade iiWelison Lopes
 
www.AulasDeMatematicaApoio.com.br - Matemática - Função Afim
 www.AulasDeMatematicaApoio.com.br  - Matemática - Função Afim www.AulasDeMatematicaApoio.com.br  - Matemática - Função Afim
www.AulasDeMatematicaApoio.com.br - Matemática - Função AfimBeatriz Góes
 
Funçao quadratica-revisao 2
Funçao quadratica-revisao 2Funçao quadratica-revisao 2
Funçao quadratica-revisao 2Magda Damião
 

Mais procurados (20)

Projeto Final Meireluce
Projeto Final MeireluceProjeto Final Meireluce
Projeto Final Meireluce
 
As funcionalidades do winplot no ensino de funções
As funcionalidades do winplot no ensino de funçõesAs funcionalidades do winplot no ensino de funções
As funcionalidades do winplot no ensino de funções
 
Funcao modular
Funcao modularFuncao modular
Funcao modular
 
Resumo função modular 1
Resumo função modular 1Resumo função modular 1
Resumo função modular 1
 
Função modular
Função modularFunção modular
Função modular
 
Função modular
Função modularFunção modular
Função modular
 
www.AulasDeMatematicaApoio.com - Matemática - Função Afim
www.AulasDeMatematicaApoio.com  - Matemática - Função Afimwww.AulasDeMatematicaApoio.com  - Matemática - Função Afim
www.AulasDeMatematicaApoio.com - Matemática - Função Afim
 
Aula no
Aula noAula no
Aula no
 
Volumes de sólidos integral
Volumes de sólidos integralVolumes de sólidos integral
Volumes de sólidos integral
 
Introdução ao matlab
Introdução ao matlabIntrodução ao matlab
Introdução ao matlab
 
Função modular propriedades
Função modular   propriedadesFunção modular   propriedades
Função modular propriedades
 
Aula gaba
Aula gabaAula gaba
Aula gaba
 
Funçao quadratica-revisao
Funçao quadratica-revisaoFunçao quadratica-revisao
Funçao quadratica-revisao
 
Mat funcao polinomial 2 grau
Mat funcao polinomial 2 grauMat funcao polinomial 2 grau
Mat funcao polinomial 2 grau
 
Apostila integrais
Apostila integraisApostila integrais
Apostila integrais
 
Livro texto - unidade ii
Livro  texto - unidade iiLivro  texto - unidade ii
Livro texto - unidade ii
 
www.AulasDeMatematicaApoio.com.br - Matemática - Função Afim
 www.AulasDeMatematicaApoio.com.br  - Matemática - Função Afim www.AulasDeMatematicaApoio.com.br  - Matemática - Função Afim
www.AulasDeMatematicaApoio.com.br - Matemática - Função Afim
 
03 modulo
03 modulo03 modulo
03 modulo
 
Utilizandoo winplot
Utilizandoo winplotUtilizandoo winplot
Utilizandoo winplot
 
Funçao quadratica-revisao 2
Funçao quadratica-revisao 2Funçao quadratica-revisao 2
Funçao quadratica-revisao 2
 

Semelhante a Curso de Matlab basico

Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)Felipe Meganha
 
Informática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função QuadráticaInformática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função Quadráticamauriciocampos10mjcg
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorialblogmaxima
 
Minicurso Matlab IVSEE 2013 UERJ
Minicurso Matlab IVSEE 2013 UERJMinicurso Matlab IVSEE 2013 UERJ
Minicurso Matlab IVSEE 2013 UERJRenan Prata
 
Informática Educativa - Projeto Execução - Função Quadrática -
Informática Educativa - Projeto Execução - Função Quadrática -Informática Educativa - Projeto Execução - Função Quadrática -
Informática Educativa - Projeto Execução - Função Quadrática -mauriciocampos10mjcg
 
Informática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função QuadráticaInformática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função Quadráticamauriciocampos10mjcg
 
Funcao Polinomial De 2 Grau
Funcao Polinomial De 2 GrauFuncao Polinomial De 2 Grau
Funcao Polinomial De 2 GrauAntonio Carneiro
 
Função do 2º grau em execução
Função do 2º grau em execuçãoFunção do 2º grau em execução
Função do 2º grau em execuçãomonica_cassia
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programaçãoIFPB
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilabwjunior
 
Função modular
Função modularFunção modular
Função modularISJ
 
Função modular
Função modularFunção modular
Função modularISJ
 
Função quadrática
Função quadráticaFunção quadrática
Função quadráticarosilemes
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslleyWeslley Assis
 
O vértice da parábola da função do 2 grau
O vértice da parábola da função do 2 grauO vértice da parábola da função do 2 grau
O vértice da parábola da função do 2 grauNewton Sérgio Lima
 
Planodeesino.curso.quinta
Planodeesino.curso.quintaPlanodeesino.curso.quinta
Planodeesino.curso.quintapaulovsanches
 

Semelhante a Curso de Matlab basico (20)

Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)
 
Aula_1.pptx
Aula_1.pptxAula_1.pptx
Aula_1.pptx
 
Função quadrática
Função quadráticaFunção quadrática
Função quadrática
 
Informática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função QuadráticaInformática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função Quadrática
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
 
Minicurso Matlab IVSEE 2013 UERJ
Minicurso Matlab IVSEE 2013 UERJMinicurso Matlab IVSEE 2013 UERJ
Minicurso Matlab IVSEE 2013 UERJ
 
Informática Educativa - Projeto Execução - Função Quadrática -
Informática Educativa - Projeto Execução - Função Quadrática -Informática Educativa - Projeto Execução - Função Quadrática -
Informática Educativa - Projeto Execução - Função Quadrática -
 
Informática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função QuadráticaInformática Educativa - Projeto Execução - Função Quadrática
Informática Educativa - Projeto Execução - Função Quadrática
 
Funcao Polinomial De 2 Grau
Funcao Polinomial De 2 GrauFuncao Polinomial De 2 Grau
Funcao Polinomial De 2 Grau
 
Função do 2º grau em execução
Função do 2º grau em execuçãoFunção do 2º grau em execução
Função do 2º grau em execução
 
Aula 01
Aula 01Aula 01
Aula 01
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programação
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilab
 
Função modular
Função modularFunção modular
Função modular
 
Função modular
Função modularFunção modular
Função modular
 
Mat equações
Mat equaçõesMat equações
Mat equações
 
Função quadrática
Função quadráticaFunção quadrática
Função quadrática
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslley
 
O vértice da parábola da função do 2 grau
O vértice da parábola da função do 2 grauO vértice da parábola da função do 2 grau
O vértice da parábola da função do 2 grau
 
Planodeesino.curso.quinta
Planodeesino.curso.quintaPlanodeesino.curso.quinta
Planodeesino.curso.quinta
 

Mais de Gabriel Costa

Metodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgnsMetodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgnsGabriel Costa
 
Analise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNAnalise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNGabriel Costa
 
Processamento de gas natural
Processamento de gas naturalProcessamento de gas natural
Processamento de gas naturalGabriel Costa
 
Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Gabriel Costa
 
Projeto de gasodutos
Projeto de gasodutosProjeto de gasodutos
Projeto de gasodutosGabriel Costa
 

Mais de Gabriel Costa (7)

Metodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgnsMetodologia de calculo de capex de upgns
Metodologia de calculo de capex de upgns
 
Analise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGNAnalise economica de instalacoes de ESGN
Analise economica de instalacoes de ESGN
 
Curso de Simulink
Curso de SimulinkCurso de Simulink
Curso de Simulink
 
Curso de Excel VBA
Curso de Excel VBACurso de Excel VBA
Curso de Excel VBA
 
Processamento de gas natural
Processamento de gas naturalProcessamento de gas natural
Processamento de gas natural
 
Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017Apresentação SPEtro 17-10-2017
Apresentação SPEtro 17-10-2017
 
Projeto de gasodutos
Projeto de gasodutosProjeto de gasodutos
Projeto de gasodutos
 

Curso de Matlab basico

  • 1. MATLABBásico - Versão 6.1 Gabriel de Figueiredo da Costa Curso de MATLAB Básico 1
  • 2. Ementa 1. Conceitos Básicos 2. Tipos de Variável 3. Criação de Matrizes 4. Operações Básicas 5. Criação e Manipulação de Gráficos 6. Funções 7. Equações Diferenciais 8. Loops (while, for) e Bifurcações (if) 2Curso de MATLAB Básico
  • 3. 1. Conceitos Básicos 3 Janela de comandos Diretório Atual Ambiente de Trabalho Arquivos no diretório atual Histórico de comandos Curso de MATLAB Básico
  • 4. 1. Conceitos Básicos • Arquivos “.m” são usados para escrever programas e funções • clear all – apaga todas as variáveis • close all – fecha todas as figuras • clc – apaga os comandos na janela de comandos • “;” no final do comando – não apresenta o resultado na tela • input(‘texto’) – solicita informação ao usuário • disp(‘texto’) – apresenta um texto ao usuário 4Curso de MATLAB Básico
  • 5. 2. Tipos de Variável • String – A = ‘texto’ • Número – B = 1234.56789 • Boolean – C = 0 ou 1 • Vetor – D = [1,2,3,4,5,6,7,8,9] • Matriz – E = [1,2,3 ; 4,5,6 ; 7,8,9] • Estrutura – ALUNO.nome = ‘nome1’ ALUNO.idade = 12 ALUNO.cpf = 123456 Curso de MATLAB Básico 5
  • 6. 3. Criação de Matrizes • [ digitação entre colchetes ] vírgula – muda de coluna ponto-e-vírgula – muda de linha • linspace(início, final, N) – cria um vetor com N pontos entre os valores inicial e final desejados • A:p:B – cria um vetor que vai de A até B variando de p em p 6Curso de MATLAB Básico
  • 7. 3. Criação de Matrizes • A=[0.998,0.382,0.384;0.182,0.388,0.129] • eye(M,N) - cria uma matriz identidade M x N • zeros(M,N) - cria uma matriz M x N de zeros • ones(M,N) - cria uma matriz M x N de uns • rand(M,N) - cria uma matriz M x N com valores aleatórios entre 0 e 1 7Curso de MATLAB Básico
  • 8. 3. Criação de Matrizes • B(2,2) = 1 • B(4) = 2 • B(end) = 3 8Curso de MATLAB Básico Inserção e modificação de valores nas matrizes
  • 9. 3. Criação de Matrizes • x = B(2,2) • x = B(4) • x = B(end) 9Curso de MATLAB Básico Extração de valores das matrizes
  • 10. Exercícios • Criar um programa que peça ao usuário um valor N e monte uma matriz aleatória N x N com números de 0 a 1. • Criar um programa que peça ao usuário valores N, A, B, e monte uma matriz aleatória N x N com números de A a B. • Criar um programa que peça ao usuário valores M, N, e monte uma matriz identidade M x N. • Criar um programa que peça ao usuário quatro elementos A1,1, A1,2, A2,1, A2,2 e monte uma matriz 2x2. 10Curso de MATLAB Básico
  • 11. 4. Operações Básicas + soma – subtração * multiplicação / divisão ^ potenciação Curso de MATLAB Básico 11
  • 12. 4. Operações Básicas • C = A*B • D = C*B • E = A^2 • F = C^2 12Curso de MATLAB Básico Operações entre matrizes
  • 13. 4. Operações Básicas • C = A*B • D = A.*B • E = A^2 • F = A.^2 • G = B/A • H = B./A 13Curso de MATLAB Básico Operações ponto-a-ponto entre matrizes
  • 14. 4. Operações Básicas • inv(A) inverte a matriz A • A’ transpõe a matriz A • det(A) calcula o determinante da matriz A • size(A) apresenta as dimensões da matriz A • length(A) apresenta a maior dimensão da matriz A • sort(A) ordena as linhas de um vetor ou uma matriz em ordem crescente dos valores da primeira coluna 14Curso de MATLAB Básico
  • 15. 4. Operações Básicas • C = [A , B] • D = [A ; B] • E = [A(:,1) , B(:,2)] • F = [A(2,:) ; B(1,:)] • G = [A(1,1) , B(1,1)] • H = [A(2) , B(4)] 15Curso de MATLAB Básico Concatenação e particionamento de matrizes
  • 16. Exercícios • Resolver o seguinte sistema linear: x + y + z = 6 x – y + 4z = 11 x + 2y + 3z = 14 primeiro pelo método do determinante e depois pelo método da equação matricial. Obs.: na forma matricial, sendo A a matriz dos coeficientes, X a das incógnitas e B a dos resultados, temos A*X = B -> X = A-1*B 16Curso de MATLAB Básico
  • 17. 5. Criação e Manipulação de Gráficos plot( x1, y1, ‘format1’, x2, y2, ‘format2’, xN, yN, ‘formatN’ ) Cria um gráfico com várias curvas (x1,y1), (x2,y2), etc, com formatos descritos pelos strings ‘format1’, ‘format2’, etc. 17Curso de MATLAB Básico
  • 18. 5. Criação e Manipulação de Gráficos • Formatos ‘cormarcadorlinha’ 18Curso de MATLAB Básico
  • 19. 5. Criação e Manipulação de Gráficos Outros tipos de gráficos • errorbar(x1, y1, e1, ‘format1’, ...) – cria gráficos com barras de erro descritas pelos vetores “e” • plot3(x1, y1, z1, ‘format1’, ...) – cria gráficos de curvas 3d • comet(x1, y1) – cria um gráfico animado 2D com um cometa que anda pela curva • comet3(x1, y1, z1) – cria um gráfico animado 3D com um cometa que anda pela curva 19Curso de MATLAB Básico
  • 20. 5. Criação e Manipulação de Gráficos Outros tipos de gráficos • subplot(m, n, i) – cria uma janela com uma matriz m x n de gráficos, e ativa o gráfico de número i • pie([a b c], [1 0 1]) – cria um gráfico de pizza com os valores já normalizados, e destaca as fatias “a” e “c” • bar(x1, y1) – cria um gráfico de barras • contour(X,Y,Z,[a b c]) – cria um gráfico 2D com as curvas de nível de valor a, b, c da superfície definida por X, Y, Z 20Curso de MATLAB Básico
  • 21. 5. Criação e Manipulação de Gráficos • figure(N) – ativa o gráfico de número N • hold on – permite que seja plotado outro gráfico na mesma figura sem sobrescrevê-la • xlabel(‘nome’) – muda o nome do eixo x • ylabel(‘nome’) – muda o nome do eixo y • zlabel(‘nome’) – muda o nome do eixo z 21Curso de MATLAB Básico
  • 22. 5. Criação e Manipulação de Gráficos • title(‘nome’) – muda o título do gráfico • legend(‘nome1’, ‘nome2’, ...) – insere uma legenda • axis([x_min x_max y_min y_max z_min z_max]) – muda os limites dos eixos • grid on / grid off – liga ou desliga a grade do gráfico ativo 22Curso de MATLAB Básico
  • 23. 5. Criação e Manipulação de Gráficos x = xinicial:passo:xfinal y = yinicial:passo:yfinal [X,Y] = meshgrid(x,y) Z = funcao(X,Y) • surf(X,Y,Z) para plotar uma superfície com as faces preenchidas • mesh(X,Y,Z) para plotar uma superfície apenas com as linhas de grade, sem preenchimento 23Curso de MATLAB Básico
  • 24. 5. Criação e Manipulação de Gráficos • shading flat – muda o sombreamento para básico, com cada face de uma cor, e sem linhas; • shading interp – muda o sombreamento para interpolado, com uma transição suave entre as faces, e sem linhas; • shading faceted – muda o sombreamento para facetado, com cada face de uma cor e com linhas (é o padrão); • colormap(‘mapa’) – muda o mapa de cores; para saber quais os mapas disponíveis, use “help graph3d”. 24Curso de MATLAB Básico
  • 25. Exercícios • Plotar um gráfico 2D com as funções seno, cosseno e tangente, num intervalo entre 0 e 2*pi. • Plotar um gráfico 3D com: x = t*sin(t) y = t*cos(t) z = t onde t varia de 0 a 20π. • Plotar uma superfície 3D de um paraboloide. 25Curso de MATLAB Básico
  • 26. 6. Funções • function [res1, res2] = nome_funcao (arg1, arg2) >> cálculos a serem realizados << res1 = (...) res2 = (...) Cria-se um arquivo “.m”, no diretório de trabalho iniciado pelo cabeçalho típico de funções, e a função pode ser acessada por qualquer rotina usando nome_funcao(argumentos). Curso de MATLAB Básico 26
  • 27. 6. Funções • function resultado = nome_funcao (arg1, arg2) global x y z w Quando se define alguma variável como global tanto na rotina principal quanto na função, ela adquire o mesmo valor ao ser usada nos dois ambientes. Curso de MATLAB Básico 27
  • 28. 6. Funções • Raiz da função fzero(‘funcao’, chute_inicial) para qualquer função roots([A B C D]) para polinômios Ax³ + Bx² + Cx + D • Valor mínimo da função fminsearch(‘funcao’, chute_inicial) Curso de MATLAB Básico 28
  • 29. 6. Funções • Integral numérica quadl(‘funcao’, inicio, final) quad8(‘funcao’, inicio, final) • Derivada numérica diff(‘funcao’, ponto) Curso de MATLAB Básico 29
  • 30. Exercícios Gere dados experimentais xexp, yexp e zexp usando a rotina: xexp=1:100; yexp=normpdf(xexp,50,20); yexp=yexp+0.001*rand(size(yexp))-0.0005; zexp=cumsum(yexp); total=max(zexp); yexp=yexp/total; zexp=zexp/total*0.999; x e z são as variáveis independentes, e y é a variável dependente para a qual a curva deve ser ajustada. 30Curso de MATLAB Básico
  • 31. Exercícios • A partir destes dados experimentais para x, y e z, ajuste os parâmetros A e B da correlação y = A*exp(B/x)*(1-z) obtendo o menor erro quadrático possível entre os valores experimentais e estimados de y. • Estime primeiramente os parâmetros por ajuste linear, linearizando a equação, e em seguida utilize estes parâmetros como ponto de partida para um ajuste não linear (usando o comando fminsearch). • Plote, em um gráfico, a curva experimental (xexp, yexp), a curva ajustada por regressão linear e a curva ajustada por regressão não linear. 31Curso de MATLAB Básico
  • 32. 7. Equações Diferenciais • dx/dt = 2x + 1 function y = dxdt(t, x) y = 2*x + 1 • dx1/dt = 2x1 + 1 • dx2/dt = 5x2 + 2x1 function y = dxdt(t, x) y = [2*x(1) + 1 ; 5*x(2) + 2*x(1)] Curso de MATLAB Básico 32
  • 33. 7. Equações Diferenciais • Resolução de Equações diferenciais t = [tinicial : Δt : tfinal]’ - vetor de tempo [t, x] = ode23s(‘funcao’, t, xinicial) - método antigo [t, x] = ode45(‘funcao’, t, xinicial) - método novo • Quaisquer parâmetros podem ser passados para a função da seguinte forma: function y = dxdt(t, x, flag, par) [t, x] = ode45(‘funcao’, t, xinicial, [ ], par) Curso de MATLAB Básico 33
  • 34. Exercícios • Processo contínuo Ce=800g/L ; V=10.000L ; C(t=0)=275g/L; Co deve estar entre 250 e 300 g/L 34Curso de MATLAB Básico
  • 35. Exercícios • Deseja-se criar um programa onde: – o usuário insere a vazão de entrada de água – o programa calcula Co(t) para várias Fe Fe = 100 ; 200 ; 300 ; 400 ; 500 L/min t = 0 a 60 min – é gerado um gráfico com estas curvas – são indicados os limites desejados p/ Co 35Curso de MATLAB Básico
  • 36. Exercícios • Equação diferencial 𝑑𝐶 𝑑𝑡 = 𝐹𝑒 𝐶𝑒 𝑉 − (𝐹𝑒+𝐹𝑎)𝐶 𝑉 function y = dCdT(t, C, flag, par) Fe=par(1); Fa=par(2); V=par(3); Ce=par(4); y = (Fe*Ce)/V - (Fe+Fa)*C/V; 36Curso de MATLAB Básico
  • 37. Exercícios • Programa principal clc; clear all; close all; Fa = input('Informe a vazão de entrada de água -> '); V=10000; Ce=800; t=0:1:60'; vazao=100:100:500; cores=['b' 'g' 'c' 'm' 'k']; Cmin=250*ones(61,1); Cmax=300*ones(61,1); plot(t, Cmin, 'r--', t, Cmax, 'r--'); hold on; 37Curso de MATLAB Básico
  • 38. Exercícios • Programa principal (continuação) for i=1:5; Fe=vazao(i); [T,y] =ode45('dCdT', t, 275, [], [Fe Fa V Ce]); plot(t, y, cores(i)); end hold off xlabel('Tempo (min)'); ylabel('Concentração (g/L)'); legend('Cmin', 'Cmax', 'Fe=100', 'Fe=200', 'Fe=300', 'Fe=400', 'Fe=500'); 38Curso de MATLAB Básico
  • 39. Exercícios • Resultado com Fe = 300 L/min 39Curso de MATLAB Básico
  • 40. Exercícios • Resultado com Fe = 300 L/min 40 Vazão ideal Entre 100 e 200 Curso de MATLAB Básico
  • 41. 8. Loops (while, for) e Bifurcações (if) • while / end Repete as mesmas ações enquanto a condição continuar sendo verdadeira. • for / end Repete as mesmas ações um determinado número de vezes. • if / elseif / else / end Faz determinadas ações se a condição A ou B ou C for verdadeira, e outras ações caso nenhuma seja verdadeira. Curso de MATLAB Básico 41
  • 42. 8. Loops (while, for) e Bifurcações (if) • Outra forma de bifurcação é a função Switch: switch S % define S como um “interruptor” case 1 % ações caso S seja igual a 1 case 2 % ações caso S seja igual a 2 case N % ações caso S seja igual a N end Curso de MATLAB Básico 42
  • 43. Exercícios • Encontrar a raiz de funções, usando: – Método de Newton-Raphson – Método da Autorrecursão – Método da Bisseção – Método da Secante • Encontrar o valor máximo de funções, usando: – Método da Busca Sucessiva em 1 dimensão – Método da Busca Sucessiva em 2 dimensões • O usuário deve modificar as funções em arquivos “.m” correspondentes, e fornecer os dados necessários. 43Curso de MATLAB Básico