24小时热门版块排行榜    

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

小木虫zb

木虫 (正式写手)

[求助] 求助matlab拟合方程组

遇到个方程组,不知道怎么用matlab拟合其中的参数,求助大神。k1=0.45967,n1=1/0.33824,k2=0.40308,n2=1/0.38477,拟合求解n11,n12,k12,n22,n21,k21
方程组如下
q1=(k1*c1^(1/n11 +1/n1 ))/(c1^(1/n11 )+k12*c2^(1/n12 ) )
q2=(k2*c2^(1/n22 +1/n2 ))/(c2^(1/n22 )+k21*c1^(1/n21 ) )
源数据如下
  c1            q1          c2            q2
0.04556        0.04352        0.099        0.03592
0.10253        0.08542        0.12602        0.08207
0.2056        0.17075        0.27154        0.16137
0.6889        0.30201        0.87702        0.27525
1.51941        0.38387        1.81968        0.34115
2.40038        0.45855        2.72298        0.41266
3.37753        0.51955        3.82469        0.45595
6.32386        0.60045        6.74548        0.54047
9.51436        0.64661        9.89625        0.59228
12.75747        0.68528        13.15723        0.62842
16.07689        0.7131        16.59229        0.63979
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫zb

木虫 (正式写手)

引用回帖:
12楼: Originally posted by dingd at 2013-01-14 09:06:19
OpenLu是自由软件,语法很独特,可以试试,下面是运行10次的结果:

1        0.2415713813936236        0.2187283508881072        0.1585717524811563        -0.1684031366859553        -0.1865313849989084        0.1367183991381485
2        -1.119609019 ...

谢谢,我去看看这个软件
13楼2013-01-14 16:43:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
小木虫zb: 金币+15, ★★★★★最佳答案 2013-01-10 09:52:54
CODE:
function zbzbzbzb
data=[ 0.04556        0.04352        0.099        0.03592   %  c1,q1,c2,q2
0.10253        0.08542        0.12602        0.08207
0.2056        0.17075        0.27154        0.16137
0.6889        0.30201        0.87702        0.27525
1.51941        0.38387        1.81968        0.34115
2.40038        0.45855        2.72298        0.41266
3.37753        0.51955        3.82469        0.45595
6.32386        0.60045        6.74548        0.54047
9.51436        0.64661        9.89625        0.59228
12.75747        0.68528        13.15723        0.62842
16.07689        0.7131        16.59229        0.63979];
xdata=[data(:,1),data(:,3)];
ydata=[data(:,2),data(:,4)];
x0=[0.2,0.2,0.2,9314,106,0.6]; %n11,n12,k12,n22,n21,k21
[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata)
y=myfun(x,xdata)
end

function y=myfun(x,xdata)
c1=xdata(:,1);
c2=xdata(:,2);
n11=x(1);
n12=x(2);
k12=x(3);
n22=x(4);
n21=x(5);
k21=x(6);
k1=0.45967;
n1=1/0.33824;
k2=0.40308;
n2=1/0.38477;
q1=(k1*c1.^(1/n11 +1/n1 ))./(c1.^(1/n11 )+k12*c2.^(1/n12 ) );
q2=(k2*c2.^(1/n22 +1/n2 ))./(c2.^(1/n22 )+k21*c1.^(1/n21 ) );
y=[q1,q2];
end

showmethemoney
2楼2013-01-09 11:45:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
csgt0: 金币+2, 谢谢 2013-01-09 15:58:11
小木虫zb: 金币+5, ★★★很有帮助 2013-01-10 08:53:05
用1stOpt求解试试:
CODE:
Constant  k1=0.45967,n1=1/0.33824,k2=0.40308,n2=1/0.38477;
Variable c1,q1,c2,q2;
SharedModel;
Function q1=(k1*c1^(1/n11 +1/n1 ))/(c1^(1/n11 )+k12*c2^(1/n12 ));
         q2=(k2*c2^(1/n22 +1/n2 ))/(c2^(1/n22 )+k21*c1^(1/n21 ));
Data;
  c1            q1          c2            q2
0.04556        0.04352        0.099        0.03592
0.10253        0.08542        0.12602        0.08207
0.2056        0.17075        0.27154        0.16137
0.6889        0.30201        0.87702        0.27525
1.51941        0.38387        1.81968        0.34115
2.40038        0.45855        2.72298        0.41266
3.37753        0.51955        3.82469        0.45595
6.32386        0.60045        6.74548        0.54047
9.51436        0.64661        9.89625        0.59228
12.75747        0.68528        13.15723        0.62842
16.07689        0.7131        16.59229        0.63979

均方差(RMSE): 0.0335802018362698
残差平方和(SSE): 0.0248078590180215
相关系数(R): 0.997283667098149
相关系数之平方(R^2): 0.994574712660733
决定系数(DC): 0.994566132239987
F统计(F-Statistic): 36.2326353309996

参数                  最佳估算
--------------------        -------------
n11        0.241571501600743
k12        0.158571836379447
n12        0.218728458244284
n22        -0.168403298883327
k21        0.136718576047343
n21        -0.186531568585624
3楼2013-01-09 13:56:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫zb

木虫 (正式写手)

引用回帖:
2楼: Originally posted by csgt0 at 2013-01-09 11:45:59
function zbzbzbzb
data=;
xdata=;
ydata=;
x0=; %n11,n12,k12,n22,n21,k21
= lsqcurvefit(@myfun,x0,xdata,ydata)
y=myfun(x,xdata)
end

function y=myfun(x,xdata)
c1=xdata(:,1);
c2=xdata(:,2); ...

运行不出来,出现错误

360截图20130110092051698.jpg

4楼2013-01-10 09:21:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见