24小时热门版块排行榜    

查看: 1274  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cheng1378653

新虫 (初入文坛)

[求助] matlab M文件 给规定参数设个边界

Sample Text
t=[0.0833 0.5 1 2 4 8];
c=[2.2505 1.6489 0.2789 0.2412 0.1077 0.1035];
我用已知的两个函数模型拟合时出现了这种情况
(一)t=[0.0833 0.5 1 2 4 8];
c=[2.2505 1.6489 0.2789 0.2412 0.1077 0.1035];
myfun=inline('A(1)*exp(-A(2)*x)','A','x');
[A iter sse]=nlinfit(t,c,myfun,[1 1])
结果:A =
2.6400    1.4099
iter =
6
sse =
0.2891
(二):t=[0.0833 0.5 1 2 4 8];
c=[2.2505 1.6489 0.2789 0.2412 0.1077 0.1035];
myfun=inline('A(1)*exp(-A(2)*x)+A(3)*exp(-A(4)*x)','A','x');
[A iter sse]=nlinfit(t,c,myfun,[2.4 1.5 0.022 0.2])
结果:A =
2.6266    1.4510    0.0227   -0.2002
iter =
19
sse =
0.2734
但是我的这个函数有个要求,就是参数A的值要大于零,这样的话A(4)就不符合了
(三)还有一种情况就是,用二的方式,但我给另外的随意的初值,
结果:A =
0.8571    1.4100    1.7829    1.4098 A(1)+A(3)=2.64,A(2)基本上等于A(4)
iter =
6
sse =
0.2891
而这样的话就相当于把(一)的公式拆分成了两个一样模型的函数,与(一)没什么区别,我在用(二)计算式,我希望能够拟合出的结果中A(2)与A(4)不同,但是有还得是正值,所以我想给A(2)和A(4)设边界大于零
该怎么弄,我是matlab的菜鸟用户,请高手帮帮忙,谢谢!

[ Last edited by cheng1378653 on 2013-4-1 at 12:52 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cheng1378653

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 恩斯特 at 2013-04-01 16:19:45
在nlinfit后面的第4个选项可以不填的吗?

我一直都这么用的,我以为还是初学者
4楼2013-04-02 20:58:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

恩斯特

金虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
fegg7502: 金币+1, 鼓励交流 2013-04-02 08:58:35
在nlinfit后面的第4个选项可以不填的吗?
2楼2013-04-01 16:19:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lgycjpcqu

金虫 (正式写手)


fegg7502: 金币+1, 鼓励交流 2013-04-02 08:58:45
function E=fconstrain(a,t,c)
C=a(1).*exp(-a(2).*t)+a(3).*exp(-a(4).*t);
E=c-C;

命令窗口
clear
a0=[2.4 1.5 0.022 0];
LB=[-inf 0 -inf 0];
UB=[];
t=[0.0833 0.5 1 2 4 8];
c=[2.2505 1.6489 0.2789 0.2412 0.1077 0.1035];
options=optimset('lsqnonlin');
[A norm res ef]=lsqnonlin(@fconstrain,a0,LB,UB,options,t,c);
cfit=A(1).*exp(-A(2).*t)+A(3).*exp(-A(4).*t);
plot(t,c,'*',t,cfit,'rh')
legend('原始数据','拟合数据')
结果是
A =
   2.587176647067854   1.500899543303364  
   0.069042182557558   0.000000000000041

约束.jpg

3楼2013-04-01 19:30:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

lgycjpcqu的MATLAB代码就是正解。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
5楼2013-04-04 16:37:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] FileCode能看出啥? +8 要乐观耀哥 2026-08-10 26/1300 2026-08-13 12:01 by Tide man
[基金申请] 重要来源:本周末出结果 +9 瞬息宇宙 2026-08-12 9/450 2026-08-13 10:12 by Vivilian
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +9 家与远方 2026-08-10 14/700 2026-08-13 09:41 by 臭臭不臭01
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 好奇怪的filecode +5 布布和一二 2026-08-08 6/300 2026-08-12 16:11 by 云上清扬
[基金申请] filecode +13 documentary 2026-08-10 15/750 2026-08-12 15:56 by 云上清扬
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +8 Tide man 2026-08-10 9/450 2026-08-11 20:39 by beefly
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 分享一下我之前已中青C的计划书的filecode +3 布布和一二 2026-08-11 4/200 2026-08-11 15:20 by aasahr
[基金申请] 关于代码变化问题,想知道的进来 +17 且听虎啸 2026-08-07 24/1200 2026-08-10 18:35 by zhangduo2008
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
信息提示
请填处理意见