- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一旦回答后可能会变得完全显而易见的问题之一,但现在我陷入困境。
我正在尝试根据结果数据集和产生它的四个参数重新创建一个方程。
数据位于矩阵中,最后一列是结果。
我看到了numpy.polyfit允许 y 具有多个值,所以我尝试了...
result=data[:,-1]
variables=data[:,0:-1]
factors=numpy.polyfit(result,variables,2)
结果是:
[[-4.69652251e-01 8.09734523e-01 1.93673361e-02 -1.62700198e+00]
[ 1.42092582e+01 -7.06024402e+00 -9.94583683e-02 1.11882833e+01]
[ 7.44030682e+00 2.08161127e+01 2.65025708e-01 1.14229534e+01]]
我假设结果系数的形式为
[[A^2,B^2,C^2,D^2]
[A ,B, C, D]
[const,const,const,const]]
这有点令人费解,特别是因为如果我将系数应用于输入数据,我似乎没有得到任何接近结果数据的东西。
首先,我对 polyfit 结果的含义是否正确?
第二,为什么有四个不同的常量?我应该将它们加在一起,还是什么?
这是否只是解决A与结果,然后B与结果等,而不是整体的组合多维最小化? (如果是这样,我该怎么做?)
或者我只是误导了polyfit首先在做什么?
最佳答案
Polyfit docs告诉我们
Several data sets of sample points sharing the same x-coordinates can be fitted at once by passing in a 2D-array that contains one dataset per column.
让我们来理解一下。首先,让我们考虑一个例子。假设我们在平面上有 3 个点,并且想要通过 1 次多项式对它们进行插值。这意味着我们想要通过给定的 3 个点绘制一条线,并且该线到该点的平方距离应该最小。假设我们有 3 个点:(1, 1)、(2, 2)、(3, 3)
。显然,可以毫无错误地找到经过这些点的直线,这条直线就是y = x
。如果我们用y = a * x + b
来思考直线,那么a = 1, b = 0
。
好。现在让我们从 numpy polyfit 的示例开始:
X = np.array([1, 2, 3])
y = np.array([1, 2, 3])
a, b = np.polyfit(X, y, deg=1)
(a, b)
>>> (0.9999999999999997, 1.2083031466395714e-15)
a * 1000 + b
>>> 999.9999999999997
不错。现在让我们用矩阵而不是 y 的一个向量来举例。文档告诉我们,我们只是有多条具有相同 X 坐标的线。让我们检查一下。我们采用两组点:(1, 1), (2, 2), (3, 3)
以及适合它们的直线 y = x
和 (1, 2), (2, 4), (3, 6)
。拟合线为y = 2x
(检查!)。
我们正在转置第二个矩阵,因为 polyfit 需要它。
X = np.array([1, 2, 3])
y = np.array([[1, 2, 3], [2, 4, 6]]).T
coeff = np.polyfit(X, y, deg=1)
coeff
>>> array([[1.00000000e+00, 2.00000000e+00],
[1.20830315e-15, 2.41660629e-15]])
我们看到一个矩阵,第一行 (1, 2)
和第二行 (0, 0)
。因此,第一列包含第一行的系数,第二列包含第二行的系数。让我们检查一下:
a, b = coeff[:, 0]
a * 10 + b
>>> 9.999999999999998
a, b = coeff[:, 1]
a * 100 + b
>>> 199.99999999999994
因此,您可以传递具有相同 X 坐标的多条线并同时获得多个拟合。例如,它对于转换整组数据的特征很有用。
关于python - 使用 numpy.polyfit 提取多变量方程系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54503836/
在我的一门类(class)中,我接到了一项家庭作业,要求我们在谷歌上搜索 Metapost 语言并找到该语言中方程求解功能的用途。 在浏览了 Metapost 用户手册的前十多页后,我发现只有一个原因
你能帮我在 this page 上的谷歌图表上隐藏趋势线上的工具提示(方程)吗? ? 谢谢 以下是我正在使用的图表选项: var options = { title: 'Weight
我正在尝试将 TeXWorks 编辑器配置为使用与 TeXMaker 相同的语法着色。但是,TexWorks 使用正则表达式来指定应该着色的内容。不幸的是,它没有数学的默认设置。 我想匹配 $ 之间的
我刚开始玩 GHCi。我看到列表生成器基本上解决了给定集合中的方程式: Prelude> [x | x [0.01,0.2..2.0] [1.0e-2,0.2,0.39,0.580000000000
是否有可以使用的图形表达式生成器或方程编辑器的 Java 开源实现? 最好有在线演示,或者至少有屏幕截图。 最佳答案 取决于方程的类型。 如果您正在考虑简单的多项式,您可以尝试 Java Expres
我有四个文本输入字段,在用户输入相关值后,我必须进行 JavaScript 计算以将它们全部相加 我使用: var total = Number(value1) + Number(value2) +
为什么这段代码有两个不同的输出(GCC 4.5.1)(我已经评论了重要的行): int main() { bool a = 1; bool b = 1; bool c = 1;
如果标题含糊不清,我深表歉意,但我不知道如何为我的情况命名。我正在为使用 GPS 的 iPhone 编写一个应用程序。在 didUpdateLocations: 方法中,我针对任意大小的变量测试位置的
我正在尝试计算表中学生的 BMI,四舍五入到三位数: +-------+--------+--------+ | fname | weight | height | +-------+--------
我们可以使用 deSolve R 中的常微分方程 (ODE) 包,但是,我找不到解决两个嵌套 ODE 方程的方法,假设` b'(t) = beta - k*b(t); a'(t) = alpha -b
我有一个 boolean 方程,想简化它。帮忙解决一下。 bool needLoad = isA || (!isA && !isB); 之后我使用 if (needLoad){ if (
我很感兴趣,建模工具(在我的例子中是 OpenModelica 和 Dymola - 建模语言 Modelica)如何求解方程组(线性和/或非线性)。这些工具专为求解微分代数方程而设计。我知道一点将微
Julia:当我有绘图时如何找到最佳拟合曲线/方程?我有一个用 map 绘制的图,但我需要找到一个适合它的二次方程? 最佳答案 正如评论中所说,有一个情节在这里并不真正相关;只有数据本身是。您可以使用
我一直在尝试将像 100, 45 这样的输入放入文本框中,并通过单击按钮通过我的方程式运行它,但我不知道该怎么做。单击按钮后,它应该发布答案作为警报。请帮忙。谢谢。 function Rad(a, b
Julia:当我有绘图时如何找到最佳拟合曲线/方程?我有一个用 map 绘制的图,但我需要找到一个适合它的二次方程? 最佳答案 正如评论中所说,有一个情节在这里并不真正相关;只有数据本身是。您可以使用
有人可以向我解释为什么下面的代码会打印字符“u”吗? int p = 9; int q = 5; int r = p - q; double x = p; double y = q; St
我想以某种方式缩短我的 ODE 方程,因为否则代码会变得困惑。我尝试过使用辅助函数,例如这里的 fe() ,但这不起作用。下面的代码只是一个例子,欢迎任何建议!谢谢! # Import the req
我无法创建正确的文件。程序中的方程不会迭代,它只会根据请求的数量写入相同的总和。 for 循环。 #include #include #include #define LEN 256 int m
我有 2 个指向一些 Point 结构的指针。我想计算两点之间的距离(我不需要计算它的根)所以我有这个: w[0]=X[l]; w[1]=X[l+1]; d=m(w[0]->x
我有一个具有 CSV 上传功能的网站,它将 CSV 中的所有内容推送到临时表,然后分成较小的表。 目前,我有一个显示页面,在 HTML 表格中显示所有这些信息。然而,有些部分需要有公式化的表示。换句话
我是一名优秀的程序员,十分优秀!