找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1673|回复: 0

[求助] 【新人求助】minimize 函数参数不优化

回帖奖励 1 点威望 回复本帖可获得 1 点威望奖励! 每人限 1 次

0

主题

1

帖子

1

积分

贫民

积分
1
Qingmeiyi 发表于 2019-12-5 06:12:40 | 显示全部楼层 |阅读模式
本帖最后由 Qingmeiyi 于 2019-12-5 06:16 编辑

刚转行入门,无奈领我入门的Post Dr. ,有些事情没谈好后表示让我自己solve想完成一个将目标函数最小化的问题,可能不难但我就是找不到哪里不对,在此求助各位大神指点迷津。


主要问题:使用minimize函数最后想要优化的参数s并没有任何变化,以下是部分代码:

用到的w1,w2,w3,w4,u1,u2,u3,u4 的定义公式均一致,由于篇幅限制省略
# 目标函数def  Psi1(s, rxt, ryt, rzt):
return lambda1 * Gama_x(s,rxt) + lambda2 * Gama_y(s, ryt) + lambda3 * Gama_z(s, rzt)
# 目标函数里面用到的函数
def Gama_x(s, rxt):
    rxk = (wx1 / ux1 - wx2 / ux2 - ax - (wx1 / ux1) * (wx2 / ux2) * ax) / (one + (wx1 / ux1) * (wx2 / ux2) + (wx1 / ux1) * ax - (wx2 / ux2) * ax)
return (alpha ** 2 * sigma_ms) / (2 * pi * mu0) * ((norm(rxk - rxt)) + norm(arctan(rxt)))
def Gama_y(s, ryt): ryk = (wy1 / uy1 - wy2 / uy2 - ay - (wy1 / uy1) * (wy2 / uy2) * ay) / (one + (wy1 / uy1) * (wy2 / uy2) + (wy1 / uy1) * ay - (wy2 / uy2) * ay)
return (abs(alpha * sqrt(1-alpha**2)) * sigma_ms) / (2 * pi * mu0) * ((norm(ryk - ryt)) + norm(arctan(ryt)))
def Gama_z(s, rzt):
    rzk = az * ((wz3 * wz4) / (uz3 * uz4))
    return (abs(alpha) * sigma_ms) / (4 * pi * mu0) * norm(log(rzt))**2 + 2 * (log(rzt) / rzt) @ (rzk - rzt).T + L / 2 * (rzk - rzt) @ (rzk - rzt).T
# 主要代码
for i in range(K1):    rxt, ryt,rzt公式与rxk,ryk,rzk一致# 循环中执行minimize函数    r = minimize(Psi1, s, method='Nelder-Mead',  args=(rxt, ryt, rzt), bounds=bnds, c**traints=c**)# 约束
    c** = ({'type':'eq','fun': lambda s: yx - Phix @ fbx(s).T},
                 {'type':'eq','fun': lambda s: yy - Phiy @ fby(s).T},
                 {'type':'eq','fun': lambda s: yz - Phiz @ fbz(s).T},
                 )
    bnds = ((0, None), (0, None))

# 约束里用到的函数省略了
主要的代码内容就是这些,因为字符有限不知道信息是否完整,非常非常欢迎各路大神指正!!

回复

使用道具 举报

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

本版积分规则

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