2

我有 2 个数组,比如 X 和 Y。每个数组有 5 个元素。现在对于 (X,Y) 的每个可能组合,我都有一个 Z 值,所以 Z 是一个 5x5 矩阵。

我正在寻找一个公式,例如 z=f(x,y)。关于如何做到这一点的任何想法。

我尝试了 MS Excel 曲面图,但它没有在曲面图上给出任何方程或曲线拟合。

4

2 回答 2

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用计算公式的值填充范围。但在此之前,我们必须在 range 中定义多项式系数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 应该很容易将其复制到矩阵的其他单元格中。

旁边的图显示了我们的近似函数的结果。

现在我们必须准备求解器。求解器需要以某种方式进行优化。因此,我们需要定义一个函数来指示我们的近似值的质量。我使用了最小二乘值......查看www以获得解释。在这个范围内C24:G28,我计算了我们的近似函数与原始数据的差异的平方。单元格 C24 有公式=(C15-C5)^2

现在我们快要完成了。只需将此公式复制到范围的其余部分,然后添加一个非常重要的单元格:

将范围的总和C24:G28放在单元格 H29 中。这个值是误差的总和,或者更好地说是我们的逼近函数与原始数据点的差异。

在此处输入图像描述

现在最重要!!!选择单元格 H29 并启动求解器插件:

将弹出此窗口(抱歉,我的 PC 上安装了德语 Excel)

在此处输入图像描述

只需填写目标单元格的值$H$29,目标值=0和变量单元格(重要)$J$14;$J$19

按“求解”并.... tada 多项式系数已更改以使您的数据与函数相匹配。

这是,你一直在寻找什么???

亲切的问候阿克塞尔

于 2014-06-03T20:25:10.670 回答
-2

您可以谷歌搜索并尝试 ThreeDify Excel Grapher v4.5,这是一个 excel 插件,包括一个带有自动方程查找器的 3D 方程拟合器。

于 2015-01-31T03:49:29.613 回答