24小时热门版块排行榜    

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

dshuanger

木虫 (小有名气)

[求助] matlab非线性拟合模型参数,大神你在哪!

本人非计算模拟专业,小白一枚,但最近需要模拟参数,不知如何运用matlab求参数,顾求助各位大神。     
        模型表达式:
      y=a/E1 +a/E2[1-exp(-x/t)]+a*x/E3            
      其中:x=[2,5,10,15,30,60,120,200,300,550,700];
                 y=[8.66667,10,10.66667,12.66667,13.33333,15,15.33333, 16.66667,17.33333,18.33333,20];
                 a=2
       未知参数:E1,E2,t,E3     
不知道能否通过matlab拟合参数
请各位大神能鼎力相助,最好能给出代码或者计算方法,谢谢大家!

[ Last edited by dshuanger on 2013-11-5 at 11:06 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
29楼: Originally posted by 梦落在草地上 at 2015-01-21 16:23:42
您好,我明白了您刚刚提出的几种不一致的可能。我现在如果想得到在0<Y<100区间内的最小值,且对应X1,X2,X3值。请问在matlab里怎么实现它呢?...

以下面的数组为例:
X1=[45 45 40 40 35 35 30 30 25 25 20 20 15 15];
X2=[4 5 6 7 8 9 10 4 5 6 7 8 9 10];
X3=[125 75 25 150 100 50 0 150 100 50 0 125 75 50];
Y=[20.8 3.8 41.2 4.51 6.33 45.9 36.2 53.3 62.6 8.74 34.2 63 32.5 30.8];

代码:
CODE:
X1=[45 45 40 40 35 35 30 30 25 25 20 20 15 15];
X2=[4 5 6 7 8 9 10 4 5 6 7 8 9 10];
X3=[125 75 25 150 100 50 0 150 100 50 0 125 75 50];
Y=[20.8 3.8 41.2 4.51 6.33 45.9 36.2 53.3 62.6 8.74 34.2 63 32.5 30.8];
for i=1:length(Y)
if Y(i)>10 & Y(i)<50
YY(i)=Y(i);
else YY(i)=max(Y);
end
end
j=find(YY==min(YY));
Y_min=min(YY)
X1_j=X1(j)
X2_j=X2(j)
X3_j=X3(j)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
30楼2015-01-21 17:00:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 74 个回答

jerkwin

专家顾问 (正式写手)

不劳matlab, origin, 1stopt足矣
matlab非线性拟合模型参数,大神你在哪!
2013-11-04_212307.png

2楼2013-11-05 11:23:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主


dingd: 金币+1, 谢谢分享。 2013-11-05 16:37:58
y=2/e1 +2/e2/(1-exp(-x/t))+a*x/3;    // a=2
x=[2,5,10,15,30,60,120,200,300,550,700];
y=[8.66667,10,10.66667,12.66667,13.33333,15,15.33333, 16.66667,17.33333,18.33333,20];

相关系数(R): 1
相关系数之平方(R^2): 1
决定系数(DC): 0.999999999996653
卡方系数(Chi-Square): 1.64243431014082E-11

参数          最佳估算
----------        --------------
e1  =1.2090897803241
e2  =3.11591327892529
t   =0.00209072546506921

====== 输出结果 =====
No.         Observed y        Calculated y
1        8.66667            8.66666365993411
2        10        9.99999365993411
3        10.66667        10.6666636599341
4        12.66667        12.6666636599341
5        13.33333        13.3333236599341
6        15        14.9999936599341
7        15.33333        15.3333236599341
8        16.66667        16.6666636599341
9        17.33333        17.3333236599341
10        18.33333        18.3333236599341
11        20        19.9999936599341
3楼2013-11-05 11:54:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

你的 “+a/E2[1-exp(-x/t)]” 再明确一下为好。
4楼2013-11-05 11:56:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见