SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
MATLABAvançado - Versão 2010a
(parte 1)
Gabriel de Figueiredo da Costa
Curso de MATLAB Avançado e Simulink 1
Ementa
1. Conceitos Básicos
2. Criação de Matrizes e Op. Básicas
3. Criação e Manipulação de Gráficos
4. Processamento de Imagens
5. Variáveis Simbólicas e suas operações
6. Programas em interface gráfica (GUI)
7. Simulink
Curso de MATLAB Avançado e Simulink 2
1. Conceitos Básicos
• clear all – apaga todas as variáveis
• close all – fecha todas as figuras
• clc – apaga os comandos na janela de comandos
Curso de MATLAB Avançado e Simulink 3
Janela de
comandos
Diretório Atual
Ambiente
de Trabalho
Arquivos no
diretório atual
Histórico de
comandos
2. Criação de Matrizes e Operações Básicas
• 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
Curso de MATLAB Avançado e Simulink 4
2. Criação de Matrizes e Operações Básicas
• C = A*B
• D = C*B
• E = A^2
• F = C^2
Curso de MATLAB Avançado e Simulink 5
2. Criação de Matrizes e Operações Básicas
• C = A*B
• D = A.*B
• E = A^2
• F = A.^2
• G = B/A
• H = B./A
Curso de MATLAB Avançado e Simulink 6
2. Criação de Matrizes e 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
Curso de MATLAB Avançado e Simulink 7
2. Criação de Matrizes e 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)]
Curso de MATLAB Avançado e Simulink 8
3. Criação e Manipulação de Gráficos
• x = a:c:b
cria um vetor que vai de a até b, variando de c em c
• x = linspace(a, b, n)
cria um vetor que vai de a até b, com n elementos
• plot(x1, y1, ‘format1’,
x2, y2, ‘format2’,
(...)
xN, yN, ‘formatN’)
Curso de MATLAB Avançado e Simulink 9
3. Criação e Manipulação de Gráficos
• Formatos
‘cormarcadorlinha’
Curso de MATLAB Avançado e Simulink 10
3. Criação e Manipulação 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
Curso de MATLAB Avançado e Simulink 11
3. Criação e Manipulação 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
Curso de MATLAB Avançado e Simulink 12
3. 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
Curso de MATLAB Avançado e Simulink 13
3. 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
Curso de MATLAB Avançado e Simulink 14
3. 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
Curso de MATLAB Avançado e Simulink 15
3. 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”.
Curso de MATLAB Avançado e Simulink 16
Exemplo 3.1
• Processo contínuo
Ce=800g/L ; V=10.000L ; C(t=0)=275g/L;
Co deve estar entre 250 e 300 g/L
Curso de MATLAB Avançado e Simulink 17
Exemplo 3.1
• 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
Curso de MATLAB Avançado e Simulink 18
Exemplo 3.1
• 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;
Curso de MATLAB Avançado e Simulink 19
Exemplo 3.1
• 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;
Curso de MATLAB Avançado e Simulink 20
Exemplo 3.1
• 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');
Curso de MATLAB Avançado e Simulink 21
Exemplo 3.1
• Resultado com Fe = 300 L/min
Curso de MATLAB Avançado e Simulink 22
Exemplo 3.1
• Resultado com Fe = 300 L/min
Curso de MATLAB Avançado e Simulink 23
Vazão ideal
Entre 100 e 200
Exercício 1
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.
Curso de MATLAB Avançado e Simulink 24
Exercício 1
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.
Curso de MATLAB Avançado e Simulink 25
4. Processamento de Imagens
• imread(‘imagem.jpg’) – importa uma imagem que está
no diretório atual de trabalho
bmp em escala de cinza geram 1 matriz
bmp de 16 ou 256 bits
bmp de 24 bits geram 3 matrizes
jpg (r, g, b)
tiff gera 4 matrizes
(c, m, y, k)
Curso de MATLAB Avançado e Simulink 26
4. Processamento de Imagens
• imagem(:,:,n) – retorna a matriz do enésimo canal
• imshow(imagem) – exibe a imagem
• imagesc(imagem) – exibe a imagem com eixos
• imwrite(imagem, ‘im.fmt’) – salva a imagem
• imwrite(imagem, ’im.png’, ’Alpha’, alpha) – salva a
imagem no formato .png e com a opacidade dos
pixels definida em “alpha”.
0 = totalmente transparente;
1 = totalmente opaco.
Curso de MATLAB Avançado e Simulink 27
Exemplo 4.1
• exemplo41.bmp: bmp 24 bits, 15x15 pixels
• Separando os canais
exemplo41=imread(‘exemplo41.bmp’);
R=exemplo41(:,:,1);
G=exemplo41(:,:,2);
B=exemplo41(:,:,3);
• Reconhecendo pixels brancos e transformando em pretos
BRANCO= R==255 & G==255 & B==255;
R(BRANCO)=0; G(BRANCO)=0; B(BRANCO)=0;
RESP(:,:,1)=R; RESP(:,:,2)=G; RESP(:,:,3)=B;
imshow(RESP);
imwrite(RESP, ‘RESPOSTA.bmp’);
Curso de MATLAB Avançado e Simulink 28
Exemplo 4.1
• Criando uma matriz de opacidade
BRANCO=double(BRANCO);
h=imshow(exemplo41);
set(h,’AlphaData’,BRANCO);
imwrite(exemplo41,'RESPOSTA2.png','Alpha',BRANCO);
Curso de MATLAB Avançado e Simulink 29
4. Processamento de Imagens
• imhist(imagem(:,:,N))
apresenta um histograma de contagem de pixels por intensidade
(em imagens RGB, N=1 para vermelho, N=2 para verde, e N=3 para azul)
• decorrstretch(imagem)
diminui a correlação entre as cores R, G, B da imagem
• rgb2gray(imagem)
converte uma imagem de RGB para escala de cinza
• imcontour(imagem,N)
encontra os contornos do canal ‘imagem’ e plota N curvas de nível
Curso de MATLAB Avançado e Simulink 30
Exemplo 4.2
• exemplo42.bmp: bmp 24 bits, 15x15 pixels
• Separando os canais
exemplo41=imread(‘exemplo41.bmp’);
R=exemplo41(:,:,1);
G=exemplo41(:,:,2);
B=exemplo41(:,:,3);
• Histograma da cor vermelha:
imhist(R)
Curso de MATLAB Avançado e Simulink 31
linha
azul
(r=0)
linha
verde
(r=128)
linha vermelha
e fundo branco
(r=255)
Exemplo 4.2
• Para saber quantos pixels tem o risco vermelho:
area_r = R==255 & G==0 & B==0;
pixels_r = sum(sum(double(area_r)))
percent_r = pixels_r/prod(size(R))
• Para contornar a área considerada vermelha:
imshow(exemplo42); hold on;
imcontour(area_r, ‘k--‘)
hold off
Curso de MATLAB Avançado e Simulink 32
Exercício 2
Utilizando uma fotografia de satélite (que pode ser
obtida pesquisando por landsat, no google), calcule o
percentual de zonas verdes e de área construída
contidas na mesma. Note que a métrica utilizada
para encontrar a área construída deve ser verificada
de acordo com a foto escolhida.
Curso de MATLAB Avançado e Simulink 33
4. Processamento de Imagens
• Adequação de imagens a eixos
– imagesc(imagem)
exibe uma imagem já importada, mostrando a escala nos eixos
– axis([a b c d])
ajusta os eixos da área de exibição para x = [a b], e y = [c d]
– imagesc([a b],[c d],imagem)
faz com que a imagem passe a ser exibida nos eixos definidos
– imrotate(imagem,angulo)
gira a imagem em um ângulo no sentido anti-horário, e define a
cor dos pixels vazios como preto
Curso de MATLAB Avançado e Simulink 34
4. Processamento de Imagens
• Rotação de vetores
(para compatibilizar o ângulo entre gráficos e imagens)
Matriz rotação
M=[cos(theta),sen(theta);-sen(theta),cos(theta)];
Para dois vetores x, y que definem uma curva,
for i=1:length(x)
xy=[x(i);y(i)];
xy_rot=M*xy;
x(i)=xy_rot(1); y(i)=xy_rot(2);
end
Curso de MATLAB Avançado e Simulink 35
Exemplo 4.3
• Vazamento contínuo de combustível vaporizado
Curso de MATLAB Avançado e Simulink 36
CONCENTRAÇÃO NO AR (g/m³)
x(m)
z (m)
y (m)
Vento: u (m/s)
Exemplo 4.3
Modelo de dispersão Gaussiano tipo pluma
𝐶 𝑥, 𝑦 =
𝑄
2𝜋𝑢𝜎 𝑦 𝜎𝑧
. 𝑒𝑥𝑝
−𝑦2
2𝜎𝑧
2
𝜎 𝑦 = 𝜎𝑧 = 0,40 ∗ 𝑥0,91
Onde:
• C é a concentração de poluente no ar, no plano horizontal xy que passa
pelo ponto do vazamento (g/m³),
• Q é a vazão que vaza do composto (em g/s),
• u é a velocidade média do vento (m/s),
• x é a distância horizontal do ponto de lançamento (m), sendo que o eixo x
está na direção do vento, e
• y é a distância vertical do ponto de lançamento (m), sendo que o eixo y
está na direção perpendicular ao vento.
Curso de MATLAB Avançado e Simulink 37
Exemplo 4.3
• Limite Tolerável a humanos: 0,0001 g/m³
• u = 6 m/s, vindo de 75° (hor., partindo do Norte)
• Q = 0,8 g/s
Curso de MATLAB Avançado e Simulink 38
Exemplo 4.3
• Para gerar e exibir a superfície de concentração:
[X,Y]=meshgrid(0:0.1:600,-30:0.1:30);
u=6; Q=0.8;
sigma_y=0.40*X.^0.91; sigma_z=sigma_y;
C=Q./(2*pi*u*sigma_y.*sigma_z).*exp(-Y.^2./(2*sigma_z.^2));
imagesc(C);
caxis([0.0001 0.0003]);
Curso de MATLAB Avançado e Simulink 39
Exemplo 4.3
• Para girar a pluma de acordo com o vento:
angulo=75;
theta=(270-angulo)/360*2*pi;
M=[cos(theta),sin(theta);-sin(theta),cos(theta)];
for i=1:size(C,1)
for j=1:size(C,2)
xy=[X(i,j);Y(i,j)];
xy_rot=M*xy;
X(i,j)=xy_rot(1);
Y(i,j)=xy_rot(2);
end
end
Curso de MATLAB Avançado e Simulink 40
u75°
270°-75°
Exemplo 4.3
• Para plotar a figura da planta nos eixos em metros:
tanques=imread(‘tanques.jpg’);
px_h=size(tanques(:,:,1),2);
px_v=size(tanques(:,:,1),1);
esc=92/500;
imagesc([0 px_h/esc],[0 px_v/esc],tanques);
drawnow;
Curso de MATLAB Avançado e Simulink 41
Exemplo 4.3
• Para plotar as plumas sobre a foto da planta:
pos=[183,197;202,199;227,203;164,238;189,241;217,246;245,
250;270,252;297,256;320,261;160,270;214,276;158,287;212,2
95;590,294;627,298;585,321;623,326;659,332];
hold on;
for i=1:19
X_i=X+pos(i,1)/esc;
Y_i=Y+pos(i,2)/esc;
contour(X_i,Y_i,C,[0.0001 0.0003); drawnow;
end
Curso de MATLAB Avançado e Simulink 42
Exemplo 4.3
Curso de MATLAB Avançado e Simulink 43
5. Variáveis Simbólicas e suas operações
• sym() - gera uma variável simbólica que
corresponde a um string ou um número
• syms a b c (...) - gera simultaneamente várias
variáveis simbólicas a, b, c (...)
• double() - converte uma variável simbólica em
número, desde que ela não possua incógnitas
• eval() – avalia uma variável simbólica, desde que
ela não possua incógnitas
• str() - converte uma variável simbólica em uma
variável de texto
Curso de MATLAB Avançado e Simulink 44
5. Variáveis Simbólicas e suas operações
• findsym() - indica quais são as variáveis simbólicas
contidas em uma expressão simbólica
• simplify() - simplifica uma expressão simbólica “em
um nível” (realiza apenas algumas operações)
• simple() – procura a forma mais simples da
expressão simbólica
• subs(f, [a b c], [1 2 3]) - substitui, em f, as variáveis
a, b, c pelos valores 1, 2, 3
• solve('equacao_em_x') - encontras as raízes de
uma equação em x
Curso de MATLAB Avançado e Simulink 45
5. Variáveis Simbólicas e suas operações
• pretty() - apresenta a expressão simbólica de uma
forma "bonita" na tela
• expand() - expande a equação aplicando a
distributiva, agrupando termos de mesma ordem,
etc
• collect() – agrupa os termos de mesma ordem em
x
Curso de MATLAB Avançado e Simulink 46
5. Variáveis Simbólicas e suas operações
• Por exemplo: equação do 2º grau
syms a b c x
f=a*x^2+b*x+c
delta=b^2-4*a*c
x1=(-b-delta^0.5)/(2*a)
x2=(-b+delta^0.5)/(2*a)
x1_sub=subs(x1, [a b c], [1 2 3])
x2_sub=subs(x2, [a b c], [1 2 3])
f_sub=subs(f,[a b c], [1 2 3])
solve(f_sub)
Curso de MATLAB Avançado e Simulink 47
5. Variáveis Simbólicas e suas operações
• Por exemplo: sistemas de equações
syms x y a b c
S = solve('x^2+x*y+y=3' , 'x^2-4*x+3=0');
• S.x
• S.y
S=solve('a*x^2+b*x+c=0', 'a=1', 'b=-3', 'x=10');
• S.a
• S.b
• S.c
• S.x
Curso de MATLAB Avançado e Simulink 48
5. Variáveis Simbólicas e suas operações
• diff(f,n) - fornece a enésima derivada da função f
• int(f,x) - fornece a integral indefinida da função f
em x
• int(f,x_inicial,x_final) - fornece a integral definida
da função f de x inicial até x final
• limit(f,x,x0) - calcula o limite de f(x) quando x
tende a x0
• limit(f,x,x0,'left') - calcula o limite pela esquerda
• limit(f,x,x0,'right') - calcula o limite pela direita
Curso de MATLAB Avançado e Simulink 49
5. Variáveis Simbólicas e suas operações
• symsum(f,i_inicial,i_final) - soma a função f(i) de i
inicial até i final (i final pode ser inf - infinito)
• taylor(f,n) - decompõe f em uma série de Taylor,
obtendo uma expressão que soma os termos até a
ordem n-1
• taylor(f,n,x0) - decompõe f em uma série de Taylor,
obtendo uma expressão que soma os termos até a
ordem n-1, em torno do ponto x0
Curso de MATLAB Avançado e Simulink 50
5. Variáveis Simbólicas e suas operações
• dsolve('eq_diferencial1',(...),'cond_inicial1',(...),'var')
resolve o conjunto de EDOs com variável dependente y e
variável independente ‘var’, com as condições iniciais
definidas (y(0)=1, Dy(0)=1, etc).
• laplace(f(t)) - calcula a transformada de Laplace da
função f(t), usando s como variável
• ilaplace(g(s)) - calcula a transformada inversa de
Laplace da função g(s), usando t como variável
Curso de MATLAB Avançado e Simulink 51

Mais conteúdo relacionado

Mais procurados

Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10Nauber Gois
 
Minicurso de estatística experimental com o R - III SIC IFNMG
Minicurso de estatística experimental com o R  - III SIC IFNMGMinicurso de estatística experimental com o R  - III SIC IFNMG
Minicurso de estatística experimental com o R - III SIC IFNMGPetronio Candido
 
Programação Funcional (para humanos)
Programação Funcional (para humanos)Programação Funcional (para humanos)
Programação Funcional (para humanos)Pedro Castilho
 
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...Leandro de Castro
 
Derivadas Aplicações
Derivadas AplicaçõesDerivadas Aplicações
Derivadas AplicaçõesJones Fagundes
 
Planodeesino.curso.quinta
Planodeesino.curso.quintaPlanodeesino.curso.quinta
Planodeesino.curso.quintapaulovsanches
 
Funcoes Para Alunos Do 2º Grau
Funcoes Para Alunos Do 2º GrauFuncoes Para Alunos Do 2º Grau
Funcoes Para Alunos Do 2º Grauguest3651befa
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlabblogmaxima
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao OctavePeslPinguim
 
Função quadrática projeto final
Função quadrática projeto finalFunção quadrática projeto final
Função quadrática projeto finalCarlota-lu
 

Mais procurados (20)

Introdução ao matlab
Introdução ao matlabIntrodução ao matlab
Introdução ao matlab
 
Matemática I - Tópico 04: Equações do 1º e 2º graus e Inequações
Matemática I - Tópico 04: Equações do 1º e 2º graus e InequaçõesMatemática I - Tópico 04: Equações do 1º e 2º graus e Inequações
Matemática I - Tópico 04: Equações do 1º e 2º graus e Inequações
 
Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10
 
Aula no
Aula noAula no
Aula no
 
Derivadas
DerivadasDerivadas
Derivadas
 
Minicurso de estatística experimental com o R - III SIC IFNMG
Minicurso de estatística experimental com o R  - III SIC IFNMGMinicurso de estatística experimental com o R  - III SIC IFNMG
Minicurso de estatística experimental com o R - III SIC IFNMG
 
Programação Funcional (para humanos)
Programação Funcional (para humanos)Programação Funcional (para humanos)
Programação Funcional (para humanos)
 
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
1998: Técnicas de Otimização Não-Linear Irrestrita para o Treinamento de Rede...
 
Tópico 08 - Derivadas
Tópico 08 - DerivadasTópico 08 - Derivadas
Tópico 08 - Derivadas
 
Aula gaba
Aula gabaAula gaba
Aula gaba
 
Derivadas Aplicações
Derivadas AplicaçõesDerivadas Aplicações
Derivadas Aplicações
 
Planodeesino.curso.quinta
Planodeesino.curso.quintaPlanodeesino.curso.quinta
Planodeesino.curso.quinta
 
Mini curso-prof-peternelli
Mini curso-prof-peternelliMini curso-prof-peternelli
Mini curso-prof-peternelli
 
Funcoes Para Alunos Do 2º Grau
Funcoes Para Alunos Do 2º GrauFuncoes Para Alunos Do 2º Grau
Funcoes Para Alunos Do 2º Grau
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlab
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao Octave
 
Função do 1º grau
Função do 1º grauFunção do 1º grau
Função do 1º grau
 
Mat funcoes
Mat funcoesMat funcoes
Mat funcoes
 
Função quadrática projeto final
Função quadrática projeto finalFunção quadrática projeto final
Função quadrática projeto final
 
Tdc2010
Tdc2010Tdc2010
Tdc2010
 

Semelhante a Curso de Matlab avancado 1

Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilabwjunior
 
Função quadrática
Função quadráticaFunção quadrática
Função quadráticarosilemes
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)Felipe Meganha
 
