Escolar Documentos
Profissional Documentos
Cultura Documentos
ipynb - Colaboratory
sujeito a: xy ≥ −10
1.5 + xy − x − y ≤ 0
x = Symbol('x')
y = Symbol('y')
lbd1 = Symbol('lbd1')
lbd2 = Symbol('lbd2')
s1 = Symbol ('s1')
s2 = Symbol('s2')
var = Matrix([x,y,lbd1,lbd2,s1,s2])
jacobiano = L.jacobian(var)
hessiana = hessian(L,var)
# Condições iniciais
solucao = Matrix([-20,20,1,1,0,0])
tolerancia = 1e-12
iteracao = 0
# Cálculo do erro
delta_y =-jacobiano.subs([(x,float(solucao[0])),(y,solucao[1]),(lbd1,solucao[2]),
(lbd2,solucao[3]),(s1,solucao[4]),(s2,solucao[5])])
erros = np.abs(delta_y)
maior_erro = np.max(erros)
iteracao = iteracao + 1
hessiana_atual = hessiana.subs([(x,float(solucao[0])),(y,solucao[1]),
(lbd1,solucao[2]),(lbd2,solucao[3]),
(s1,solucao[4]),(s2,solucao[5])])
delta_x = hessiana_atual.inv()*delta_y.transpose()
solucao = solucao + delta_x
delta_y = -jacobiano.subs([(x,float(solucao[0])),(y,solucao[1]),
(lbd1,solucao[2]),(lbd2,solucao[3]),
(s1,solucao[4]),(s2,solucao[5])])
erros = np.abs(delta_y)
maior_erro = np.max(erros)
https://colab.research.google.com/drive/1eU6fQ1NEcnDNbO5Jq8bmvR_F6W69m6Xp#scrollTo=HN9pDMQkyNaN&printMode=true 1/2
01/06/2019 Exercício_7.ipynb - Colaboratory
fob = f.subs([(x,float(solucao[0])),(y,float(solucao[1]))])
print('Valor da FOB:',fob)
print('Solução:')
print('x =',float(solucao[0]))
print('y =',float(solucao[1]))
print('lbd1 =',float(solucao[2]))
print('lbd2 =',float(solucao[3]))
print('s1 =',float(solucao[4]))
print('s2 =',float(solucao[5]))
print('Número de iterações:',iteracao)
https://colab.research.google.com/drive/1eU6fQ1NEcnDNbO5Jq8bmvR_F6W69m6Xp#scrollTo=HN9pDMQkyNaN&printMode=true 2/2