我有2个数组说X和Y.每个都有5个元素。现在对于(X,Y)的每个可能组合,我有一个Z值,所以Z是一个5x5矩阵。
我希望找到一个公式,例如Z = F(X,Y)。关于如何做到这一点的任何想法。
我尝试了MS Excel曲面图,但它没有在曲面图上给出任何等式或曲线拟合。
答案 0 :(得分:9)
总的来说,我建议使用SciLab或Matlab等其他软件来完成这项任务。这些产品比Excel更加计算数学。 但Excel有一些内置功能可能会对你有帮助。
首先说明: 您需要使用名为“Solver”的加载项。此加载项随Excel一起提供,但可能未在安装时默认安装。 一个描述(在www中有数千个)如何安装该加载项,您将在此处找到: Solver Add-in
如果您已完成此操作,则下一步是创建包含数据的工作表。 我试图生成如下图所示的示例。
范围C5:G9
包含您想要通过函数逼近的矩阵。
所以它是z = f(x,y)矩阵。
旁边的图表只是您(在本例中为我的)原始数据的3D图。
现在它会变得有点数学......
您需要一种通用类型的函数来进行近似。
结果的质量取决于此功能能够接近您的数据的程度。
在示例中,我使用了具有二阶近似(最大二次项)的方法。
我的示例函数是z=a*x^2 + b*y^2 + c *x*y + d*x + e*y +f
。
如果您需要更多,请尝试使用三阶项(包括x ^ 3,y ^ 3,...)。
我不想在示例中执行此操作,因为我不想在Excel中键入长公式。
下一步是键入长公式:
现在我们必须使用计算公式的值填充范围C15:G19
。但在此之前,我们必须在范围J14:J19
中定义多项式系数。作为起始值,您可以仅对所有系数使用1(图片显示运行求解器后的解决方案)
单元格C15中的公式为=$J$14*C$14^2+$J$15*$B15^2+$J$16*C$14*$B15+$J$17*C$14+$J$18*$B15+$J$19
将其复制到Matrix的其他单元格应该很容易。
此旁边的图表显示了我们的近似函数的结果。
现在我们必须准备解算器。解算器需要以某种方式进行优化。
因此,我们需要定义一个表示近似质量的函数。
我使用了最小平方值...在www上查看解释。
在C24:G28
范围内,我计算了从近似函数到原始数据的差异的平方。单元格C24具有公式=(C15-C5)^2
现在我们即将完成。只需将此公式复制到范围的其余部分,然后添加一个非常重要的单元格:
将范围C24:G28
的总和放在单元格H29中
该值是误差的总和,或更好地表示我们的近似函数与原始数据点的差异。
现在最重要的!!! 选择Cell H29并启动求解器加载项:
此窗口将弹出(抱歉,我的电脑上安装了德语Excel)
只需填写目标单元格$H$29
的值,目标值= 0和变量单元格(重要)$J$14;$J$19
按“解决”和.... tada多项式系数已更改,以使您的数据符合函数。
这是你一直在寻找的吗?
请注意 阿克塞尔
答案 1 :(得分:-2)
您可以谷歌搜索并试用ThreeDify Excel Grapher v4.5,这是一个包含带有自动方程式查找器的3D方程拟合器的excel插件。