Utilizando o Winplot como recurso ao ensino da matemática
Utilizando o Winplot como recurso ao ensino da matemáticaUtilizando o Winplot como recurso ao ensino da matemática
Utilizando o Winplot como recurso ao ensino da matemáticaCarolina Farhat
 
Tutoriais para criação e edição de gráficos no r
Tutoriais para criação e edição de gráficos no rTutoriais para criação e edição de gráficos no r
Tutoriais para criação e edição de gráficos no rAna Maria Souza
 
Gráficos de função quadrática no microsoft ecxel
Gráficos de função quadrática no microsoft ecxelGráficos de função quadrática no microsoft ecxel
Gráficos de função quadrática no microsoft ecxelTuesla Santos
 
Funcao Polinomial De 2 Grau
Funcao Polinomial De 2 GrauFuncao Polinomial De 2 Grau
Funcao Polinomial De 2 GrauAntonio Carneiro
 
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
 
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
 
Mat funcao polinomial 2 grau
Mat funcao polinomial 2 grauMat funcao polinomial 2 grau
Mat funcao polinomial 2 grautrigono_metria
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorialblogmaxima
 

Semelhante a Curso de Matlab avancado 1 (20)

Aula 01
Aula 01Aula 01
Aula 01
 
Aula_1.pptx
Aula_1.pptxAula_1.pptx
Aula_1.pptx
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilab
 
