找回密码
 欢迎注册
查看: 19418|回复: 7

[求助] 复值函数的拟合

[复制链接]
发表于 2011-5-17 10:27:25 | 显示全部楼层 |阅读模式

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

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

×
现在需要拟合LD公式:$a+\sum_{i=1}^k \frac{A_i}{B_i-x^2+ \sqrt{-1}x C_i}$,x是实变量。k可变,至少是3,大了以后更精确,当然参数变多,拟合更困难。现在的问题是mathematica拒绝对分式拟合。如果自己计算残差寻找极小值,则首先是参数太多,花费的时间长,另外就是不稳定,比方先自由寻找,找到一组参数(使残差极小),然后令其中的几个参数为刚才找到的参数,调整剩下的参数,结果找到的新参数全然不同。也就是说找到的可能是残差极小值而非最小值
各位有什么好办法?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-5-17 12:14:34 | 显示全部楼层
1# Buffalo
mathematica拒绝对分式拟合


能描述一下具体的情况吗
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-5-17 15:47:36 | 显示全部楼层
可以试下1stOpt,直接支持对复数的拟合,也不需分解实部虚部。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-5-18 08:42:34 | 显示全部楼层
1# Buffalo


能描述一下具体的情况吗
wayne 发表于 2011-5-17 12:14


比如
s = Table[100/(100. + 5 I + i) + 0.01*Random[], {i, 1, 50}];
FindFit[s, a/(b + x), {a, b}, x]

给出的结果是 The function value XXX is not a list of real numbers with dimensions XX at XX
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-5-18 08:43:02 | 显示全部楼层
可以试下1stOpt,直接支持对复数的拟合,也不需分解实部虚部。
youyouyou 发表于 2011-5-17 15:47


4.0以上才可以,但是4.0现在还没出来
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-6-4 16:19:07 | 显示全部楼层
4# Buffalo
的确是个问题。
我们常说的曲线拟合都是指 real 的。
更何况这里有多个分式,我想最省心的方法还是你所说的  “自由寻找”,即 随机搜索法。
不过,我们可以让搜索智能化一点,比如 遗传算法 。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-6-5 09:44:31 | 显示全部楼层
1stOpt 4.0 早就出來快1年了。

Forcal也支持复数函数拟合。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-13 06:39 , Processed in 0.044528 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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