声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2275|回复: 3

[编程技巧] 如何运用nlinfit拟合下列式子

[复制链接]
发表于 2007-4-2 22:40 | 显示全部楼层 |阅读模式

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

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

x
现有一组数据:
x 0.9     0.85      0.8       0.77      0.7
y 2.5e3  2.4e4  1.43e5  1.96e5  4.57e5
和拟合公式:
y=[d*(1-x/k)]^(1/c);
我尝试用非线性最小二次拟合函数nlinfit来拟合:
建立model.m文件:
function yy=model(be,x)
d=be(1);
k=be(2);
c=be(3);
yy=(d*(1-q/k))^(1/c);
在输入窗口:
x=[0.9 0.85 0.8 0.77 0.7];
y=[7.8240 10.0858 11.8706 12.1859 13.0342];
be=[72 1 0.3];  %根据经验,d k c 应该是这三个数左右
befit=nlinfit(x,y,'model',be)
奇怪的是得出的结果要么是虚数要么就不收敛。

恳请各位高手帮帮忙,指点一下,不胜感激。
回复
分享到:

使用道具 举报

发表于 2007-4-3 09:18 | 显示全部楼层
1."yy=(d*(1-q/k))^(1/c);" q 改为 x;
2. "点"运算要注意;
3. 改用lsqcurvefit拟合.
你自己先试试,若还有问题,再来讨论.
%%%----------------------------------------------%%%
拟合的结果为:
befit = 77.4116    1.1318    1.2950
(由于你给的数据不同,我用的是后一组)
%%%----------------------------------------------%%%

[ 本帖最后由 xjzuo 于 2007-4-3 09:20 编辑 ]

评分

1

查看全部评分

发表于 2007-4-3 09:59 | 显示全部楼层
Matlab的拟合功能不是其强项,对初始值依赖严重,容易陷入局部最优,建议用1stOpt,拟合领域,应是目前最好的(不需猜初值)。以此题为例,如果不考虑参数的物理意义,仅从数学角度出发,1stOpt计算的结果如下:

lgx517 的第一组数据:

优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 9930.86115200453
残差平方和(SSE): 493110016.101964
相关系数(R): 0.998148272369382
相关系数之平方(R^2): 0.996299973633982
决定系数(DC): 0.996292266505493
卡方系数(Chi-Square): 5850.02034591196
F统计(F-Statistic): 269.706547539484

参数        最佳估算
----------        -------------
d                  5211.6613684955
k                  0.900002755332214
c                  0.541384051977391

lgx517 的第二组数据:

优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
计算结束原因: 达到收敛判断标准
均方差(RMSE): 0.177834761522278
残差平方和(SSE): 0.158126012028427
相关系数(R): 0.995399670562352
相关系数之平方(R^2): 0.99082050415564
决定系数(DC): 0.990819975816768
卡方系数(Chi-Square): 0.00700819166869625
F统计(F-Statistic): 108.932174909359

参数        最佳估算
----------        -------------
d                  942205.465851518
k                  0.91784570636359
c                  4.77854124264628

如果d值有范围限制,可以加上约束条件;反之,最优解的d值与楼主希望的就相差很大了:lol
 楼主| 发表于 2007-4-3 11:20 | 显示全部楼层
谢谢大家的帮助。
再次感谢xjzuo的帮助。:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-3 05:40 , Processed in 0.064491 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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