Escolar Documentos
Profissional Documentos
Cultura Documentos
Álgebra Matricial
Sistemas Lineares
Sistemas não lineares
Equações Integrais
Equações Diferenciais
Otimização
Manipulação Simbólica
Álgebra Matricial:
Tópicos de Ajuda:
>>help matfun
>>help elmat
>>help sparfun
Dadas as Matrizes A e B:
A * B = C
[n x m ] [ m x p] [n x p]
>> A*B
>>C\A
Conceitos Importantes:
Conceitos Importantes:
Matriz Simétrica: se A= AT
Classificação:
>>eig(A)
>>[lambda V]=eig(A)
Métodos Diretos:
Métodos de Resolução de Sistemas Lineares:
Ex: A = L U Ly=b
Ux
Exemplo Método de Gauss:
Exemplo:
1 2 3 x1 3
4 5 6 . x 6 Linha1=linha1/A(1,1) 1 2 3 3
2 0 3
7 8 0 x3 9 6 6
Linha2=linha2-A(2,1)*linha1
0 6 21 12
A.x y Linha3=linha3-A(3,1)*linha1
Linha2=linha2/A(2,2) 1 0 1 1
0 1 2 2
Linha1=linha1-A(1,2)*linha1
Linha3=linha3-A(3,2)*linha3 0 0 9 0
Linha3=linha3/A(3,3) 1 0 0 1
0 1 0 2
Linha1=linha1-A(1,3)*linha1
Linha2=linha2-A(2,3)*linha2
0 0 1 0
1 2 3 x1 3 3 2 3
4 5 6 . x 6
2 Ax 6 5 6 X1=det(Ax)/det(A)
7 8 0 x3 9 9 8 0
A.x y 1 3 3
Ay 4 6 6
X2=det(Ay)/det(A)
Linha1=b Ax 7 9 0
Linha2=bAy
1 2 3
Linha3=bAz Az 4 5 6
7 8 9
X3=det(Az)/det(A)
Iterações de Jacobi
x k 1 M x k c , k 0,1,2,...
N
bi a ij x kj
j 1 ( i )
x ik 1 , i 1, ..., N e k 0,1,2,...
a ii
Métodos Indiretos:
Iterações de Gauss-Seidel :
i 1 N
bi a ij x kj 1 a ij x kj
j 1 j i 1
x ik 1 , i 1,..., N e k 0,1,2, ...
a ii
Sistemas Esparsos:
Sistemas Esparsos: vários elementos nulos
Sistemas Sobre-Determinados:
Residuo=(A*x-b)
N N N N
Conceito de Norma: M 1
max mij M
max mij M m 2
ij
j i 1 i j 1 F
i 1 j 1
>>help norm
function f=funcao_teste(x)
f=x*exp(x/2)
chute inicial
function f=funcao_teste2(x)
x1=x(1);x2=x(2);
f1=x1*x2-6;
f2=x2+x1-5;
F=[f1;f2];
chute inicial
>>fsolve(’funcao_teste2’, [ 3; 4])
Métodos para Sistemas Não Lineares
x k 1 g ( x k ) k 0,1,2,
g(x)
45°
x* x1 x0 x
Métodos para Sistemas Não Lineares:
x Rk
x k
se sign f ( x k ) sign f ( x Rk 1 )
x Rk 1 caso contrá rio
x 0L
x * x 1R x 0R x
x Lk
x k
k
se sign f ( x ) sign f ( x Lk 1 )
x Lk 1 caso contrá rio
sign f ( x 0L ) sign f ( x R0 )
f(x)
x* x1 x0 x
Newton para Sistemas não Lineares:
k
f1 ( x1 , x2 , x3 ,..., xn ) 0 f ( x )
x K 1 x
K
f 2 ( x1 , x2 , x3 ,..., xn ) 0 Ja( x k )
f3 ( x1 , x2 , x3 ,..., xn ) 0
Onde:
...
df1 df1 df1 df1
f n ( x1 , x2 , x3 ,..., xn ) 0
dx1 dx2 dx3 dxn f1
df 2 df 2 df 2 df 2 f
Ja dx
f ( x) 2
x x1 x2 x3 xn 1 dx2 dx3 dxn
f3
... ... ... ...
df n
... ... ... fn
dxn
Métodos para Sistemas Não Lineares
k df f f ( x k ) f ( x k 1 )
f ( x )
dx xk x x k x k 1
x k x k 1
x k 1 k
x f (x ) k
k k 1
k 1,2,3,
f (x ) f (x )
Dicas-Sistemas não lineares:
norma(xk+1 –xk)>tol
op=optimset(‘metodo’)
f ( x).dx
x min
y max x max
y min
x min
f ( x, y ).dx.dy
Métodos Integrais :
Regra dos Trapézios:
Regra de Simpson:
function f=funcao_01(x)
f=sin(x)./(x+1);
>> quad(‘funcao_01’,0,3.14)
Equações Diferenciais:
Ou
>>ode23(‘df’, [0 60] , 100)
Mostra a evolução da Integração
Exemplo Equações Diferenciais:
Sistema: dx
u xo 2
dt u0 0
du
(1 u 2 )u x
dt
Ou
>>[t,y]= ode23(‘vdp1’,[0 20],[2 0]);
>>x=y(:,1);
>>u=y(:,2);
Equações Diferenciais:
[t,y]=odexx(‘func’,tspan,yo)
Yo-valor inicial
Tspan- valor inicial e final de tempo
Func-função a ser integrada
Método de Euler Implicito:
df ( x)
g ( x, t )
dt
Condicoes Iniciais:
f(x)
t=0 f(0)=fo
f(x2) df ( x0 , t0 ) f ( x) f ( x1 , t1 ) f ( x0 , t0 )
dt t x1 x0
f(x1)
Passo de Integracao:
f(xo)
h x1 x0
xo x1 x2
f ( x1 , t1 ) f ( x0 , t0 ) h.g ( x0 , t0 )
Método de Euler Implícito :
Para sistemas :
df Sistema de Equações
f1 ( x1 , x2 , x3 ,..., xn ) Algébricas que devem ser
dx1 resolvidas simultaneamente:
df
f 2 ( x1 , x2 , x3 ,..., xn )
dx2 f1 ( x1 , t ) f1 ( x0 , t0 ) h. f1 ( x0 , t0 )
f 3 ( x1 , x2 , x3 ,..., xn )
df f 2 ( x1 , t ) f 2 ( x0 , t0 ) h. f 2 ( x0 , t0 )
dx3 f 3 ( x1 , t ) f 3 ( x0 , t0 ) h. f 3 ( x0 , t0 )
...
f n ( x1 , t ) f n ( x0 , t0 ) h. f n ( x0 , t0 )
df
f n ( x1 , x2 , x3 ,..., xn )
dxn
x x1 x2 x3 xn
Método de Runge Kutta Implicito :
Métodos Explícitos:
São os métodos implicitos só que a função g usa o valor de t e
y no novo ponto.
f ( x1 , t1 ) f ( x0 , t0 ) h.g ( x1 , t1 )
Exemplo: Euler explicito
Os métodos explícitos são mais estavéis, no entanto se a a
função g é não linear o calculo requer a solução de um sistema
não linear a cada iteração.
Estabilidade:
Os métodos explícitos requerem passos pequenos para manter a
estabilidade, o menor passo que pode ser dado pode ser
calculado pela expressão:
Usando o pdetool:
Exemplo:min
S ( x) 100. x 2 x12 1 x
2
1
2
function S=test(x)
S=100*(x(2)-x(1).^2).^2+(1-x(1)).^2;
>>x0 = [-1.2, 1]
>>[X ,S]= FMINSEARCH(‘test’,X0)
Op=(optimset,’Propriedade1’,valor,....)
Otimização:
Otimização com restrição:
Problema a ser resolvido:
Aeq 2 8 9 beq 5
4 x3 x4 2 x5 0
A função objetivo deve ser escrita na forma: S=0.5*x'*H*x +
f'*x 2 1 4 1 1 0
f 0 0 0 0 0
' Aeq beq
5 0 2 1 1 0
1 2 1 0 0 6
A b
0 0 4 1 2 0
[x,S]=quadprog(H,f,A,b,Aeq,beq)
x=[0.4812 2.4962 0.5263 -0.6023 0.7514] S=17.7989
Otimização:
Programação Não Linear:
Exemplo: min
exp( x1 ). 4 x12 2 x22 4 x1 x2 2 x2 1
s. a.
1.5 x1 x2 x1 x2 0
x1 x2 10
Podemos usar fmincon do Matlab, devemos criar um arquivo com a
função objetivo e se as restrições são não lineares, precisamos
criar outro arquivo com as restrições.
Function S=fob(x)
S=exp(x(1))*( 4*x(1)^2 +2*x(2)^2 +4*x(1)*x(2)+2*x(2)+1);
Function [G,H]=rest(x)
G(1)=1.5+x(1)*x(2)-x(1)-x(2);
G(2)=-x(1)*x(2)-10;
H(1)=0;
>>[x S]=fmincon('fob',[-1;2],[],[],[],[],[],[],'rest')
x=[ -9.5474 1.0474] S=0.0236
Otimização:
Programação Inteira Mista:
Muitos problemas em operação, projeto, localização e
escalonamento de plantas envolvem variáveis que não são
contínuas e sim discretas, ou seja, variáveis que são inteiras.
Exemplo:
No diretório do CD-ROM
Rotinas\MetodosNumericos
Temos uma série de rotinas prontas separadas por tópicos.
As rotinas seguem um padrão bem similar às funções
embutidas do Matlab e um help nome da função explica o
seu funcionamento.
Variáveis Simbólicas:
>>help sym
>> help syms ex: >>syms x y [ cria x e y como var. simbólicas]
‘x*y=2’ ou ‘x*y-2’
Exemplo:
>> syms x
>>f=x+4;
>>g=‘x+4’;
>>solve(f) [ ans=-4]
>>solve(g) [ ans=-4]
A vantagem é que o solve retorna todas as soluções do sistema,
no entanto, o solve não é muito robusto. Não resolvendo
sistemas muito complexos.
Resolução Simbólica:
Derivadas Simbólicas:
>> help diff
>>syms x y
>>f= 2*x + x*y + 2*y;
>>diff(f, x) [ derivada parcial em relação a x]
>>help jacobian:
>>jacobian( [f; g], [ x ; y])
Integrais Indefinidas:
>>help int
>>int(g) [ g(x), integra g em relação a x com constante de int=0]
>>int(g,x) [ g(x), integra g em relação a x com constante de int=0]
>>int(g,a,b,c) [integral definida entre a e b]
>>help dsolve
>>dsolve(‘Dy=4*y’)
>>dsolve(‘Dy=4*y’, ‘y(0)=1’)
>>dsolve( eqdif 1, eqdif 2, ...., cond inicial 1,....)
Exemplo:
>>S = dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1')
S.x= sin(t)
S.y=cos(t)