Função quadrática
Função quadráticaFunção quadrática
Função quadrática
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)
 
Utilizando o Winplot como recurso ao ensino da matemática
Utilizando o Winplot como recurso ao ensino da matemáticaUtilizando o Winplot como recurso ao ensino da matemática
Utilizando o Winplot como recurso ao ensino da matemática
 
Tutoriais para criação e edição de gráficos no r
Tutoriais para criação e edição de gráficos no rTutoriais para criação e edição de gráficos no r
Tutoriais para criação e edição de gráficos no r
 
MMQ_CasoDiscreto.pdf
MMQ_CasoDiscreto.pdfMMQ_CasoDiscreto.pdf
MMQ_CasoDiscreto.pdf
 
Aulaemgrupo
AulaemgrupoAulaemgrupo
Aulaemgrupo
 
Gráficos de função quadrática no microsoft ecxel
Gráficos de função quadrática no microsoft ecxelGráficos de função quadrática no microsoft ecxel
Gráficos de função quadrática no microsoft ecxel
 
funcao quadratica.pptx
funcao quadratica.pptxfuncao quadratica.pptx
funcao quadratica.pptx
 
funcao quadratica.pptx
funcao quadratica.pptxfuncao quadratica.pptx
funcao quadratica.pptx
 
Funcao Polinomial De 2 Grau
Funcao Polinomial De 2 GrauFuncao Polinomial De 2 Grau
Funcao Polinomial De 2 Grau
 
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
 
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
 
