3D曲线拟合

2024-03-10

我有离散的规则网格a,b点及其对应的c值,我进一步对其进行插值以获得平滑的曲线。现在,根据插值数据,我还想创建一个用于曲线拟合的多项式方程。如何用多项式拟合 3D 图?

我尝试在 MATLAB 中执行此操作。我使用 MATLAB (r2010a) 中的曲面拟合工具箱对 3 维数据进行曲线拟合。但是,如何在 MATLAB/MAPLE 或任何其他软件中找到最适合一组数据的公式。有什么建议吗?最有用的还有一些可供查看的真实代码示例、PDF 文件、网络等。

这只是我的数据的一小部分。

a = [ 0.001 .. 0.011];

b = [1, .. 10];

c = [ -.304860225, .. .379710865]; 

提前致谢。


要将曲线拟合到一组点上,我们可以使用普通最小二乘 https://en.wikipedia.org/wiki/Ordinary_least_squares回归。有一个解决方案页面 http://www.mathworks.com/support/solutions/en/data/1-1AVW5/MathWorks 描述了该过程。

作为示例,让我们从一些随机数据开始:

% some 3d points
data = mvnrnd([0 0 0], [1 -0.5 0.8; -0.5 1.1 0; 0.8 0 1], 50);

As @BasSwinckels https://stackoverflow.com/a/18552769/97160表明,通过构建所需的设计矩阵 https://en.wikipedia.org/wiki/Design_matrix, 您可以使用mldivide http://www.mathworks.com/help/matlab/ref/mldivide.html or pinv http://www.mathworks.com/help/matlab/ref/pinv.html to 解决超定系统 http://www.mathworks.com/help/matlab/math/systems-of-linear-equations.html#f4-2064表示为Ax=b:

% best-fit plane
C = [data(:,1) data(:,2) ones(size(data,1),1)] \ data(:,3);    % coefficients

% evaluate it on a regular grid covering the domain of the data
[xx,yy] = meshgrid(-3:.5:3, -3:.5:3);
zz = C(1)*xx + C(2)*yy + C(3);

% or expressed using matrix/vector product
%zz = reshape([xx(:) yy(:) ones(numel(xx),1)] * C, size(xx));

接下来我们可视化结果:

% plot points and surface
figure('Renderer','opengl')
line(data(:,1), data(:,2), data(:,3), 'LineStyle','none', ...
    'Marker','.', 'MarkerSize',25, 'Color','r')
surface(xx, yy, zz, ...
    'FaceColor','interp', 'EdgeColor','b', 'FaceAlpha',0.2)
grid on; axis tight equal;
view(9,9);
xlabel x; ylabel y; zlabel z;
colormap(cool(64))

如前所述,我们可以通过向自变量矩阵添加更多项来获得高阶多项式拟合(A in Ax=b).

假设我们想要拟合一个具有常数项、线性项、交互项和平方项 (1, x, y, xy, x^2, y^2) 的二次模型。我们可以手动执行此操作:

% best-fit quadratic curve
C = [ones(50,1) data(:,1:2) prod(data(:,1:2),2) data(:,1:2).^2] \ data(:,3);
zz = [ones(numel(xx),1) xx(:) yy(:) xx(:).*yy(:) xx(:).^2 yy(:).^2] * C;
zz = reshape(zz, size(xx));

还有一个辅助功能x2fx http://www.mathworks.com/help/stats/x2fx.html在统计工具箱中,有助于构建几个模型阶数的设计矩阵:

C = x2fx(data(:,1:2), 'quadratic') \ data(:,3);
zz = x2fx([xx(:) yy(:)], 'quadratic') * C;
zz = reshape(zz, size(xx));

终于有一个很棒的功能了polyfitn http://www.mathworks.com/matlabcentral/fileexchange/34765-polyfitnJohn D'Errico 的文件交换允许您指定所涉及的各种多项式阶数和项:

