| 查看: 593 | 回复: 2 | |||
| 当前主题已经存档。 | |||
| 【有奖交流】积极回复本帖子,参与交流,就有机会分得作者 identify 的 8 个金币 | |||
[交流]
【求助】: MATLAB中lsqnonlin的应用
|
|||
|
请达人给看看: 引用完24组数据后调用函数 beta0=[191.2 6392 41770 60920 -2.902 29640 -0.504 -3559 -1.692 2001]; [beta,resnorm]=lsqnonlin(@OptObjFunc,beta0,[],[],[],Y,T,Nin,Nout,yco,yco2,yH2) function f=OptObjFunc(beta,Y,T,Nin,Nout,yco,yco2,yH2) global K1 K2 Kco Kco2 KH2 jco jco2 jH2 jm jH2O 然后是一系列计算 K1=beta(1)*exp(-beta(3)/(R*T)); ............... 是后我写的function f是 f=[Y(1,: )-(Nin.*yco2-W.*K2.*fco2.*(fH2^3).*(1-B2)./((1+Kco.*fco+Kco2.*fco2+KH2.*fH2)^4))./Nout; Y(2,: )-W.*(K2.*fco2.*(fH2^3).*(1-B2)./((1+Kco.*fco+Kco2.*fco2+KH2.*fH2)^4)+K1.*fco.*(fH2^2).*(1-B1)./((1+Kco.*fco+Kco2.*fco2+KH2.*fH2)^3))./Nout]; 运行时提示的错误是 ??? Error using ==> optim\private\lsqncommon User supplied function ==> OptObjFunc failed with the following error: Error using ==> mrdivide Matrix dimensions must agree. Error in ==> lsqnonlin at 163 [x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ... Error in ==> Kinetics_m at 30 [beta,resnorm]=lsqnonlin(@OptObjFunc,beta0,[],[],[],Y,T,Nin,Nout,yco,yco2,yH2) 我实在是不知道该怎么去改了..... [ Last edited by identify on 2008-5-29 at 10:38 ] |
» 猜你喜欢
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有152人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
数学教学论硕士可以读数学物理博士吗?
已经有0人回复
德国亥姆霍兹Hereon中心汉堡分部招镁合金腐蚀裂变SCC课题方向2026公派博士生
已经有4人回复
澳门大学 应用物理及材料工程研究院 潘晖教授课题组诚招博士后
已经有11人回复
求助NH4V4O10晶体的CIF文件
已经有0人回复
allenhero1228
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1617.5
- 帖子: 201
- 在线: 29.7小时
- 虫号: 420486
- 注册: 2007-07-10
- 性别: GG
- 专业: 化工/二甲醚催化剂研究
★ ★ ★ ★
identify(金币+2,VIP+0):谢谢了,再多给我点意见吧
lei0736(金币+2,VIP+0):谢谢
identify(金币+2,VIP+0):谢谢了,再多给我点意见吧
lei0736(金币+2,VIP+0):谢谢
|
[beta,resnorm]=lsqnonlin(@OptObjFunc,beta0,[],[],[],Y,T,Nin,Nout,yco,yco2,yH2) 传递给目标函数的参数里面里面是不是少了个W 其次,matlab给你的提示是矩阵维数不对,也就是说进行计算时要有两个矩阵相乘,乘方前面必须有.,否则就不是每个向量里面的元素分别乘方了,你把这该下应该就可以了,还有就是你输入的变量必须维数全部相同 你的function里面是两个目标函数,我不知道这会不会有影响,建议你先弄成一个函数试试 你是做动力学模型的吧,是不是甲醇合成的模型 |
2楼2008-05-27 09:52:03
3楼2008-05-28 10:46:04












回复此楼
