Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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如何获得给定的函数公式';s.投入和成果_Python_Algorithm_Math_Interpolation - Fatal编程技术网

Python如何获得给定的函数公式';s.投入和成果

Python如何获得给定的函数公式';s.投入和成果,python,algorithm,math,interpolation,Python,Algorithm,Math,Interpolation,假设我们有一个公式未知的函数,在这个函数的输入和结果很少的情况下,我们如何得到函数的公式 例如,我们有输入x和y以及格式为(x,y,r)的结果r 所需的功能可以是 f(x,y) = x * y 当你发布问题时,问题太笼统了。如果您想找到任何将给定输入映射到给定结果的公式,那么可能的公式太多了。为了理解这一点,你需要以某种方式限制一组函数来考虑。例如,你可以说你只对多项式解感兴趣,即 r = sum a_ij * x^i * y^j for i from 0 to n and j from 0

假设我们有一个公式未知的函数,在这个函数的输入和结果很少的情况下,我们如何得到函数的公式

例如,我们有输入x和y以及格式为(x,y,r)的结果r

所需的功能可以是

f(x,y) = x * y

当你发布问题时,问题太笼统了。如果您想找到任何将给定输入映射到给定结果的公式,那么可能的公式太多了。为了理解这一点,你需要以某种方式限制一组函数来考虑。例如,你可以说你只对多项式解感兴趣,即

r = sum a_ij * x^i * y^j for i from 0 to n and j from 0 to n - i
然后你有一个方程组,用a_ij作为参数来求解。度数
n
越高,需要找到的此类参数越多,因此需要知道的输入输出组合越多。它的变体使用有理函数(所以你可以除以另一个多项式),或者允许使用一些三角函数,或者类似的东西

如果你的设置特别简单,你只需要线性方程,即
r=a*x+b*y+c
。如您所见,即使有三个参数
a、b、c
,您也无法仅根据您在问题中提供的两个输入就找到这三个参数。即使这样,结果也不会是你想要的
r=x*y
,因为这在技术上是2级的


如果您想指出,
r=x*y
是一个特别简单的公式,并且您想寻找简单的公式,那么一种方法是按复杂性增加的顺序枚举公式。但是如果没有参数(因为丑陋的参数会使像
a*x+b*y+c
这样的简单公式显得复杂),那么很难将此枚举引向所需的枚举,因此必须枚举所有可能的公式,这将很快变得不可行。

尝试使用一些遗传算法,进化出语法,搜索所需的公式;)如果有无数令人满意的公式呢?如果你解决了这个问题,我想1亿人会感兴趣。这不只是一个方程组吗?也许你应该学习线性阿列格布拉或微分方程课程。在任何情况下,这都不值得使用pythontag@sinabakh还是不可能。
r = sum a_ij * x^i * y^j for i from 0 to n and j from 0 to n - i