微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

最小化包含数组参数的函数

如何解决最小化包含数组参数的函数

我正在尝试最小化包含数组参数的函数

我试图在下面的例子中简化我的问题。函数 Func 包含参数 c2 = linspace(-1,1,10)。优化是关于 thet1、phai1、thet2 和 phai2,使它们受区间 (0,2*pi) 的约束。

import numpy as np
import scipy.optimize as spo

a1 = 0
c1 = 0
cc2 = np.linspace(-1,10)
alpha1 = 1+a1/3

def Func(ang):
    
    thet1 = ang[0]
    phai1 = ang[1]
    thet2 = ang[2]
    phai2 = ang[3]
    
    RhoABC = np.array([[[1-a1,thet1,c1],[0,alpha1,phai2,c2,0],thet2,phai1,thet2],[c1,1-a1]] for c2 in cc2])   
    w,v = np.linalg.eig(RhoABC)  
    return w[1]

angs0 = [.4*np.pi,1.9*np.pi,1.2*np.pi,.7*np.pi]

bnd = (0*np.pi,2*np.pi)
bnds = (bnd,bnd,bnd)

result = spo.minimize(Func,angs0,bounds=bnds) 

输出是: ValueError:轴太多:2(effrank=2),预期等级=1

我只想将最小值(乐趣)绘制为 c2 的函数。请问有什么建议吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。