萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 2339|回复: 8

[求助] 抛物线拟合的matlab问题(求助)。。。

[复制链接]
发表于 2009-12-23 00:33 | 显示全部楼层 |阅读模式
专业问题讨论
有效期至:
专业:

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
我现在有16个数据点,想把他们拟合成抛物线,请问该怎样在MATLAB里面实现呢?

下面是抛物线的值  ,请注意这个抛物线是空间坐标内测量的。



x        y        z
1182.87        611.92        4463
1202.86        451.82        4463
1133.63        655.28        4443
1206.68        396.5        4443
1150.43        705.32        4423
1202.85        362.19        4423
1130.42        752.99        4403
1198.09        317.4        4403
1064.66        886.41        4343
1186.65        265.93        4343
1039.88        930.26        4303
1168.54        183.01        4303
1010.32        976.01        4263
1144.71        115.29        4263
996.97        996.97        4223
1124.69        66.72        4223
本人接触MATLAB仅有数天,还没有找到方向。希望前辈们多多指点。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-12-23 01:52 | 显示全部楼层
上网查找关键词curve fit。不过德国研究所我还没有见过有购买这个toolbox的,建议你用自己盗版的matlab。

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-12-23 09:30 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2009-12-28 11:25 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2010-1-2 22:04 | 显示全部楼层
如果你已经知道这个函数是一个抛物线的话,最好先给出x,y,z之间的表达式,可以带参数。

看到表达式之后,可以考虑采用哪种数据拟合的算法。 如果是线性函数的话,应该可以拟合出来,否则需要有一个接近真实解的初始猜测值。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2010-1-2 23:02 | 显示全部楼层
demo里面看看吧!肯定有的

你是要 有坐标 然后叫matlab 计算出你的函数是吗?

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2010-1-3 00:38 | 显示全部楼层
本帖最后由 ElberEis 于 2010-1-3 00:42 编辑

研究了一下你的问题。应该做出你要的结果了。

假设你的抛物线函数为:
z = a(1)*x.^2 + a(2)*x + a(3)*y.^2 + a(4)*y + a(5);

参考下面这个网页上的例子:
http://www.mathworks.com/support ... ml?solution=1-17YMU
它采用的就是普通的 Least Square method,利用了一下MATLAB自带的 lsqcurvefit 函数。似乎是内部计算了一下数值的Jacobian矩阵后得到的。 我在自己机器上运行了一下, 结果列在这里供你参考。不知道精度怎么样。

我采用的初始猜测值是
a0 = [100 100 100 100 4000];
自定义抛物线函数就是本帖开头那个。
得到的结果是:
参数a 数列:
-0.071175        78.117        -0.050872        42.998        3975.4
resnorm =  1.1607e+007

你看懂那个例子之后应该就不是很困难了。 如果需要修改后的代码再联系我。

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
 楼主| 发表于 2010-1-3 01:53 | 显示全部楼层
多谢你的回复。
我现在疑问就是你为什么能在未知函数的形状下,确定函数的的方程。
其实X Y Z 坐标的函数方程,唯一的联系就是时间。  xyz的坐标是同一时间一个点的3个坐标值。而且每个点的联系就是空间位置的依次移动。



多谢楼上和版主的回复。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2010-1-3 12:06 | 显示全部楼层
本帖最后由 ElberEis 于 2010-1-3 12:25 编辑

其实我并不知道你那个函数的控制方程。我只是假设了一个抛物面方程,来演示如何在MATLAB上实现2个自变量+1个因变量+多个参数的 Least Square 拟合。

回到你的问题,看来你的控制方程可能是 x(t),y(t),z(t)的表达式。 你需要首先给出Governing Equation. 如果x(t), y(t)和z(t)是不独立的,那应该和给出的方法差不多。如果他们相互独立的话, 那么其实就是每个函数相对时间进行拟合。那样的话应该简单得多。

另一点是, 如果是x(t),y(t)和z(t)的话,你必须给出时间 t 的采样信息。 也就是说,你的拟合数据应该是x--y--z--t
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+1, 2025-2-12 11:29 , Processed in 0.070153 second(s), 28 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表