24小时热门版块排行榜    

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

xxz903

金虫 (小有名气)

[求助] matlab数据拟合求助!!希望高手帮忙写一下matlab的程序 谢谢了!!

自变量 m,因变量y1,y2;
需要拟合的参数t12,t21,q1,q2,r1,r2,h
其中z=10;
x1=m/(m+h);
x2=1-x1;
o1=x1*r1/(x1*r1+x2*r2);
o2=x2*r2/(x1*r1+x2*r2);
b1=x1*q1/(x1*q1+x2*q2);
b2=x2*q2/(x1*q1+x2*q2);
l1=0.5*z*(r1-q1)-(r1-1);
l2=0.5*z*(r2-q2)-(r2-1);
需要拟合的方程:
y1=ln(o1/x1)+0.5*z*q1*ln(o1/b1)+o2*(l1-r1*l2/r2)-q1*ln(b1+b2*t21)+b2*q1*(t21/(b1+b2*t21)-t12/(b2+b1*t12))-ln(r1/r2)-05*z*q1*ln(q1*r2/(q2*r1))-(l1-r1*l2/r2)+q1*ln(t21)-q1*(1-t12);

y2=ln(o2/x2)+0.5*z*q2*ln(o2/b2)+o1*(l2-r2*l1/r1)-q2*ln(b2+b1*t12)+b1*q2*(t12/(b2+b1*t12)-t21/(b1+b2*t21))-ln(r2/r1)-05*z*q2*ln(q2*r1/(q1*r2))-(l2-r2*l1/r1)+q2*ln(t12)-q2*(1-t21);
数据:
0        0        0
0.1        -0.673344553        -0.003214304
0.2        -0.783071888        -0.005447496
0.3        -0.841647189        -0.008713882
0.4        -0.869884359        -0.010990339
0.5        -0.884307686        -0.014309599
0.6        -0.889162064        -0.018687569
0.7        -0.889162064        -0.02207116
0.8        -0.88673193        -0.025484701
0.9        -0.879476759        -0.029975034
1        -0.869884359        -0.038731848
1.2        -0.850971266        -0.042636996
1.4        -0.830113036        -0.051995295
1.6        -0.807436327        -0.061533872
1.8        -0.783071888        -0.071257081
2        -0.759286983        -0.081169452
2.5        -0.701179352        -0.107972916
3        -0.650087691        -0.136153773
3.5        -0.599656837        -0.165810242
4        -0.553385238        -0.197052419
4.5        -0.512493681        -0.227286842
5        -0.47320876        -0.260553522
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xxz903

金虫 (小有名气)

引用回帖:
2楼: Originally posted by csgt0 at 2012-08-21 11:39:11
程序大概这样,初值得你自己调了

function xxz
data=;
xdata=data(:,1);  %Im
ydata=data(:,2:3);  %
x0=ones(1,7);    %t12,t21,q1,q2,r1,r2,h

options= optimset('MaxFunEvals',5000,'Maxiter',1000) ...

如果我想让这几个参数随机在-10到10取100次初值然后进行计算,然后在结果中找到最优解再进行画图  我改怎么修改这个程序??谢谢你了
4楼2012-08-21 14:30:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xxz903: 金币+10, ★★★★★最佳答案 2012-08-21 14:05:54
程序大概这样,初值得你自己调了
CODE:
function xxz
data=[
0.1        -0.673344553        -0.003214304
0.2        -0.783071888        -0.005447496
0.3        -0.841647189        -0.008713882
0.4        -0.869884359        -0.010990339
0.5        -0.884307686        -0.014309599
0.6        -0.889162064        -0.018687569
0.7        -0.889162064        -0.02207116
0.8        -0.88673193        -0.025484701
0.9        -0.879476759        -0.029975034
1        -0.869884359        -0.038731848
1.2        -0.850971266        -0.042636996
1.4        -0.830113036        -0.051995295
1.6        -0.807436327        -0.061533872
1.8        -0.783071888        -0.071257081
2        -0.759286983        -0.081169452
2.5        -0.701179352        -0.107972916
3        -0.650087691        -0.136153773
3.5        -0.599656837        -0.165810242
4        -0.553385238        -0.197052419
4.5        -0.512493681        -0.227286842
5        -0.47320876        -0.260553522];
xdata=data(:,1);  %Im
ydata=data(:,2:3);  %
x0=ones(1,7);    %t12,t21,q1,q2,r1,r2,h

options= optimset('MaxFunEvals',5000,'Maxiter',1000);
%lb=[10,20,0,0];
%ub=[10000,10000,100,1000];
lb=[];
ub=[];
[x,resnorm]=lsqcurvefit(@myfun,x0,xdata,ydata,lb,ub,options)
y=myfun(x,xdata);
plot(xdata,ydata,'g',xdata,y,'r')
end

