|
Python3.7 CODE:
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 5 14:16:13 2020
Problem: Nonlinear Optimization¶
Solve the following nonlinear optimization problem:
min √(x^2+y^2)+√[(x-5)^2+4]+√[(y-6)^2+1]
s.t.
-100≤x,y≤100
with initial conditions:
x0=(1,5)
@author: NICOLAS TU
"""
import numpy as np
from scipy.optimize import minimize
def objective(x):
return np.sqrt((x[0])**2+(x[1])**2)+np.sqrt((x[0]-5)**2+4)+np.sqrt((x[1]-6)**2+1)
# initial guesses
n = 2
x0 = np.zeros(n)
x0[0] = 1.0
x0[1] = 1.0
# show initial objective
print('Initial Objective: ' + str(objective(x0)))
# optimize
b = (-100.0,100.0)
bnds = (b, b)
solution = minimize(objective,x0,method='SLSQP',\
bounds=bnds)
x = solution.x
# show final objective
print('Final Objective: ' + str(objective(x)))
# print solution
print('Solution')
print('x1 = ' + str(x[0]))
print('x2 = ' + str(x[1]))
|
|