Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-24, 17:10   #1
zgygliang
初级会员
 
注册日期: 2008-12-26
年龄: 40
帖子: 4
声望力: 0
zgygliang 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

引用:
作者: 云龙九现 查看帖子
我看了一下,你这个最低有2次幂,最高有16次幂
可能用ployfit命令有些慢和浪费,但可能准确度要高些
如果你的x,z的值能够有8组或者比8组多的话,那就自己来编吧!
将系数当做是未知数,解一个8元方程,这个8元方程的解就是系数的值。
设系数为a1,a2,....a8.
已知的8组值为(...


那用ployfit命令怎么解呢?奇次幂的参数怎么处理?
zgygliang 当前离线   回复时引用此帖
旧 2009-03-25, 13:28   #2
云龙九现
初级会员
 
注册日期: 2009-03-20
年龄: 42
帖子: 26
声望力: 17
云龙九现 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

引用:
作者: zgygliang 查看帖子
那用ployfit命令怎么解呢?奇次幂的参数怎么处理?
不好意思,我大致看了一下,ployfit命令是连续的。我初步想了一下,是不是可以这样来用
设偶次多项式为
f(x)=a0+a2*x^2+a4*x^4+...+a(2n)*X^(2*n),那么f(x)是偶函数,也就是说f(-x)=f(x).

根据这一性质我们可以得到如下方法
设有一组数据x,y对应的是偶次多项式
那么我们拟合两次
第一次拟合
ployfit(x,y,16) %前提是x向量的长度要大于16,16为阶数
那么,我们得到的系数是
f(x)=a0+a1*x+a2*x^2+...+a15*x^15+a16*x^16; (1)
第二次拟合
ployfit(-x,y,16)
那么我们得到的系数是
f(-x)=a0'-a1’*x+a2'*x^2+...-a15'*x^15+a16'*x^16; (2)
那么(f(x)+f(-x))/2
就得到了偶数项的系数
(f(x)-f(-x))/2
就得到了奇数项的系数

不知道这样是不是可以,我没上机实践过,如果你上机试过了,请告知我结果,谢谢!
__________________
不到马里亚纳,不知道大海的深度
不到珠穆朗玛,不知道大山的高度
不到Labfans,不知道自己的无知
云龙九现 当前离线   回复时引用此帖
旧 2009-03-25, 16:45   #3
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

可将数据置上,代为拟合。
slgu 当前离线   回复时引用此帖
旧 2009-03-27, 09:58   #4
zgygliang
初级会员
 
注册日期: 2008-12-26
年龄: 40
帖子: 4
声望力: 0
zgygliang 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

引用:
作者: slgu 查看帖子
可将数据置上,代为拟合。
附件 1806

数据参见附件,有点大!正在试用其他方法,还是未果
上传的附件
文件类型: rar Data.rar (58.8 KB, 55 次查看)
zgygliang 当前离线   回复时引用此帖
旧 2009-03-28, 01:12   #5
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

该文件在打开时遇到问题,共有27200组数据,不知对否?
我用你的模型试了一下,可能模型不是很恰当,结果不太理想(运算时间较长,目前尚未完全出来)。
若按模型:
y=b1*x^2+b2*x^4+b3*x^6+b4*x^8+b5*x^10+b6*x^12+b7*x^14+b8*x^16+b9
则过程就简单多了,效果也可能更好些:
b=[-0.00043548209, 0.00034795208, 0.00020752636, -0.0006411563, 0.00047641925, -0.0001559222, 0.000022385353, -0.000001017432,0.00012507198]
离回归平方和:RSS=2.5114e-006
决定系数:R^2=0.98201
slgu 当前离线   回复时引用此帖
旧 2009-03-29, 16:50   #6
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

可以肯定,你所提供的模型是不恰当的,不可能得到好的拟合。
若用下列模型:
y=(b(9)+b(10)*x.^2)./(1+b(11)*x.^2).^.5+b(1)*x.^2+b(2)*x.^4+b(3)*x.^6+b(4)*x.^8+b(5)*x.^10+b(6)*x.^12+b(7)*x.^14+b(8)*x.^16;
则:b=
[-0.0012991399, 0.001264971, -0.00060826645, -0.00021489955, 0.0003667798, -0.00015156441, 0.000026028774, -0.0000015517482, 0.00013735908, 0.0068776143, 153.72281]

RSS =0.000001177982182
MSe = 4.3327e-011
R^2 = 0.99156
要比前述模型好一些。
slgu 当前离线   回复时引用此帖
旧 2009-03-29, 21:43   #7
zgygliang
初级会员
 
注册日期: 2008-12-26
年龄: 40
帖子: 4
声望力: 0
zgygliang 正向着好的方向发展
默认 回复: 非球面 高阶偶次拟合!

引用:
作者: slgu 查看帖子
可以肯定,你所提供的模型是不恰当的,不可能得到好的拟合。
若用下列模型:
y=(b(9)+b(10)*x.^2)./(1+b(11)*x.^2).^.5+b(1)*x.^2+b(2)*x.^4+b(3)*x.^6+b(4)*x.^8+b(5)*x.^10+b(6)*x.^12+b(7)*x.^1...
我那模型是一个标准曲线+标准曲线的偏离量(高阶项),
若我非得用这模型来拟合的话 请告诉我具体的方法一下(不管拟合效果怎样),能否把M文件转给我一下呢?供我参考学习一下好不?
我的mail:[email protected]


谢谢
zgygliang 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 16:30


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.