声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6274|回复: 24

[编程技巧] 帮忙拟合个曲线

[复制链接]
发表于 2008-4-18 17:48 | 显示全部楼层 |阅读模式

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

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

x
大家帮忙拟合个曲线吧,多谢了。求Matlab代码
我可以帮助大家查外文文献,我这方面权限挺高,呵呵
谢谢!
1.jpg
回复
分享到:

使用道具 举报

发表于 2008-4-18 18:11 | 显示全部楼层

回复 楼主 的帖子

先两边取ln,然后在用2次曲线拟合

评分

1

查看全部评分

 楼主| 发表于 2008-4-18 18:17 | 显示全部楼层
恩,说的对,我试试,那就是再用一个变量,让它等于ln(y/C)
发表于 2008-4-18 19:08 | 显示全部楼层
matlab里面有曲线拟合工具cftool,自己拟合吧。
发表于 2008-4-18 22:19 | 显示全部楼层
我已经帮你拟合了。结果在仿真论坛里。自己去看
发表于 2008-4-18 22:33 | 显示全部楼层
 楼主| 发表于 2008-4-19 08:19 | 显示全部楼层
就是,麻烦版主帮忙演示一下,我也看不到结果

原帖由 花如月 于 2008-4-18 22:33 发表

这种做法我不太赞同,何必舍近求远。
发表于 2008-4-19 10:40 | 显示全部楼层
General model:
       f(x) = a*exp(b*x+c*x^2)
Coefficients (with 95% confidence bounds):
       a =       3.248  (-6.367, 12.86)
       b =       3.505  (-4.614, 11.62)
       c =      -0.111  (-5.255, 5.033)

Goodness of fit:
  SSE: 1.147
  R-square: 0.9998
  Adjusted R-square: 0.9995
  RMSE: 1.071

[ 本帖最后由 huright 于 2008-4-19 10:49 编辑 ]
nh.JPG

评分

1

查看全部评分

发表于 2008-4-19 11:29 | 显示全部楼层
呵呵,自己是新手,刚学习了一下,呵呵
 楼主| 发表于 2008-4-19 13:27 | 显示全部楼层
非常感谢huright 的答案,我想知道在Matlab里面怎么实现,而不仅仅是答案,再次感谢huright 的答案,不知是否能讲的详细一些,我想我们论坛很多人都会遇到类似的问题,谢谢啦

原帖由 huright 于 2008-4-19 10:40 发表
General model:
       f(x) = a*exp(b*x+c*x^2)
Coefficients (with 95% confidence bounds):
       a =       3.248  (-6.367, 12.86)
       b =       3.505  (-4.614, 11.62)
       c =      -0.111  (- ...
发表于 2008-4-19 14:08 | 显示全部楼层

回复 10楼 的帖子

他用的是工具箱
发表于 2008-4-19 20:09 | 显示全部楼层
原帖由 suannai 于 2008-4-19 13:27 发表
非常感谢huright 的答案,我想知道在Matlab里面怎么实现,而不仅仅是答案,再次感谢huright 的答案,不知是否能讲的详细一些,我想我们论坛很多人都会遇到类似的问题,谢谢啦


步骤如下,有不妥的地方还望指点:
第一步:在Command Window中输入cftool命令,出现Curve Fitting Tool窗口;
第二步:在Command Window中输入您的X、Y数据,X=[0.17 0.38 0.65 1.05];Y=[5.24 12.83 30.04 114];
第三步:在Curve Fitting Tool窗口选择Data按钮,出现Data窗口,在X Data下拉列表框中选择X,在Y Data下拉列表框中选择Y,然后点击Creat data set按钮,最后点击Close,关闭窗口;
第四步:在Curve Fitting Tool窗口选择Fitting按钮,出现Fitting窗口,点击New fit按钮,在Data set下拉列表框中选择上一步建立的Data set,在Type of fit下拉列表框中选择Custom Equations,点击New equation按钮,出现Creat Custom Equation窗口,选择General Equations选项卡,在里边输入自己要拟合的函数,输完之后点击OK,回到Fitting窗口,点击中间的一个Apply按钮,结果就会出现在Results框内。

评分

1

查看全部评分

 楼主| 发表于 2008-4-21 13:05 | 显示全部楼层
非常感谢ch_j1985 的回答,说的很详细,我有两个问题:1、一般曲线拟合要设置初值,请问Maltab这个工具是怎么考虑初值的?如果初值改变是不是结果也变了?
2、还是那个问题,怎么判断拟合精度?



原帖由 ch_j1985 于 2008-4-19 20:09 发表


步骤如下,有不妥的地方还望指点:
第一步:在Command Window中输入cftool命令,出现Curve Fitting Tool窗口;
第二步:在Command Window中输入您的X、Y数据,X=[0.17 0.38 0.65 1.05];Y=[5.24 12.83 30.04 11 ...

[ 本帖最后由 suannai 于 2008-4-21 13:55 编辑 ]
发表于 2008-4-21 13:23 | 显示全部楼层

回复 13楼 的帖子

实在不好意思啊,我也是跟着8楼的帖子学的,你提的两个问题,我也不是太清楚,你可以看看Matlab帮助文件,或者是问问8楼的主人:@(
发表于 2008-4-21 18:36 | 显示全部楼层
如果想实现程序化,建议lsqcurvefit,是一个很好的通用拟合手段,但需要猜测初值,多解时会出现和fslove命令同样的问题。具体操作可以doc查看
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-14 20:14 , Processed in 0.105753 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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