Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 来自fsolve的奇怪警告_Python_Warnings - Fatal编程技术网

Python 来自fsolve的奇怪警告

Python 来自fsolve的奇怪警告,python,warnings,Python,Warnings,我用fsolve编写了非常简单的代码。方程并不复杂。一个是带有已知“a”参数的a*(1-a),另一个是x*(1-x) 代码是: from scipy.optimize import fsolve import math def equations(p): x = p a=0.1 return (a*(1.0-a), x*(1.0-x)) x = fsolve(equations, 0.1) print equations(x[0]), x[0] 尽管代码和方程非常简

我用fsolve编写了非常简单的代码。方程并不复杂。一个是带有已知
“a”
参数的
a*(1-a)
,另一个是
x*(1-x)

代码是:

from scipy.optimize import fsolve
import math
def equations(p):
    x = p
    a=0.1
    return (a*(1.0-a), x*(1.0-x))

x =  fsolve(equations, 0.1)
print equations(x[0]), x[0]
尽管代码和方程非常简单,但fsolve无法求解方程。为了测试它,我使用答案作为初始值,但它仍然给我一个警告。为什么?

这是它的警告:

/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py:161:RuntimeWarning:根据 过去十次迭代的改进。 warning.warn(msg,RuntimeWarning) (0.09000000000000001,0.090000000000000011)0.1


您试图以一种不起作用的方式使用fsolve,我认为您希望将它用于一个它不应该用于的目的
x*(1-x)
不是方程,在
a*(1-a)
中,如果
a
已知,则无需执行任何操作。你到底想做什么?我有很多方程,依赖于初始条件,我们应该解方程。有时两个方程都包含x,我们应该找到它。有时,只有一个方程包含x,而另一个方程包含已知的参数。如果我将def的返回值从“return(a*(1.0-a),x*(1.0-x))”更改为“return(a*(1.0-a)-x*(1.0-x)),它会工作得更好。是的,此代码工作得很好。请注意,
fsolve
只能解一个形式为
f(x)=0的方程。它不适用于多个方程。通过更改,您可以使其解算
0.09-x*(1-x)=0
。根据初始值,您将得到两个解决方案之一。已解决。谢谢