Mat funcao polinomial 2 grau
Mat funcao polinomial 2 grauMat funcao polinomial 2 grau
Mat funcao polinomial 2 grau
 
Ms impresso aula05
Ms impresso aula05Ms impresso aula05
Ms impresso aula05
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
 

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 avancado 1

  • 1. MATLABAvançado - Versão 2010a (parte 1) Gabriel de Figueiredo da Costa Curso de MATLAB Avançado e Simulink 1
  • 2. Ementa 1. Conceitos Básicos 2. Criação de Matrizes e Op. Básicas 3. Criação e Manipulação de Gráficos 4. Processamento de Imagens 5. Variáveis Simbólicas e suas operações 6. Programas em interface gráfica (GUI) 7. Simulink Curso de MATLAB Avançado e Simulink 2
  • 3. 1. Conceitos Básicos • clear all – apaga todas as variáveis • close all – fecha todas as figuras • clc – apaga os comandos na janela de comandos Curso de MATLAB Avançado e Simulink 3 Janela de comandos Diretório Atual Ambiente de Trabalho Arquivos no diretório atual Histórico de comandos
  • 4. 2. Criação de Matrizes e Operações Básicas • 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 Curso de MATLAB Avançado e Simulink 4
  • 5. 2. Criação de Matrizes e Operações Básicas • C = A*B • D = C*B • E = A^2 • F = C^2 Curso de MATLAB Avançado e Simulink 5
  • 6. 2. Criação de Matrizes e Operações Básicas • C = A*B • D = A.*B • E = A^2 • F = A.^2 • G = B/A • H = B./A Curso de MATLAB Avançado e Simulink 6
  • 7. 2. Criação de Matrizes e 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 Curso de MATLAB Avançado e Simulink 7
  • 8. 2. Criação de Matrizes e 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)] Curso de MATLAB Avançado e Simulink 8
  • 9. 3. Criação e Manipulação de Gráficos • x = a:c:b cria um vetor que vai de a até b, variando de c em c • x = linspace(a, b, n) cria um vetor que vai de a até b, com n elementos • plot(x1, y1, ‘format1’, x2, y2, ‘format2’, (...) xN, yN, ‘formatN’) Curso de MATLAB Avançado e Simulink 9
  • 10. 3. Criação e Manipulação de Gráficos • Formatos ‘cormarcadorlinha’ Curso de MATLAB Avançado e Simulink 10
  • 11. 3. Criação e Manipulação 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 Curso de MATLAB Avançado e Simulink 11
  • 12. 3. Criação e Manipulação 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 Curso de MATLAB Avançado e Simulink 12
  • 13. 3. 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 Curso de MATLAB Avançado e Simulink 13
  • 14. 3. 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 Curso de MATLAB Avançado e Simulink 14
  • 15. 3. 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 Curso de MATLAB Avançado e Simulink 15
  • 16. 3. 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”. Curso de MATLAB Avançado e Simulink 16
  • 17. Exemplo 3.1 • Processo contínuo Ce=800g/L ; V=10.000L ; C(t=0)=275g/L; Co deve estar entre 250 e 300 g/L Curso de MATLAB Avançado e Simulink 17
  • 18. Exemplo 3.1 • 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 Curso de MATLAB Avançado e Simulink 18
  • 19. Exemplo 3.1 • 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; Curso de MATLAB Avançado e Simulink 19
  • 20. Exemplo 3.1 • 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; Curso de MATLAB Avançado e Simulink 20
  • 21. Exemplo 3.1 • 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'); Curso de MATLAB Avançado e Simulink 21
  • 22. Exemplo 3.1 • Resultado com Fe = 300 L/min Curso de MATLAB Avançado e Simulink 22
  • 23. Exemplo 3.1 • Resultado com Fe = 300 L/min Curso de MATLAB Avançado e Simulink 23 Vazão ideal Entre 100 e 200
  • 24. Exercício 1 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. Curso de MATLAB Avançado e Simulink 24
  • 25. Exercício 1 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. Curso de MATLAB Avançado e Simulink 25
  • 26. 4. Processamento de Imagens • imread(‘imagem.jpg’) – importa uma imagem que está no diretório atual de trabalho bmp em escala de cinza geram 1 matriz bmp de 16 ou 256 bits bmp de 24 bits geram 3 matrizes jpg (r, g, b) tiff gera 4 matrizes (c, m, y, k) Curso de MATLAB Avançado e Simulink 26
  • 27. 4. Processamento de Imagens • imagem(:,:,n) – retorna a matriz do enésimo canal • imshow(imagem) – exibe a imagem • imagesc(imagem) – exibe a imagem com eixos • imwrite(imagem, ‘im.fmt’) – salva a imagem • imwrite(imagem, ’im.png’, ’Alpha’, alpha) – salva a imagem no formato .png e com a opacidade dos pixels definida em “alpha”. 0 = totalmente transparente; 1 = totalmente opaco. Curso de MATLAB Avançado e Simulink 27
  • 28. Exemplo 4.1 • exemplo41.bmp: bmp 24 bits, 15x15 pixels • Separando os canais exemplo41=imread(‘exemplo41.bmp’); R=exemplo41(:,:,1); G=exemplo41(:,:,2); B=exemplo41(:,:,3); • Reconhecendo pixels brancos e transformando em pretos BRANCO= R==255 & G==255 & B==255; R(BRANCO)=0; G(BRANCO)=0; B(BRANCO)=0; RESP(:,:,1)=R; RESP(:,:,2)=G; RESP(:,:,3)=B; imshow(RESP); imwrite(RESP, ‘RESPOSTA.bmp’); Curso de MATLAB Avançado e Simulink 28
  • 29. Exemplo 4.1 • Criando uma matriz de opacidade BRANCO=double(BRANCO); h=imshow(exemplo41); set(h,’AlphaData’,BRANCO); imwrite(exemplo41,'RESPOSTA2.png','Alpha',BRANCO); Curso de MATLAB Avançado e Simulink 29
  • 30. 4. Processamento de Imagens • imhist(imagem(:,:,N)) apresenta um histograma de contagem de pixels por intensidade (em imagens RGB, N=1 para vermelho, N=2 para verde, e N=3 para azul) • decorrstretch(imagem) diminui a correlação entre as cores R, G, B da imagem • rgb2gray(imagem) converte uma imagem de RGB para escala de cinza • imcontour(imagem,N) encontra os contornos do canal ‘imagem’ e plota N curvas de nível Curso de MATLAB Avançado e Simulink 30
  • 31. Exemplo 4.2 • exemplo42.bmp: bmp 24 bits, 15x15 pixels • Separando os canais exemplo41=imread(‘exemplo41.bmp’); R=exemplo41(:,:,1); G=exemplo41(:,:,2); B=exemplo41(:,:,3); • Histograma da cor vermelha: imhist(R) Curso de MATLAB Avançado e Simulink 31 linha azul (r=0) linha verde (r=128) linha vermelha e fundo branco (r=255)
  • 32. Exemplo 4.2 • Para saber quantos pixels tem o risco vermelho: area_r = R==255 & G==0 & B==0; pixels_r = sum(sum(double(area_r))) percent_r = pixels_r/prod(size(R)) • Para contornar a área considerada vermelha: imshow(exemplo42); hold on; imcontour(area_r, ‘k--‘) hold off Curso de MATLAB Avançado e Simulink 32
  • 33. Exercício 2 Utilizando uma fotografia de satélite (que pode ser obtida pesquisando por landsat, no google), calcule o percentual de zonas verdes e de área construída contidas na mesma. Note que a métrica utilizada para encontrar a área construída deve ser verificada de acordo com a foto escolhida. Curso de MATLAB Avançado e Simulink 33
  • 34. 4. Processamento de Imagens • Adequação de imagens a eixos – imagesc(imagem) exibe uma imagem já importada, mostrando a escala nos eixos – axis([a b c d]) ajusta os eixos da área de exibição para x = [a b], e y = [c d] – imagesc([a b],[c d],imagem) faz com que a imagem passe a ser exibida nos eixos definidos – imrotate(imagem,angulo) gira a imagem em um ângulo no sentido anti-horário, e define a cor dos pixels vazios como preto Curso de MATLAB Avançado e Simulink 34
  • 35. 4. Processamento de Imagens • Rotação de vetores (para compatibilizar o ângulo entre gráficos e imagens) Matriz rotação M=[cos(theta),sen(theta);-sen(theta),cos(theta)]; Para dois vetores x, y que definem uma curva, for i=1:length(x) xy=[x(i);y(i)]; xy_rot=M*xy; x(i)=xy_rot(1); y(i)=xy_rot(2); end Curso de MATLAB Avançado e Simulink 35
  • 36. Exemplo 4.3 • Vazamento contínuo de combustível vaporizado Curso de MATLAB Avançado e Simulink 36 CONCENTRAÇÃO NO AR (g/m³) x(m) z (m) y (m) Vento: u (m/s)
  • 37. Exemplo 4.3 Modelo de dispersão Gaussiano tipo pluma 𝐶 𝑥, 𝑦 = 𝑄 2𝜋𝑢𝜎 𝑦 𝜎𝑧 . 𝑒𝑥𝑝 −𝑦2 2𝜎𝑧 2 𝜎 𝑦 = 𝜎𝑧 = 0,40 ∗ 𝑥0,91 Onde: • C é a concentração de poluente no ar, no plano horizontal xy que passa pelo ponto do vazamento (g/m³), • Q é a vazão que vaza do composto (em g/s), • u é a velocidade média do vento (m/s), • x é a distância horizontal do ponto de lançamento (m), sendo que o eixo x está na direção do vento, e • y é a distância vertical do ponto de lançamento (m), sendo que o eixo y está na direção perpendicular ao vento. Curso de MATLAB Avançado e Simulink 37
  • 38. Exemplo 4.3 • Limite Tolerável a humanos: 0,0001 g/m³ • u = 6 m/s, vindo de 75° (hor., partindo do Norte) • Q = 0,8 g/s Curso de MATLAB Avançado e Simulink 38
  • 39. Exemplo 4.3 • Para gerar e exibir a superfície de concentração: [X,Y]=meshgrid(0:0.1:600,-30:0.1:30); u=6; Q=0.8; sigma_y=0.40*X.^0.91; sigma_z=sigma_y; C=Q./(2*pi*u*sigma_y.*sigma_z).*exp(-Y.^2./(2*sigma_z.^2)); imagesc(C); caxis([0.0001 0.0003]); Curso de MATLAB Avançado e Simulink 39
  • 40. Exemplo 4.3 • Para girar a pluma de acordo com o vento: angulo=75; theta=(270-angulo)/360*2*pi; M=[cos(theta),sin(theta);-sin(theta),cos(theta)]; for i=1:size(C,1) for j=1:size(C,2) xy=[X(i,j);Y(i,j)]; xy_rot=M*xy; X(i,j)=xy_rot(1); Y(i,j)=xy_rot(2); end end Curso de MATLAB Avançado e Simulink 40 u75° 270°-75°
  • 41. Exemplo 4.3 • Para plotar a figura da planta nos eixos em metros: tanques=imread(‘tanques.jpg’); px_h=size(tanques(:,:,1),2); px_v=size(tanques(:,:,1),1); esc=92/500; imagesc([0 px_h/esc],[0 px_v/esc],tanques); drawnow; Curso de MATLAB Avançado e Simulink 41
  • 42. Exemplo 4.3 • Para plotar as plumas sobre a foto da planta: pos=[183,197;202,199;227,203;164,238;189,241;217,246;245, 250;270,252;297,256;320,261;160,270;214,276;158,287;212,2 95;590,294;627,298;585,321;623,326;659,332]; hold on; for i=1:19 X_i=X+pos(i,1)/esc; Y_i=Y+pos(i,2)/esc; contour(X_i,Y_i,C,[0.0001 0.0003); drawnow; end Curso de MATLAB Avançado e Simulink 42
  • 43. Exemplo 4.3 Curso de MATLAB Avançado e Simulink 43
  • 44. 5. Variáveis Simbólicas e suas operações • sym() - gera uma variável simbólica que corresponde a um string ou um número • syms a b c (...) - gera simultaneamente várias variáveis simbólicas a, b, c (...) • double() - converte uma variável simbólica em número, desde que ela não possua incógnitas • eval() – avalia uma variável simbólica, desde que ela não possua incógnitas • str() - converte uma variável simbólica em uma variável de texto Curso de MATLAB Avançado e Simulink 44
  • 45. 5. Variáveis Simbólicas e suas operações • findsym() - indica quais são as variáveis simbólicas contidas em uma expressão simbólica • simplify() - simplifica uma expressão simbólica “em um nível” (realiza apenas algumas operações) • simple() – procura a forma mais simples da expressão simbólica • subs(f, [a b c], [1 2 3]) - substitui, em f, as variáveis a, b, c pelos valores 1, 2, 3 • solve('equacao_em_x') - encontras as raízes de uma equação em x Curso de MATLAB Avançado e Simulink 45
  • 46. 5. Variáveis Simbólicas e suas operações • pretty() - apresenta a expressão simbólica de uma forma "bonita" na tela • expand() - expande a equação aplicando a distributiva, agrupando termos de mesma ordem, etc • collect() – agrupa os termos de mesma ordem em x Curso de MATLAB Avançado e Simulink 46
  • 47. 5. Variáveis Simbólicas e suas operações • Por exemplo: equação do 2º grau syms a b c x f=a*x^2+b*x+c delta=b^2-4*a*c x1=(-b-delta^0.5)/(2*a) x2=(-b+delta^0.5)/(2*a) x1_sub=subs(x1, [a b c], [1 2 3]) x2_sub=subs(x2, [a b c], [1 2 3]) f_sub=subs(f,[a b c], [1 2 3]) solve(f_sub) Curso de MATLAB Avançado e Simulink 47
  • 48. 5. Variáveis Simbólicas e suas operações • Por exemplo: sistemas de equações syms x y a b c S = solve('x^2+x*y+y=3' , 'x^2-4*x+3=0'); • S.x • S.y S=solve('a*x^2+b*x+c=0', 'a=1', 'b=-3', 'x=10'); • S.a • S.b • S.c • S.x Curso de MATLAB Avançado e Simulink 48
  • 49. 5. Variáveis Simbólicas e suas operações • diff(f,n) - fornece a enésima derivada da função f • int(f,x) - fornece a integral indefinida da função f em x • int(f,x_inicial,x_final) - fornece a integral definida da função f de x inicial até x final • limit(f,x,x0) - calcula o limite de f(x) quando x tende a x0 • limit(f,x,x0,'left') - calcula o limite pela esquerda • limit(f,x,x0,'right') - calcula o limite pela direita Curso de MATLAB Avançado e Simulink 49
  • 50. 5. Variáveis Simbólicas e suas operações • symsum(f,i_inicial,i_final) - soma a função f(i) de i inicial até i final (i final pode ser inf - infinito) • taylor(f,n) - decompõe f em uma série de Taylor, obtendo uma expressão que soma os termos até a ordem n-1 • taylor(f,n,x0) - decompõe f em uma série de Taylor, obtendo uma expressão que soma os termos até a ordem n-1, em torno do ponto x0 Curso de MATLAB Avançado e Simulink 50
  • 51. 5. Variáveis Simbólicas e suas operações • dsolve('eq_diferencial1',(...),'cond_inicial1',(...),'var') resolve o conjunto de EDOs com variável dependente y e variável independente ‘var’, com as condições iniciais definidas (y(0)=1, Dy(0)=1, etc). • laplace(f(t)) - calcula a transformada de Laplace da função f(t), usando s como variável • ilaplace(g(s)) - calcula a transformada inversa de Laplace da função g(s), usando t como variável Curso de MATLAB Avançado e Simulink 51