24小时热门版块排行榜    

查看: 1639  |  回复: 11
本帖产生 1 个 计算强帖 ,点击这里进行查看

suyan200326

新虫 (初入文坛)

[求助] 求Matlab 高手改进程序 可付费

用MATLAB自己写了个MLE 估计, 由于数据量比较大
发现如果完全不出错跑完该程序需要60天, 求高手帮忙改进。
抱歉 目前金币紧缺 如果有高手能解决问题  可付费 先谢谢啦   


[ Last edited by suyan200326 on 2012-7-13 at 16:20 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

onesupeng

金虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★
fegg7502: 金币+5, 计算强帖+1, 应助指数+1, 多谢指导 2012-07-23 18:27:24
你这个用matlab没有太大的优化空间,最多是把1.1中的一些项手动合并一下等等。比如singma^2,因为用到几次,所以公式之前用个变量存下来之后用。

如果是我来做,我选择用Fortran或者C,优化编译或者并行一下,很快
长期招收博士生,参见http://fsl-unsw.com
2楼2012-07-17 08:24:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

suyan200326

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by onesupeng at 2012-07-17 08:24:25
你这个用matlab没有太大的优化空间,最多是把1.1中的一些项手动合并一下等等。比如singma^2,因为用到几次,所以公式之前用个变量存下来之后用。

如果是我来做,我选择用Fortran或者C,优化编译或者并行一下,很 ...

谢谢你的热心, 但我不会Fortran和C,如果你愿意的话可以帮我试试吗,只要能比较有效的计算出来,可以有偿
3楼2012-07-19 18:40:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
fegg7502: 金币+5, 应助指数+1, 多谢指导 2012-07-23 18:27:38
你得机器配置怎么样,你的计算,可不可以考虑分解任务并行计算。把你的代码附上看看
最近买了个工作站,一些计算我试了下我的机器并行可以提速7-8倍。如果不是太复杂,可以帮你算算
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
4楼2012-07-19 21:24:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

suyan200326

新虫 (初入文坛)


fegg7502: 金币+1, 多谢交流 2012-07-23 18:27:51
引用回帖:
4楼: Originally posted by dbb627 at 2012-07-19 21:24:22
你得机器配置怎么样,你的计算,可不可以考虑分解任务并行计算。把你的代码附上看看
最近买了个工作站,一些计算我试了下我的机器并行可以提速7-8倍。如果不是太复杂,可以帮你算算

是在是太感激你了,最近被这个问题折磨得已经抑郁了。
机器配置很一般  学校的电脑
2.13GH,2.99GB

目前CODE 如下:

/*likelihood function*/
function llf=likelihoodfunction(theta, ETS, TS,DS,V0)

%global n ETS TS DS;
mu=theta(1);
sigma=theta(2);

n=length(ETS);

%V0=10;
lf=0;
for i=1:n
  Et=ETS(i);
  t=TS(i);
  D=DS(i);
  %Vt=invoptionprice(Et,D,sigma,t)
  Vt=fsolve(@(Vt) Vt*normcdf((log(Vt/D)+0.5*sigma^2*t)/(sigma*t^0.5))-D*normcdf((log(Vt/D)+0.5*sigma^2*t)/(sigma*t^0.5)-sigma*t^0.5)-Et, V0);
  dt=log(Vt/D)+0.5*sigma^2*t;  
  if i>1
    f=-0.5*log(2*pi)-0.5*log(sigma^2)-log(Vt)-log(normcdf(dt))-0.5/sigma^2*(log(Vt/Vt_1)-mu)^2;
    lf=lf+f;
  end
  Vt_1=Vt;
end

llf=-lf;


/*MLE*/
Data=xlsread('data1.xls')
DS=Data(:,1);
ETS=Data(:,2);

LENGTH=length(ETS);

TS=Data(:,3);
%TS=ones(LENGTH,1);

theta0=[0,0.1];
V0=10000;
options = optimset('Display','iter','MaxIter',(1e+003),'MaxFunEvals',1e+4,'TolFun',10^(-10),'TolX',10^(-10));

[theta,fval]=fminsearch(@(theta) likelihoodfunction(theta,ETS, TS,DS,V0) , theta0,options);
   
n=length(ETS);
mu=theta(1);
sigma=theta(2);

VS=[];
for i=1:n
  Et=ETS(i);
  t=TS(i);
  D=DS(i);

  Vt=fsolve(@(Vt) Vt*normcdf((log(Vt/D)+0.5*sigma^2*t)/(sigma*t^0.5))-D*normcdf((log(Vt/D)+0.5*sigma^2*t)/(sigma*t^0.5)-sigma*t^0.5)-Et, V0);
  VS=[VS,Vt];
end
5楼2012-07-19 23:34:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★
fegg7502: 金币+2, 应助指数+1, 多谢交流 2012-07-23 18:28:00
引用回帖:
5楼: Originally posted by suyan200326 at 2012-07-19 23:34:10
是在是太感激你了,最近被这个问题折磨得已经抑郁了。
机器配置很一般  学校的电脑
2.13GH,2.99GB

目前CODE 如下:

/*likelihood function*/
function llf=likelihoodfunction(theta, ETS, TS,DS,V0)

...

你的代码很多用的是循环,matlab处理这个不是很快,你要尝试把它写成矢量或者矩阵计算。
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
6楼2012-07-19 23:51:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

emspire529

铜虫 (小有名气)

向量运算快多了
7楼2012-07-20 00:14:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

引用回帖:
5楼: Originally posted by suyan200326 at 2012-07-19 23:34:10
是在是太感激你了,最近被这个问题折磨得已经抑郁了。
机器配置很一般  学校的电脑
2.13GH,2.99GB

目前CODE 如下:

/*likelihood function*/
function llf=likelihoodfunction(theta, ETS, TS,DS,V0)

...

数据呢?附上数据,可以帮你试试。
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
8楼2012-07-23 14:39:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

phychemlxd

金虫 (小有名气)

【答案】应助回帖

对于这样的一段程序,我个人觉得向量与循环差异不会太明显,因为在优化fminsearch里面还调用了fsolve。我倒是觉得如果能合理的分析一下你的数据样本,然后选一部分先得到一组或是几组解,然后再用这些解做初始值会比较好。同时,可以尝试用粗一点的收敛标准来得到近似解看看,再分析分析。另外的话,可以考虑用别的方法替代fminsearch。我个人觉得前期还是优化逻辑比较合理一些哈。个人意见
修.齐.治.平
9楼2012-07-25 04:44:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

suyan200326

新虫 (初入文坛)

引用回帖:
8楼: Originally posted by dbb627 at 2012-07-23 14:39:06
数据呢?附上数据,可以帮你试试。...

数据太大了 我给你一个样本的吧
DATE        D        E        T
19930104        9997.223        1415.467375        1
19930105        9997.223        1410.00225        1
19930106        9997.223        1393.606875        1
19930107        9997.223        1377.2115                        1
19930108        9997.223        1355.351        1
19930111        9997.223        1349.885875        1
19930112        9997.223        1328.025375        1
19930113        9997.223        1322.56025        1
19930114        9997.223        1355.351        1
19930115        9997.223        1355.351        1
19930118        9997.223        1355.351        1
19930119        9997.223        1355.351        1
19930120        9997.223        1360.816125        1
19930121        9997.223        1360.816125        1
19930122        9997.223        1349.885875        1
19930125        9997.223        1344.42075        1
19930126        9997.223        1333.4905        1
19930127        9997.223        1338.955625        1
19930128        9997.223        1333.4905        1
19930129        9997.223        1333.4905        1
19930201        9997.223        1355.351        1
19930202        9997.223        1355.351        1
19930203        9997.223        1355.351        1
19930204        9997.223        1399.072        1
19930205        9997.223        1388.14175        1
19930208        9997.223        1393.606875        1
19930209        9997.223        1377.2115        1
19930210        9997.223        1366.28125        1
19930211        9997.223        1388.14175        1
19930212        9997.223        1388.14175        1
19930216        9997.223        1338.955625        1
19930217        9997.223        1295.234625        1
19930218        9997.223        1311.63        1
19930219        9997.223        1322.56025        1
19930222        9997.223        1306.164875        1
19930223        9997.223        1300.69975        1
19930224        9997.223        1311.63        1
19930225        9997.223        1311.63        1
19930226        9997.223        1300.69975        1
19930301        9997.223        1328.025375        1
19930302        9997.223        1322.56025        1
19930303        9997.223        1344.42075        1
19930304        9997.223        1355.351        1
19930305        9997.223        1393.606875        1
19930308        9997.223        1410.00225        1
19930309        9997.223        1399.072        1
19930310        9997.223        1393.606875        1
19930311        9997.223        1399.072        1
19930312        9997.223        1388.14175        1
19930315        9997.223        1399.072        1
19930316        9997.223        1415.467375        1
19930317        9997.223        1426.397625        1
19930318        9997.223        1459.188375        1
19930319        9997.223        1475.58375        1
19930322        9997.223        1459.188375        1
19930323        9997.223        1437.327875        1
19930324        9997.223        1437.327875        1
19930325        9997.223        1475.58375        1
19930326        9997.223        1431.86275        1
19930329        9997.223        1442.793        1
19930330        9997.223        1415.467375        1
19930331        9997.223        1442.793        1
19930401        11480.501        1670.15175        1
19930402        11480.501        1663.777125        1
19930405        11480.501        1619.15475        1
19930406        11480.501        1651.027875        1
19930407        11480.501        1657.4025        1
19930408        11480.501        1682.901        1
19930412        11480.501        1708.3995        1
19930413        11480.501        1791.269625        1
19930414        11480.501        1804.018875        1
19930415        11480.501        1816.768125        1
19930416        11480.501        1804.018875        1
19930419        11480.501        1778.520375        1
19930420        11480.501        1740.272625        1
19930421        11480.501        1727.523375        1
19930422        11480.501        1740.272625        1
19930423        11480.501        1727.523375        1
19930426        11480.501        1670.15175        1
19930427        11480.501        1657.4025        1
19930428        11480.501        1657.4025        1
19930429        11480.501        1644.65325        1
19930430        11480.501        1631.904        1
19930503        11480.501        1670.15175        1
19930504        11480.501        1644.65325        1
19930505        11480.501        1682.901        1
19930506        11480.501        1663.777125        1
19930507        11480.501        1663.777125        1
19930510        11480.501        1651.027875        1
19930511        11480.501        1651.027875        1
19930512        11480.501        1695.65025        1
19930513        11480.501        1670.15175        1
19930514        11480.501        1619.15475        1
19930517        11480.501        1600.030875        1
19930518        11480.501        1587.281625        1
19930519        11480.501        1606.4055        1
19930520        11480.501        1638.278625        1
19930521        11480.501        1619.15475        1
19930524        11480.501        1638.278625        1
19930525        11480.501        1631.904        1
19930526        11480.501        1676.526375        1
19930527        11480.501        1670.15175        1
19930528        11480.501        1651.027875        1
19930601        11480.501        1638.278625        1
19930602        11480.501        1631.904        1
19930603        11480.501        1631.904        1
19930604        11480.501        1606.4055        1
19930607        11480.501        1580.907        1
19930608        11480.501        1568.15775        1
19930609        11480.501        1580.907        1
19930610        11480.501        1580.907        1
19930611        11480.501        1580.907        1
19930614        11480.501        1574.532375        1
19930615        11480.501        1568.15775        1
19930616        11480.501        1561.783125        1
19930617        11480.501        1561.783125        1
19930618        11480.501        1593.65625        1
19930621        11480.501        1587.281625        1
19930622        11480.501        1631.904        1
19930623        11480.501        1644.65325        1
19930624        11480.501        1682.901        1
19930625        11480.501        1682.901        1
19930628        11480.501        1689.275625        1
19930629        11480.501        1676.526375        1
19930630        11480.501        1670.15175        1
19930701        10587.371        1415.9685        1
19930702        10587.371        1426.945        1
19930706        10587.371        1448.898        1
19930707        10587.371        1459.8745        1
19930708        10587.371        1470.851        1
19930709        10587.371        1465.36275        1
19930712        10587.371        1421.45675        1
19930713        10587.371        1421.45675        1
19930714        10587.371        1404.992        1
19930715        10587.371        1388.52725        1
19930716        10587.371        1410.48025        1
19930719        10587.371        1399.50375        1
19930720        10587.371        1388.52725        1
19930721        10587.371        1394.0155        1
19930722        10587.371        1383.039        1
19930723        10587.371        1372.0625        1
19930726        10587.371        1366.57425        1
19930727        10587.371        1377.55075        1
19930728        10587.371        1388.52725        1
19930729        10587.371        1399.50375        1
19930730        10587.371        1399.50375        1
19930802        10587.371        1394.0155        1
19930803        10587.371        1377.55075        1
19930804        10587.371        1383.039        1
19930805        10587.371        1366.57425        1
19930806        10587.371        1366.57425        1
19930809        10587.371        1372.0625        1
19930810        10587.371        1377.55075        1
19930811        10587.371        1377.55075        1
19930812        10587.371        1377.55075        1
19930813        10587.371        1366.57425        1
19930816        10587.371        1355.59775        1
19930817        10587.371        1350.1095        1
19930818        10587.371        1361.086        1
19930819        10587.371        1355.59775        1
19930820        10587.371        1361.086        1
19930823        10587.371        1372.0625        1
19930824        10587.371        1394.0155        1
19930825        10587.371        1399.50375        1
19930826        10587.371        1415.9685        1
19930827        10587.371        1404.992        1
19930830        10587.371        1388.52725        1
19930831        10587.371        1388.52725        1
19930901        10587.371        1394.0155        1
19930902        10587.371        1394.0155        1
19930903        10587.371        1388.52725        1
19930907        10587.371        1383.039        1
19930908        10587.371        1366.57425        1
19930909        10587.371        1383.039        1
19930910        10587.371        1388.52725        1
19930913        10587.371        1344.62125        1
19930914        10587.371        1339.133        1
19930915        10587.371        1350.1095        1
19930916        10587.371        1350.1095        1
19930917        10587.371        1361.086        1
19930920        10587.371        1344.62125        1
19930921        10587.371        1333.64475        1
19930922        10587.371        1333.64475        1
19930923        10587.371        1311.69175        1
19930924        10587.371        1311.69175        1
19930927        10587.371        1333.64475        1
19930928        10587.371        1344.62125        1
19930929        10587.371        1344.62125        1
19930930        10587.371        1333.64475        1
19931001        12326.873        1629.495        1
19931004        12326.873        1622.844        1
19931005        12326.873        1622.844        1
19931006        12326.873        1609.542        1
19931007        12326.873        1602.891        1
19931008        12326.873        1596.24        1
19931011        12326.873        1642.797        1
19931012        12326.873        1636.146        1
19931013        12326.873        1629.495        1
19931014        12326.873        1616.193        1
10楼2012-07-31 14:52:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 suyan200326 的主题更新
信息提示
请填处理意见