| 查看: 753 | 回复: 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文件哪里有问题? |
» 猜你喜欢
关于Filecode分析方法
已经有5人回复
2019年青年基金涵评意见,大家看看几个A,几个B?
已经有8人回复
不应该看fileCode
已经有6人回复
好奇怪的filecode
已经有6人回复
FileCode能看出啥?
已经有21人回复
长年满屏的广告,版主太不责任了。基金也等的急
已经有4人回复
filecode
已经有15人回复
应该是93bebmhtak前后十一个字符比较关键
已经有35人回复
职称评审,求友友推荐见刊最快的期刊
已经有4人回复
奇怪,两个人的filecode固定段从头到尾一模一样
已经有10人回复










回复此楼