【发布时间】:2018-02-14 16:20:58
【问题描述】:
我有以下 python 函数需要输入 a 和 b。
def interimfunc(x,y,z):
#this is a dummy function - not a part of the actual question but included for completeness.
#the actual function involves some statistical treatment - but that is not a problem here.
sol = x*y+z
return sol
def finalfunc(a, b):
interimsol1 = interimfunc(0.4,a,b)
interimsol2 = interimfunc(0.8,a,b)
finalsol = interimsol1/interimsol2
return finalsol
如果finalsol 是一个已知值。
如何通过求解非线性方程组找出未知数“a”和“b”??
===
发布此消息后,我得到了 4 票反对。我是一名机械工程师,正在学习计算机科学。我确实尝试在互联网上进行研究,但需要改进我的搜索 - 因此我在这里向专家提问。
===
除了上述等式 - 还有一个信息:
interimsol2 = interimfunc(0.8,a,b)
在哪里interimsol2 = 10 #i.e. known value
我们如何将这些新信息包含在我们未知的发现中?
===
@SergeyIvanov 下面要求的实际问题
def func(mu, sigma):
tenpercent = st.norm.ppf(2, mu, sigma)
ninetypercent = st.norm.ppf(2, mu, sigma)
rfs = tenpercent/ninetypercent
return rfs
【问题讨论】:
-
你必须先做一些阅读。
a, b是函数finalfunc的参数。您必须在调用函数时提供它们才能计算并返回输出finalsol。如果您想反转该过程并从finalsol变为a和b,则必须先进行数学运算。 -
在我看来,
finalsol将永远是0.5,无论您提供什么a和b。而且我不是数学家。这意味着产生它们的函数不是可逆的。所以你不能。如果你简化它,它归结为finalsol=0.4*a*b/(0.8*a*b),即finalsol=0.4/0.8=0.5 -
在您当前的代码中,finalSol 值 = 0.5?
-
你应该解方程 finalfunc(a, b) == known_solution,但不可能有两个未知变量
-
请将初始问题从 "finalsol" 应等于特定值 更改为 "finalsol" 应等于一组特定值 (或类似的东西以确保正确性)