| 查看: 774 | 回复: 0 | ||
[求助]
fminsearch 分段隐函数参数拟合的问题
|
|
1. 需要估计参数的函数为分段函数,且为隐函数。 2. 已知实验数据v=[0 0.3 0.4 0.5 0.6 0.7 1],s=s=[0 0.01238 0.0385 0.0366 0.0188 0.009 0.0012], 拟合函数里面的四个参量p(1),p(2),p(3),p(4). 3.我自己写的程序 m文件为:function E=myfun(p,Z) v=[0.3 0.4 0.5 0.6 0.7 1]; s=[0.01238 0.0385 0.0366 0.0188 0.009 0.0012]; if (v(:,1)<1-1/(1+p(2))^3) Z=2*(p(1)./0.0012).*v(:,1).*(1+(s./(1-(1/(1+p(2))^3))).^p(3)-(v./(1-(1/(1+p(2))^3))).^p(4))./(3-v)-s./0.0012; else if (v(:,1)>=1-1/(1+p(2))^3) Z=(1-(1+p(2))^3.*(1-s)).*(1-v./0.0012)./(v./0.0012+0.0865.*(1-v./0.0012))+(1+p(2))^3.*(1-s).*(1-(2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012))./((2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012)+0.0865*(1-(2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012)))+(1-(1+p(2))^3.*(1-s)).*(1-(v./0.0012))./((v./0.0012)+0.0865.*(1-v./0.0012))+(1+p(2))^3.*(1-s).*(1-(2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012))./((2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012)+0.0865*(1-(2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012)))+(1-(1+p(2))^3.*(1-s)).*(1-(v./0.0012))./((v./0.0012)+0.827.*(1-v./0.0012))+(1+p(2))^3.*(1-s).*(1-(2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012))./((2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012)+0.827*(1-(2+(1/(1+p(2)))^3)./(2-2*(1/(1+p(2)))^3)*(0.0012./p(1)).*(v./0.0012))); end end E=sum((Z).^2); 运行程序: p0=[0.14 0.31 2.1 0.0002]; opt=optimset('TolFun',1e-10,'TolX',1e-10); [p,fval,exitflag,output]=fminsearch(@myfun,p0,opt) 4.存在的问题: (1)隐函数的目标函数我直接设定为此隐函数可以吗? (2)计算结果一直不对,我分析是m文件调用数据时只调用了x,v的第一组数据,m文件哪里有问题? |
» 猜你喜欢
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有5人回复
【长期招聘】复旦大学 AI 制药实验室 博士后招聘
已经有10人回复
各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧
已经有4人回复
越来越担心硕士毕业后没有竞争力了
已经有15人回复
申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请
已经有3人回复










回复此楼