声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3214|回复: 5

[数学理论] 最小二乘非线性多元拟合问题--法矩阵病态如何处理

[复制链接]
发表于 2009-3-25 10:37 | 显示全部楼层 |阅读模式

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

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最小二乘非线性多元拟合问题--法矩阵病态如何处理最近要把一个非线性的模型进行线性化处理。
函数形式:
V=x*(0.5+(100 000*x/(100 000+x)*f)*2f*ln ( 0.5* ( 1+exp ((-1/(100000*x/(100 000+x)*f)*2f) ) ) ) / (100 000+x)
其中x范围10 000~20 000;
       y范围100*1e-12~500*1e-12
       f范围100~500
(x,y,f)均匀取了100个离散的点。
拟合形式如下:
V’=a0 + a1*x+a2*x^2+a3*y+a4*x*y+a5*x^2*y+a6*f+a7*xf+a8*x^2*f+a9*y*f

由于在此方面也就是刚刚学习,因此仅限于最基本的最小二乘法的拟合,求出法矩阵A,然后再用A\b获得a0~a9,但是用matlab计算A\b时,出现了waring,也就是说法矩阵A近似病态的问题,因此虽然有解,但是感觉好像不能用。
看到数值计算教材上有讲基于正交函数拟合的方法,但是考虑到这时多元拟合,因此无从下手。

关于对法矩阵A病态的问题有什么好的解决方法,或者能否基于正交函数对该非线性模型进行拟合,还请高手们指导下,同时如果有关于多元拟合这方面的参考书的话,希望高手们给介绍下,不胜感激。      
未命名.jpg
回复
分享到:

使用道具 举报

发表于 2009-3-26 17:29 | 显示全部楼层
解线性病态方程组最好用PCG,gmres,svd等算法
 楼主| 发表于 2009-3-26 21:51 | 显示全部楼层

回复 沙发 cleverblue 的帖子

谢谢回复,我试下这几个方法。
发表于 2009-3-27 10:38 | 显示全部楼层
法矩阵+mu*I即可。
mu是一个很小的数,I是单位阵。
这也是LM法对高斯牛顿法的改进所在。
 楼主| 发表于 2009-3-27 16:35 | 显示全部楼层

回复 地板 logxing 的帖子

谢谢您的回复
法矩阵+mu*I    这样处理以后在用matlab进行求逆计算的时候确实再没有出现waring了。

不过我是学自动化的,对“数值计算”这方面学习不是太深入,对于为何要进行这样处理以及“LM法”不是很明白,因此特别想了解(法矩阵+mu*I  )的实质含义。因此希望您能够推荐一些关于 这个方法(LM法)的一些详细资料,不胜感谢。

cuierpeng168@163.com

[ 本帖最后由 littlebird2009 于 2009-3-27 17:47 编辑 ]
发表于 2009-3-28 14:34 | 显示全部楼层
原帖由 littlebird2009 于 2009-3-27 16:35 发表
谢谢您的回复
法矩阵+mu*I    这样处理以后在用matlab进行求逆计算的时候确实再没有出现waring了。

不过我是学自动化的,对“数值计算”这方面学习不是太深入,对于为何要进行这样处理以及“LM法”不是很明白,因 ...

这个叫做正则化,mu叫正则化因子。LM本来是用于解决非线性最小二乘法问题的,mu用于控制搜索方向在牛顿方向和负梯度方向的比重。正则化会降低收敛速度但是可以避免矩阵病态而且不会影响最终收敛结果。

不过你这个其实是线性最小二乘法,此时muI的意义我没想过。我想是微扰的含义,不然只要两组数据相同就无法求逆了。看下面这个21页,可能是处理线性最小二乘法更为标准的方法。
http://shlx.cup.edu.cn/mathweb/Nanalysis/teach_plan/24.ppt
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-26 00:52 , Processed in 0.078595 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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