Python 我应该如何管理pyswarms中关于数组形状的错误?

Python 我应该如何管理pyswarms中关于数组形状的错误?,python,particle-swarm,Python,Particle Swarm,当我真的不知道如何实现pyswarms时,我就犯了这个错误。 ValueError:操作数无法与形状(2003,)(5,)一起广播 有人能告诉我怎样正确地改正吗。提前谢谢你 import numpy as np import scipy from scipy.interpolate import interp1d import math as m import pyswarms as pso from pyswarms.backend.topology import Pyramid #load

当我真的不知道如何实现pyswarms时,我就犯了这个错误。 ValueError:操作数无法与形状(2003,)(5,)一起广播 有人能告诉我怎样正确地改正吗。提前谢谢你

import numpy as np
import scipy 
from scipy.interpolate import interp1d
import math as m
import pyswarms as pso
from pyswarms.backend.topology import Pyramid
#loading file
data = np.loadtxt('STAT.txt')
xmax = 2003    
dt = 1.0/32.0           # шаг
tmax = xmax * dt
t = np.linspace(0, tmax,xmax)
wx = data[:,6]/57.3
wy = data[:,7]/57.3
wz = data[:,8]/57.3
theda= data[:,12]#/57.3
gama = data[:,13]#/57.3
Xi = 0.001321/57.3 #theda #  
Yi = 0.002535/57.3 #gama #
interp = scipy.interpolate.interp1d(t,(wx,wy,wz))
# creating function g(y)
def fnc(y):
    #y={'esp_x':1,'esp_y':1,'esp_z':1}
    esp_x=y[0]
    esp_y=y[1]
    esp_z=y[2]
    wx,wy,wz = interp(t)
    g0=(wy+esp_y)*m.sin(Yi) + (wz+esp_z)*m.cos(Yi)
    g1=(wx+esp_x)-m.tan(Xi)*((wy+esp_y)*m.cos(Yi)-(wz+esp_z)*m.sin(Yi))
    return g0,g1

#roots=fsolve(g,[1,1,1])
#time
# Set-up hyperparameters
options = {'c1': 0.5, 'c2': 0.3, 'w':0.9,'k': (11, 15),'p': 1}
# Call instance of PSO
#my_topology = Pyramid(static=False)
#optimizer = pso.single.GeneralOptimizerPSO(n_particles=10, dimensions=2,options=options, topology=my_topology)
optimizer = pso.single.GlobalBestPSO(n_particles=20, dimensions=5, options=options)
# Perform optimization
cost, pos = optimizer.optimize(fnc, iters=10)
错误报告是: 2021-04-14 00:19:56925-pyswarms.single.global_best-INFO-optimized为10个具有{'c1':0.5,'c2':0.3,'w':0.9,'k':(11,15),'p':1}的ITER

pyswarms.single.global|u最佳:0%| | 0/10 pyswarms.single.global|u最佳:0%| | 0/10 回溯(最近一次呼叫最后一次): 文件“E:\D.Sc\Research Work\Python\PSO2particles\psoFncSolver.py”,第42行,在 成本,位置=优化器。优化(fnc,iters=10) 文件“C:\Program Files\Python\Python39\lib\site packages\pyswarms\single\global\u best.py”,第209行,在优化中 self.swarm.current_cost=compute_objective_函数(self.swarm,objective_func,pool=pool,**kwargs) 文件“C:\Program Files\Python\Python39\lib\site packages\pyswarms\backend\operators.py”,第239行,在compute\u objective\u函数中 返回目标函数(swarm.position,**kwargs) fnc中第29行的文件“E:\D.Sc\Research Work\Python\PSO2particles\psoFncSolver.py” g0=(wy+esp_y)*m.sin(Yi)+(wz+esp_z)*m.cos(Yi) ValueError:操作数无法与形状(2003,)(5,)一起广播