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

Curso de Matlab basico

  • 1.
    MATLABBásico - Versão6.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 Janelade 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 deVariá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 deMatrizes • [ 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 deMatrizes • 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 deMatrizes • 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 deMatrizes • 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 umprograma 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 oseguinte 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 eManipulaçã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 eManipulação de Gráficos • Formatos ‘cormarcadorlinha’ 18Curso de MATLAB Básico
  • 19.
    5. Criação eManipulaçã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 eManipulaçã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 eManipulaçã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 eManipulaçã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 eManipulaçã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 eManipulaçã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 umgrá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 • functionresultado = 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 • Raizda 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 • Integralnumé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 experimentaisxexp, 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 partirdestes 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 criarum 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 comFe = 300 L/min 39Curso de MATLAB Básico
  • 40.
    Exercícios • Resultado comFe = 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 araiz 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
  • 44.