数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 3669|回复: 4

求实数 x,y 使 √(x^2+y^2)+√[(x-5)^2+4]+√[(y-6)^2+1] 取到最小值

[复制链接]
发表于 2020-1-6 14:25 | 显示全部楼层 |阅读模式
請問幾何

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2020-1-6 16:25 | 显示全部楼层
我想了几分钟,这是将军饮马题的代数化。
回复 支持 反对

使用道具 举报

发表于 2020-1-6 18:33 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2020-1-8 15:38 | 显示全部楼层
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]))
回复 支持 反对

使用道具 举报

发表于 2020-1-8 15:39 | 显示全部楼层
Initial Objective: 10.985369030965458
Final Objective: 10.00000018318317
Solution
x1 = 3.4993757364336053
x2 = 4.665564753125953
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-7-28 04:12 , Processed in 0.116205 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表