model = polyfitn(data(:,1:2), data(:,3), 2);
zz = polyvaln(model, [xx(:) yy(:)]);
zz = reshape(zz, size(xx));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3D曲线拟合 的相关文章

  • 如何在Matlab中自定义轮廓线?

    我正在准备一个等高线图 我应该在其中突出显示特定级别的等高线 例如 我的轮廓线值位于 1 和 1 之间 我想突出显示与值 0 相对应的线 我尝试使用以下过程来执行此操作 M c contourf longitude latitude del
  • Matlab:掩码/创建一个知道其原点且具有一定半径的圆形 roi

    只是一个简单的问题 我有一张图像 并且提取了某个点 特征 我知道每个帧中该点的坐标 说 x1 和 y1 我需要一个圆形 ROI 形式 该点在图像上具有我选择的半径 我尝试了 impoly 和 roipoly 当我知道图像中的要点时 不知道如
  • 如何让MCR启动时间快

    我将 matlab 程序转换为 net 程序集 即 dll 文件 我制作了一个控制台 C 应用程序 添加了 dll 文件并从 php 调用它 每次调用 exe 时都会调用 MCR 如何使 MCR 在服务器启动时初始化 并且即使在一段时间后调
  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 不等间隔时间序列的移动平均线

    我有一个证券交易所股票价格的数据集 时间 价格 但数据点之间的间隔并不相等 从 1 到 2 分钟不等 在这种情况下计算移动平均值的最佳实践是什么 如何在Matlab中实现呢 我倾向于认为 点的权重应该取决于自上一个点以来的最后时间间隔 Ma
  • 如何找到在matlab中重复的矩阵的每一行的索引?

    我想找到矩阵中所有有重复项的行的索引 例如 A 1 2 3 4 1 2 3 4 2 3 4 5 1 2 3 4 6 5 4 3 要返回的向量将是 1 2 4 很多类似的问题建议使用unique函数 我已经尝试过 但我能得到的最接近我想要的功
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • Python lmfit 在加权拟合后将卡方减小得太小

    我正在 Python 2 7 中运行 fitlmfit通过以下代码使用一些测试数据 我需要权重为1 y 使用 Leven Marq 例程 我已经定义了权重并在这里使用它们 from future import division from n
  • 我需要转义该 MATLAB 字符串中的字符吗?

    我想在 MATLAB 中调用以下 bash 命令 grep Up to test linux vision1 1 log awk print 7 I use system 在MATLAB中 但结果有错误 gt gt status strin
  • 括号中的波形符字符

    在 MATLAB 中 以下代码执行什么操作 m func returning matrix 波浪号运算符 的作用是什么 在 Matlab 中 这意味着不要将函数中相应的输出参数分配到赋值的右侧 因此 如果func returning mat
  • 在python中仅拟合具有多个参数的函数的一个参数

    在 python 中 我有一个有很多参数的函数 我想将此函数拟合到一个数据集 但仅使用一个参数 其余参数我想自行提供 这是一个例子 def func x a b return a x x b for b in xrange 10 popt
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标