function F=myfun(x,xdata)  %x=[]
t12=x(1);
t21=x(2);
q1=x(3);
q2=x(4);
r1=x(5);
r2=x(6);
h=x(7);
m=xdata;
z=10;
x1=m./(m+h);
x2=1-x1;
o1=x1*r1./(x1*r1+x2*r2);
o2=x2*r2./(x1*r1+x2*r2);
b1=x1*q1./(x1*q1+x2*q2);
b2=x2*q2./(x1*q1+x2*q2);
l1=0.5*z*(r1-q1)-(r1-1);
l2=0.5*z*(r2-q2)-(r2-1);
y1=log(o1./x1)+0.5*z*q1*log(o1./b1)+o2*(l1-r1*l2/r2)-q1*log(b1+b2*t21)...
     +b2*q1.*(t21./(b1+b2*t21)-t12./(b2+b1*t12))-log(r1/r2)...
     -05*z*q1*log(q1*r2/(q2*r1))-(l1-r1*l2/r2)+q1*log(t21)-q1*(1-t12);
y2=log(o2./x2)+0.5*z*q2*log(o2./b2)+o1*(l2-r2*l1/r1)-q2*log(b2+b1*t12)...
     +b1*q2.*(t12./(b2+b1*t12)-t21./(b1+b2*t21))-log(r2/r1)...
     -05*z*q2*log(q2*r1/(q1*r2))-(l2-r2*l1/r1)+q2*log(t12)-q2*(1-t21);
F=[y1,y2];
end

showmethemoney
2楼2012-08-21 11:39:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xxz903

金虫 (小有名气)

引用回帖:
2楼: Originally posted by csgt0 at 2012-08-21 11:39:11
程序大概这样,初值得你自己调了

function xxz
data=;
xdata=data(:,1);  %Im
ydata=data(:,2:3);  %
x0=ones(1,7);    %t12,t21,q1,q2,r1,r2,h

options= optimset('MaxFunEvals',5000,'Maxiter',1000) ...

牛啊!终于能算了啊  我试试啊~有问题再联系你啊  谢谢了
3楼2012-08-21 14:05:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

引用回帖:
4楼: Originally posted by xxz903 at 2012-08-21 14:30:14
如果我想让这几个参数随机在-10到10取100次初值然后进行计算,然后在结果中找到最优解再进行画图  我改怎么修改这个程序??谢谢你了...

两种方法
1、你可以使用matlab里的globalsearch或者multistart来进行,但是需要先构建问题结构,你可以看帮助里的例子。
2、第2种方法你可以做100次循环,每次算完后保留x和残差,最后取残差较小的值。
如果你的参数有范围,可以在lb里设置下限,在ub里设置上限
showmethemoney
5楼2012-08-21 15:30:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 281求调剂(0805) +3 烟汐忆海 2026-03-16 8/400 2026-03-18 00:47 by 烟汐忆海
[考研] 本人考085602 化学工程 专硕 +16 不知道叫什么! 2026-03-15 18/900 2026-03-17 17:05 by ruiyingmiao
[考研] 11408 一志愿西电,277分求调剂 +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[考研] 东南大学364求调剂 +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by 木瓜膏
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 318求调剂 +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[考研] 277材料科学与工程080500求调剂 +3 自由煎饼果子 2026-03-16 3/150 2026-03-16 14:10 by 运气yunqi
[考研] 中科大材料与化工319求调剂 +3 孟鑫材料 2026-03-14 3/150 2026-03-14 20:10 by ms629
[考研] 265求调剂 +4 威化饼07 2026-03-12 4/200 2026-03-14 17:23 by userper
[考研] 招收0805(材料)调剂 +3 18595523086 2026-03-13 3/150 2026-03-14 00:33 by 123%、
[考研] 308求调剂 +5 是Lupa啊 2026-03-11 5/250 2026-03-13 22:13 by JourneyLucky
[考研] 一志愿西南交大,材料专硕317求调剂 +5 lx8568 2026-03-11 5/250 2026-03-13 21:43 by peike
[考研] 26调剂/材料科学与工程/总分295/求收留 +9 2026调剂侠 2026-03-12 9/450 2026-03-13 20:46 by 18595523086
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 301求调剂 +6 Liyouyumairs 2026-03-11 6/300 2026-03-13 20:11 by JourneyLucky
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 求调剂 +3 程雨杭 2026-03-12 3/150 2026-03-13 15:06 by JourneyLucky
[考研] 321求调剂(食品/专硕) +3 xc321 2026-03-12 6/300 2026-03-13 08:45 by xc321
[考博] 26读博 +4 Rui135246 2026-03-12 10/500 2026-03-13 07:15 by gaobiao
信息提示
请填处理意见