为什么下面的代码返回ValueError?
from scipy.optimize import fsolve
import numpy as np
def f(p,a=0):
x,y = p
return (np.dot(x,y)-a,np.outer(x,y)-np.ones((3,3)),x+y-np.array([1,2,3]))
x,y = fsolve(f,(np.ones(3),np.ones(3)),9)
ValueError: setting an array element with a sequence.
这里的基本问题是,您的函数f
不满足fSolutions
工作所需的条件。这些标准在留档中有描述——尽管可以说不是很清楚。
您需要注意的具体事项包括:
x
的值就是f(x,*args)=0的解
f
的输出必须与x
输入到f
的形状相同
目前,您的函数接受一个由两个成员组成的
元组(在
p
中)和一个固定的标量偏移量(在a
中)。它返回一个类型为(scalar
,3x3数组
,1x3数组
)的三成员元组
如你所见,条件1和2都不满足。
如果你不确切地确定你要解的方程,就很难就如何解决这个问题给出建议。似乎您正试图用
x0=(1,1,1)
和y0=(1,1,1)
和a=9
作为固定值来求解x
和y
的某个特定方程f(x,y,a)=0
。您可以通过串联传入x
和y
来实现这一点(例如传入p0=(1,1,1,1,1,1)
并在函数中使用x=p[:3]
和y=p[3:]
但是你必须修改你的函数,将x和y连接成一个类似的6维向量。这取决于你要求解的确切函数,我不能从你现有的f
的输出(即基于点积、外积和基于和的元组)得出这个结论。
请注意,您没有传入向量的参数(例如,在您的情况下,
a
)将被视为固定值,不会作为优化的一部分进行更改,也不会作为任何解决方案的一部分返回。
正如医生所说:
fsolve
是MINPACK的hybrd和hybrj算法的包装器。
如果我们看一下MINPACK hybrd文档,输入和输出向量的条件就更清楚了。请参阅下面的相关部分(为了清晰起见,我删掉了一些内容-用…-表示,并添加了注释以显示输入和输出必须是相同的形状-用…-表示)
1目的。
HYBRD的目的是通过对Powell混合方法的改进,找到N个变量中N个非线性函数系统的零点。用户必须提供计算函数的子程序。然后通过向前差分近似计算雅可比矩阵。
2子程序和类型语句。
SUBROUTINE HYBRD(FCN,N,X, ...
...
FCN
是用户提供的用于计算函数的子例程的名称。FCN必须在用户调用程序的外部语句中声明,并应按如下方式编写。
SUBROUTINE FCN(N,X,FVEC,IFLAG)
INTEGER N,IFLAG
DOUBLE PRECISION X(N),FVEC(N) <-- input X is an array length N, so is output FVEC
----------
CALCULATE THE FUNCTIONS AT X AND
RETURN THIS VECTOR IN FVEC.
----------
RETURN
END
N
是将正整数输入变量设置为函数和变量的数量。
X
是长度为N的数组。输入X必须包含解向量的初始估计值。输出X包含解向量的最终估计。
我有以下命令。我想循环使用此键和值,即对于冰/冷的项目,打印“值” 我试过这个: 却给我错误
问题内容: 我想使用argparse解析布尔命令行参数,写为。例如: 但是,以下测试代码不能满足我的要求: 可悲的是,计算结果为True。即使我更改为,情况也是如此,这令人惊讶,因为评估为。 如何获取进行解析,以及它们的小写字母形式是什么? 问题答案: 另一个解决方案使用了先前的建议,但存在来自以下情况的“正确”解析错误: 这对于使用默认值进行切换非常有用。例如 允许我使用:
在web2py服务器上使用python我有以下问题。如何循环遍历json以查找所有具有空值(或空字符串)的键并收集这些键以报告丢失的内容: 这是我的json示例。 我想检索一个包含所有键的列表,如果嵌套的话,则不是第一级。二级。missingData=[scriptFrom,nbworkersDays.nbWorkersTo,nbworkersDays.timeTo] 关于如何解决此问题或如何收集
问题内容: 我有以下JSON字符串来自外部输入源: 这是格式错误的JSON字符串(“ id”和“ value”必须用引号引起来),但无论如何我都需要对其进行解析。我已经尝试了simplejson和json- py,但似乎无法将其设置为解析此类字符串。 我正在Google App引擎上运行Python 2.5,因此任何基于C的解决方案(例如python-cjson)都不适用。 除了上面列出的JSON
问题内容: 我知道这个问题经常被问到,但是找不到合适的解决方案。使用时 要么 我总是会遇到以下错误: 人们建议打开并重试。但这并没有太大帮助。 我也有装的罐子: 问题答案: 从Apache POI常见问题解答: 我可以混合不同版本的POI罐子吗? 否。不支持此功能。 所有使用中的POI罐子必须来自同一版本。不支持诸如poi-3.11.jar和poi- ooxml-3.9.jar之类的组合,它们将无
问题内容: 尝试对mongoexport使用查询会导致错误。但是mongo-client会评估相同的查询,而不会出错。 在mongo-client中: 使用mongoexport: 产生的错误: 但是预先在mongoexport中进行乘法: 作品! 为什么mongo在这两种情况下对查询的评估不同? 问题答案: 该命令行实用程序支持传递查询 JSON 格式,但您要评估 的JavaScript 在您的