《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 929|回复: 4
收起左侧

[提问] 1stopt5.0运行问题

[复制链接]
发表于 2016-4-14 15:20:41 | 显示全部楼层 |阅读模式
Parameter delt;


Constant t=313,rous1=1.510,ts1=305,ps1=5670,rr=8.314,m1=44,rous2=1.269,ts2=696,ps2=4964,m2=60600,n=11;



ConstStr r10=ps1*m1*0.1/(rous1*ts1*rr),vs1=10*ts1*rr/ps1,tt1=t/ts1,pp1=x1/ps1,rou1=rour1/rous1,r20=ps2*m2*0.1/(rous2*ts2*rr),vs2=10*ts2*rr/ps2,
tt2=t/ts2,pp2=x1/ps2,rou2=rour2/rous1,phy1=(y/rous1)/(y/rous1+(1-y)/rous2),phy2=1-phy1,
nn1=(y/m1)/(y/m1+(1-y)/m2),nn2=1-nn1,
ps=phy1^2*ps1+2*phy1*phy2*(1-delt)*(ps1*ps2)^0.5+phy2^2*ps2,
phy10=(y/(rous1*vs1))/(y/(rous1*vs1)+(1-y)/(rous2*vs2)),phy20=1-phy10,vs=phy10*vs1+phy20*vs2,r=(r10*nn1*vs1+r20*nn2*vs2)/vs,miu=vs1/vs2,
ts=t*((phy1/tt1+miu*phy2/tt2)/(phy1+miu*phy2)-phy1*phy2*(ps1+ps2-2*(1-delt)*(ps1*ps2)^0.5)*vs/rr/t),
tt=t/ts,pp=x1/ps,rous=(nn1*m1+nn2*m2)/r/vs,rou=rour/rous,r1=r10*vs1/vs,r2=r20*vs2/vs,

rou^2=-pp-tt*(ln(1-rou)+(1-1/r)*rou),

f=(y/rous1+(1-y)/rous2)*rous1*(1-(x2/rr/t-ln(phy1)-r10*rou*((ps1+ps2-2*(1-delt)*(ps1*ps2)^0.5)*vs1/rr/t)*phy2^2-r10*(-rou/tt1+pp1/rou/tt1+1/rou*((1-rou)*ln(1-rou)+rou/r10*ln(rou))))*r2/(r2-r1));



Dataset;
x1,x2,y=
8        -9976.306215        0.01
58        -7382.449107        0.015
108        -18449.65148        0.1
158        -21121.57506        0.13
208        -22657.99114        0.2
258        -23795.14152        0.3
308        -24715.13384        0.4
358        -25495.3133        0.5
408        -26176.64088        0.6
458        -26783.75045        0.7
500        -27248.30466        0.8




EndDataSet;



MinFunction 100*Sum(i=1:n,x1,x2,y)(Abs(y-f)/y)/n;
在做一个复杂的非线性隐函数的拟合,其中只有一个模型参数delt,其余的包括rour在内的参数均是中间变量,不知为什么拟合出来总是将rour作为参数,请高手解答一下!万分感谢
发表于 2016-4-16 22:55:21 | 显示全部楼层
rou^2=-pp-tt*(ln(1-rou)+(1-1/r)*rou),

两边都有rou,不能这样定义吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-18 10:26:30 | 显示全部楼层
版主您好
我这是个复杂的函数,需要根据pp和tt以及r计算出rou,rou再用于下一个表达式,实在不知道这样的拟合应该怎么做,如果rou不能放在ConstStr里,那还有别的什么方法么?
回复 支持 反对

使用道具 举报

发表于 2016-4-19 14:05:21 | 显示全部楼层
公式里有“rou=rour/rous”,rour是什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-23 12:36:23 | 显示全部楼层
rour是一个中间变量,其实就是一个已知x1,x2和y,其关系为:
y=f(delt,x1,x2,rou)
rou=g(delt,x1,rou)
非线性拟合其中的delt
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2019-8-23 21:52 , Processed in 0.080740 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表