epiphany517 发表于 2007-10-22 19:25

求助啊~~资金投资优化组合决策问题......急....

<p>市场上有几种资金(股票,债券)Si(i=1,….n)供投资者选择,现一公司有M万元的资金可用做一段时期的投资,公司财务分析人员对几种资产进行了评估,估算出此时期内购买Si平均收益率为ri,并预测出购买Si的风险损失率为qi,考虑到投资越分散,总风险越小,公司决定用此资金购买若干资产,总体风险可用所投资的Si中最大的一个风险来度量。 <br/><br/>购买Si时要付交易费,费率pi,当购买不超过给定值ui时,交易费按购买ui计算。另外,假定同期银行存款利率&nbsp;&nbsp;(&nbsp;&nbsp;=5%),既无交易费,有无风险。 <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;n=4时,数据如图 <br/><br/>Si&nbsp;&nbsp;&nbsp;&nbsp;ri(%)&nbsp;&nbsp;&nbsp;&nbsp;qi(%)&nbsp;&nbsp;&nbsp;&nbsp;pi(%)&nbsp;&nbsp;&nbsp;&nbsp;ui(%) <br/><br/>S1&nbsp;&nbsp;&nbsp;&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;103 <br/><br/>S2&nbsp;&nbsp;&nbsp;&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;198 <br/><br/>S3&nbsp;&nbsp;&nbsp;&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;52 <br/><br/>S4&nbsp;&nbsp;&nbsp;&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;40 <br/><br/>要求为此公司设计一种最佳投资组合方案,用给定的资金M,有选择购买若干资产或存在银行生息,使净收益率尽可能大,总风险尽可能小。&nbsp;<br/><br/>各位大哥大姐啊,这道题怎么用matlab建模啊....... <br/><br/>用惩罚函数做了,结果感觉不太对,哪位能帮一下啊~~~~~~任何方法都行</p>

epiphany517 发表于 2007-10-22 19:26

<p>%编写惩罚函数pen.m&nbsp; <br/>function&nbsp;y=pen(x)&nbsp; <br/>&nbsp;s=0;&nbsp; <br/>&nbsp;for&nbsp;i=1:1:length(x)&nbsp; <br/>&nbsp;s=s+x(i)&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp;y=min(0,min(x)).^2+(1-s).^2;&nbsp; <br/>%编写交易费用函数h.m&nbsp; <br/>function&nbsp;y=h(x,u,p)&nbsp; <br/>&nbsp;if(x&gt;u)&nbsp; <br/>&nbsp;y=x*p&nbsp; <br/>&nbsp;else&nbsp; <br/>&nbsp;if(i&gt;0)&nbsp; <br/>&nbsp;y=x*p&nbsp; <br/>&nbsp;else&nbsp; <br/>&nbsp;y=0&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp;%编写目标函数f.m&nbsp; <br/>&nbsp;function&nbsp;y=f(x)&nbsp; <br/>&nbsp;global&nbsp;w;&nbsp; <br/>&nbsp;global&nbsp;M;&nbsp; <br/>&nbsp;r=;&nbsp; <br/>&nbsp;q=0.01*;&nbsp; <br/>&nbsp;p=0.01*;&nbsp; <br/>&nbsp;u=;&nbsp; <br/>&nbsp;penalty=1e-25;&nbsp; <br/>&nbsp;t=0;&nbsp; <br/>&nbsp;for&nbsp;i=1:1:4&nbsp; <br/>&nbsp;t=t+h(x(i)*M,u(1),p(i));&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp; <br/>&nbsp;t=t-M*sum(r.*x);&nbsp; <br/>&nbsp;y=w*t-(1-w)*max(x.*q)*M+penalty*pen(x);&nbsp; <br/>&nbsp; <br/>&nbsp;for&nbsp;k=1:1:11&nbsp; <br/>&nbsp;w=(k-1)*0.1;&nbsp; <br/>&nbsp;s=5000;&nbsp; <br/>&nbsp;for&nbsp;j=1:1:50&nbsp; <br/>&nbsp;c=rand(1,5);&nbsp; <br/>&nbsp;d=sum&copy;;&nbsp; <br/>&nbsp;x0=c/d;&nbsp; <br/>&nbsp;=fminsearch('f',x0);&nbsp; <br/>&nbsp;if(f(x)&lt;s)&nbsp; <br/>&nbsp;s=f(x);&nbsp; <br/>&nbsp;xc=x;&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp;t=0;&nbsp; <br/>&nbsp;for&nbsp;i=1:1:4&nbsp; <br/>&nbsp;t=t=h(xc(i)*M,u(i),p(i));&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp;FR(k)=f(xc);&nbsp; <br/>&nbsp;net(k)=t+M*sum(r.*xc);&nbsp; <br/>&nbsp;risk(k)=M*max(xc.q);&nbsp; <br/>&nbsp;xn(k,:)=xc;&nbsp; <br/>&nbsp;end&nbsp; <br/>&nbsp;figure(1);&nbsp; <br/>&nbsp;plot(w,xn(:,1),'.',w,xn(:2),'-',w,xn(:3),'--',w,xn(:,4),'\-',w,xn(:,5),'\');&nbsp;&nbsp;<br/><br/>&nbsp;自己找了这个方法,但是最后为什么画不出表啊~~~~~~<cc></cc>
        </p><p>&nbsp;</p>

jjcx20031007 发表于 2007-10-26 12:12

不会啊

风萧萧 发表于 2008-6-25 16:52

<p>这个问题你解决了吧?</p><p>哦 都过去快一年了诶 </p><p>姐姐 我拿到了同样的题目 你可以帮我吗??</p>
页: [1]
查看完整版本: 求助啊~~资金投资优化组合决策问题......急....