24小时热门版块排行榜    

查看: 7223  |  回复: 20
本帖产生 1 个 计算强帖 ,点击这里进行查看

glazio

铁虫 (小有名气)

引用回帖:
7楼: Originally posted by dbb627 at 2011-11-25 23:22:39:
是可以改善的
[code]

A=[0.1001   3.5e06
0.1002      3.3e06
0.11        2.9e05
0.12        9.0e04
0.15        1.5e04
0.2        3.3e03
0.3        7.1e02
0.4        2.8e02
0.5        1.5e0 ...

这几天网络故障,好不容易盗网上线。。。

现在还剩一个问题,即
1. 我的目的是解决拟合参数共享的问题,才投入Origin的怀抱的。请问Matlab目前有解决这个问题的方案么?如果有的话请提示一二。
11楼2011-11-28 22:24:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

拟合参数共享?不太明白,简而言之还有其他方程要用到上面参数吗,这个可以自己构建一个目标函数,然后再对其优化,用最小二乘或者遗传算法求参数就可以了,这个还是比较容易实现的。见帖http://muchong.com/bbs/viewthread.php?tid=3751370&page=1#pid3104538
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
12楼2011-11-28 22:28:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

glazio

铁虫 (小有名气)

你给的帖子里的情况好像并不是我说的共享参数拟合。下面举个例子说明一下。

假如说在数据图中有两组实验数据集Y1和Y2,可以用某个含有三个参数a,b,c的方程y=f(x)描述。普通的拟合一般是用F(x)对数据集Y1和Y2分开拟合,这样会得到两组不同的参数(a1,b1,c1)和(a2,b2,c2)。
若假设数据集Y1和Y2的参数a是相同的,那么就应该使用共享参数拟合了,这样拟合的结果就应该是(a1,b1,c1)和(a1,b2,c2)。
13楼2011-11-29 22:38:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

glazio(金币+10): dbb627版主不愧是matlab神人,所有问题都得到回答,非常感谢! 2011-11-30 08:57:21
cenwanglai(计算强帖+1): 你的回复都挺好。不过我不熟悉,没有仔细看明白。就这里给一个EPI吧~ 2011-12-22 20:09:16
引用回帖:
13楼: Originally posted by glazio at 2011-11-29 22:38:41:
你给的帖子里的情况好像并不是我说的共享参数拟合。下面举个例子说明一下。

假如说在数据图中有两组实验数据集Y1和Y2,可以用某个含有三个参数a,b,c的方程y=f(x)描述。普通的拟合一般是用F(x)对数据集Y1和Y2 ...

这个没有问题
matlab可以做的
见下面的例子
CODE:
x=rand(1,7);
y1=2*x+3*sin(x)+6*x.^2;
y2=2*x+3*cos(x)+2*x.^2;%参数 2 3 6 2前面2 3共用
F=@(p,x)[p(1)*x+p(2)*sin(x)+p(3)*x.^2;p(1)*x+p(2)*cos(x)+p(4)*x.^2];
p = lsqcurvefit(F, [1 1 1 1], x,[y1;y2])

Local minimum found.

Optimization completed because the size of the gradient is less than
the default value of the function tolerance.




p =

    2.0000    3.0000    6.0000    2.0000
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
14楼2011-11-30 00:26:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

共享参数拟合问题,1stOpt应该是目前最高效也最易使用的工具了,建议试试!
15楼2011-12-04 21:50:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

715211229

木虫 (正式写手)

引用回帖:
3楼: Originally posted by dbb627 at 2011-11-25 20:14:26:
origin不常用,matlab可以拟合出较好的结果
代码如下
[code]


A=[0.1001       3.5e06
0.1002       3.3e06
0.11         2.9e05
0.12        9.0e04
0.15        1.5e04
0.2        3.3e03
0.3     ...

我用matlab cftool工具箱,怎么拟合无法进行?


我是蜗牛
16楼2011-12-20 06:01:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

呵呵,中文的matlab,很少见,这个有个参数cftool工具箱可能调不了,就是数据的归一化。
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
17楼2011-12-20 11:28:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

引用回帖:
16楼: Originally posted by 715211229 at 2011-12-20 06:01:11:
我用matlab cftool工具箱,怎么拟合无法进行?

呵呵,中文的matlab,很少见,你将归一化勾上,在调整初值试试。还有如果初值不合适,也肯能没有合适的结果。

[ Last edited by dbb627 on 2011-12-20 at 11:32 ]
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
18楼2011-12-20 11:29:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

715211229

木虫 (正式写手)

引用回帖:
18楼: Originally posted by dbb627 at 2011-12-20 11:29:15:
呵呵,中文的matlab,很少见,你将归一化勾上,在调整初值试试。还有如果初值不合适,也肯能没有合适的结果。
[ Last edited by dbb627 on 2011-12-20 at 11:32 ]

不知道哪里出错了

matlab技术论坛提供的一个界面汉化包,最高到r200a


» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : MATLAB 2009a(7.8.1)汉化包.rar
  • 2011-12-20 19:56:05, 1.36 M
我是蜗牛
19楼2011-12-20 19:56:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

你用命令行运行能出结果吗?
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
20楼2011-12-20 20:28:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 glazio 的主题更新
信息提示
请填处理意见