Python和openopt(FuncDesigner)错误:AttributeError:“Float”对象没有属性“view”

2024-04-20 07:39:58 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我在尝试运行此程序时标题中出现错误:

from sympy import Symbol, solve
from openopt import NLP
from FuncDesigner import *

def testfunction(x):
    fx=Symbol('fx')
    fx=solve(fx-x*2,fx)[0]
    #fx=eval(str(fx))
    print fx
    return fx

oovarx=oovar('oovarx')
f = oofun(testfunction, input=oovarx) 
startPoint = {oovarx:999}
p = NLP(f, startPoint, maxTime = 8*60)
p.constraints = []
r = p.solve('ralg')

有谁能把这个错误说出来,或者更好地帮助我解决问题吗?在

我知道代码非常简单,但它简化了一个更大的问题。在

编辑1: 整个错误:

^{pr2}$

如果我加上这句话

fx=eval(str(fx))

我得到这个错误:

------------------------- OpenOpt 0.5403 -------------------------
solver: ralg   problem: unnamed    type: NLP   goal: minimum
 iter   objFunVal   
    0  1.998e+03 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile
    execfile(filename, namespace)
  File "/media/morten/Main Work/Biped revisited current version/NLPevalerrortest.py", line 34, in <module>
    r = p.solve('ralg')
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/baseProblem.py", line 248, in solve
    return runProbSolver(self, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/runProbSolver.py", line 288, in runProbSolver
    solver(p)
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/solvers/UkrOpt/ralg_oo.py", line 159, in __solver__
    g = bestPoint._getDirection(self.approach)
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/Point.py", line 634, in _getDirection
    self.direction, self.dType = self.df(),'f'
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/Point.py", line 44, in df
    if not hasattr(self, '_df'): self._df = self.p.df(self.x)
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/baseProblem.py", line 1016, in <lambda>
    self.wrapped_1st_derivatives(x, ind, funcType, ignorePrev, useSparse))
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/nonLinFuncs.py", line 381, in wrapped_1st_derivatives
    derivatives = p.wrapped_func(x, ind, funcType, True, True)
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/nonLinFuncs.py", line 217, in wrapped_func
    rr = [fun(X) for fun in Funcs]
  File "/usr/local/lib/python2.7/dist-packages/openopt-0.5403-py2.7.egg/openopt/kernel/nonLinFuncs.py", line 105, in <lambda>
    funcs[i].D(x, fixedVars = p.fixedVars, useSparse=p.useSparse, fixedVarsScheduleID=p._FDVarsID, exactShape=True), 
  File "/usr/local/lib/python2.7/dist-packages/FuncDesigner-0.5402-py2.7.egg/FuncDesigner/ooFun.py", line 1166, in D
    r = self._D(x, fixedVarsScheduleID, Vars, fixedVars, useSparse = useSparse)
  File "/usr/local/lib/python2.7/dist-packages/FuncDesigner-0.5402-py2.7.egg/FuncDesigner/derivativeMisc.py", line 65, in _D
    derivativeSelf = Self._getDerivativeSelf(x, fixedVarsScheduleID, Vars, fixedVars)
  File "/usr/local/lib/python2.7/dist-packages/FuncDesigner-0.5402-py2.7.egg/FuncDesigner/derivativeMisc.py", line 285, in getDerivativeSelf
    derivativeSelf = get_d1(Self.fun, Input, diffInt=Self.diffInt, stencil = Self.stencil, args=Self.args, pointVal = Self._getFuncCalcEngine(x), exactShape = True)
  File "build/bdist.linux-x86_64/egg/DerApproximator/DerApproximator.py", line 112, in get_d1
AttributeError: 'float' object has no attribute 'ndim'

Tags: inpyselfegglibpackagesusrlocal