随机推荐

  • 将 GeoDataFrame 多边形转换为 kml 文件

    我有一个 geopandas GeoDataFrame 其中包含各种多边形和颜色 我用它来绘制气象数据 我问的另一个问题here https stackoverflow com questions 35516318 plot colored
  • JS 代理 HTML5 画布上下文

    我希望代理画布 API 这样我就可以测试抽象方法是否确实绘制到画布上 但是我遇到了代理后出现错误的问题 strokeStyle setter called on an object that does not implement inter
  • 相对于页面滚动背景

    这是我第一次使用 Stack Overflow 所以如果我的问题有点冗长 我深表歉意 我有点为难 我想创建这种视差滚动效果 其中背景图像 其高度大于窗口的高度 始终与页面上的进度直接相关地滚动 例如 当您向下滚动页面 25 时 背景图像应该
  • 如何使用 JavaScript 在 IE 6 7 8 9 中分离事件

    这是部分代码 不是完整版本 我有一个荧光笔 可以在以下情况下突出显示特定的 html 元素 鼠标悬停 我也有一个点击事件和监听器 我的问题是 荧光笔事件 侦听器使用 Internet Explorer v6 v7 v8 v9 时不分离 我究
  • 始终在非视网膜显示屏上使用的图像的视网膜版本

    In Cocoa application I ve got 16x16 and 32x32 2x version of an image When the image is displayed in NSImageView Mac OS X
  • MongoDb:避免过多的磁盘空间

    我有一个已分配85GB空间的数据库 我使用 show dbs 命令获得了这个大小 但是当我使用 db stats 时 我得到的存储大小为 63GB 查看文档后 我发现 dat mongo db 为创建的数据库分配了一个大小 然后填充了实际数
  • 使用 Play 核心库验证非 Google Play 应用安装

    一些背景 我们大多数人可能都遇到过这样的情况ResourceNotFoundException当我们迁移到安卓应用程序包释放方法 很明显 问题是由于侧面加载应用程序造成的 参考这里 https stackoverflow com quest
  • 我可以在编辑器编辑器中自定义标题标签(h1,h2,h3 ...)吗?

    我使用了 redactor 编辑器的插件来更改文本的字体大小和字体颜色 除了标题之外 它在其他标签中工作正常 不明白为什么 我试过这个 redactor redactor focus true plugins fontcolor fonts
  • 如何使用 ElementRef 和 Renderer2 将角度指令分配给 html 元素?

    我正在 Angular 6 中开发拖放应用程序 在拖放操作中 我正在动态创建新的 HTML 元素 DIV textarea 等元素 并为其分配样式 属性 默认 x 和 y 坐标通过使用应用程序的 ElementRef 和 Renderer2
  • DatabaseGenerateOption.Identity 不生成 Id

    使用 EntityFramework 代码优先 我创建了一个简单的Foo桌子 这是我的实体 public class Foo DatabaseGenerated DatabaseGeneratedOption Identity public
  • 如何解决 django.db.utils.IntegrityError: (1364,“字段‘名称’没有默认值”)

    我在尝试为 Django 项目创建超级用户时收到此错误 不确定哪个表需要默认值 name column 为我的 Django 项目成功创建迁移后 我运行了python manage py createsuperuser创建超级用户并得到以下
  • 以编程方式在 Eclipse 中导入库

    有没有办法以编程方式将库 Jar 文件 放入 Eclipse 项目中 到目前为止 我已经成功地使用以下命令以编程方式对其进行了外部引用 IPath path new Path C myfolder mylibrary jar librari
  • 如何将 ggplot2 grobs 与数据关联起来?

    例如 给定一个点的 ggplot 您如何找出给定点对应的数据行 样例图 library ggplot2 p lt ggplot mtcars aes mpg wt geom point facet wrap gear 我们可以得到包含点的
  • EXC_BAD_ACCESS绘制阴影

    我试图向我的 UIView 添加阴影 但在我的 drawRect 方法中我得到了 EXC BAD ACCESS 我用的是ARC void drawRect CGRect rect CGColorRef lightColor UIColor
  • cakephp 模型关联/与同一张表连接[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一张包含父母和孩子的桌子 我希望
  • Spring Security:@PreAuthorize仅与@RequestMapping一起使用

    我有一个 Spring MVC 控制器 想使用 Spring Method Security 来保护它 在下面的例子中it works RequestMappingand PreAuthorize注释相同的方法 Controller pub
  • CoordinatorLayout 不工作

    我正在尝试实施一个CoordinatorLayout从新公布的Android 设计支持库 http android developers blogspot co uk 2015 05 android design support libra
  • 根据相关模型使用查询参数进行过滤

    我正在尝试根据相关模型过滤集合 我已经尝试了多种方法 但无法使其工作 App BetroundStatsController Ember ArrayController extend needs betround queryParams q
  • WCF 请求处理线程是否敏捷?

    我看过很多关于敏捷 Asp Net 请求处理如何的文档 我想知道 WCF 请求处理的情况是否相同 我们可以相信启动 Wcf 请求处理的线程将完成它吗 我正在维护一个 Wcf 应用程序 其中很多地方都使用 ThreadStatic 变量 虽然
  • 3D曲线拟合

    我有离散的规则网格a b点及其对应的c值 我进一步对其进行插值以获得平滑的曲线 现在 根据插值数据 我还想创建一个用于曲线拟合的多项式方程 如何用多项式拟合 3D 图 我尝试在 MATLAB 中执行此操作 我使用 MATLAB r2010a