python - 将 2-Variable 函数求解为仅 1 个变量不适用于数组
问题描述
我从 StackOverflow 中找到了如何用两个变量来解决一个函数,将一个变量设为常量/已知。
这是代码的一部分:
def R(gg,a):
return a-r0*g0**(1/2)*D(gg)/gg**(1/2)
def G(r):
partial_func = functools.partial(R, a=r)
return fsolve(partial_func,10,xtol=10**-1)
它有效,因为对于前 2 次打印,我得到相同的值
f=([10,15])
print(G(10))
print(G(f[0]))
print(G(f))
但是当给出完整的数组时,它会出现以下错误:
The array returned by a function changed size between calls
解决方案
看起来您正试图R
找到f
.
问题是它partial_func
有一个值作为起始估计值,并且希望返回一个长度与a
(在您的情况下为 2 个值)相同的数组。
换句话说,您的问题没有单一的价值根源。例如,根f[0]=10
可能与根不同f[1]=15
。在这种情况下,解决方案应该是一个包含两个值的数组。
要解决此问题,您需要为 的x0
(起始估计)参数提供一个数组fsolve
。
def G(r):
partial_func = functools.partial(R, a=r)
return fsolve(partial_func,[10,10],xtol=10**-1)
因此,对于其中的每个值,a
都有一个初始化器,gg
并且解决方案是一个长度与 相同的向量f
。
推荐阅读
- wordpress - WordPress REST API 未检索所有数据
- google-apps-script - 提供所需授权后脚本未恢复执行
- fs - 如何在这部分 JSON 里面输入?
- c# - 为什么#pragma warning disable S2068 不起作用?
- typescript - 反应不调用 useState
- html - 在Angular 8中恢复图像的完整路径
- r - 字符串匹配后从向量中删除元素
- html - 网站图标未在 IIS 10 中显示
- android - 如何获取调用 Android DialogFragment onDismiss() 的原因?
- android - OpenGL Android,我有一个 3D 旋转立方体,它已经消失了