Tag Archives: matlab

matlab计算单纯形表

今天花了点时间,将这个程序完成了,里面还有一些小错误,代码写的还是有点乱,明天再整理了 update: 今天又花了点时间,将程序里面的错误找出来了一些,现在这个程序应该大体是可用的,那么就这样了 min1=0.00001;(update:如果用nan的话,效果更好,将这些数忽略掉) %b 约束条件 列向量(update 应该是行向量) function [JI opt]=simplex2(C,CB,b,A,BL) %purpose 验算手工单纯形 %define variables %C 目标函数变量系数 行向量 %CB 辨识初始基 行向量 %b 约束条件 列向量 %A 约束系数矩阵 矩阵 %delta 检验数 行向量 %JBL 基变量序号 %BL 基向量位置-----------换一个结构变成一个逻辑向量 %FBL 非基变量位置 %JI 解 %opt 目标值 … Continue reading

Posted in 读书笔记 | Tagged , | Leave a comment

用matlab写单纯形表

今天在做最优化的题目的时候,遇到了些麻烦,单纯形表怎么写都会留下点问题,却找不出哪里出现了毛病,于是想用matlab将每一个单纯形表都画出来,但是程序写了会就写不下去了,主要是其中的逻辑判断,数字选择,让我有种无从下手的感觉,我把一些代码和注意点先贴到这里,等以后再试试,看看自己进步了没有。 Matlab语言 %purpose 验算手工单纯形 %写不下去了,还是等对于编程这些玩意更熟悉一些再弄,完全现在是不能转化成程序语言了 %define variables%C 目标函数变量系数 行向量%CB 辨识初始基 行向量%b 约束条件 列向量%A 约束系数矩阵 矩阵%delta 检验数 行向量%X 列向量 function [JI opt]=simplex(C,CB,b,A) theta=C-CB*A;if max(delta)<=0if all(CB<inf)if %存在非基变量的检验数为0%无穷多最优解 else %唯一最优解end elsedisp('无可行解')end elsethetaj=find(delta>0);%找出检验数为正的项temp1=A(:,deltaj);%找出检验数为正项对应的向量temp2=max(temp1);%找出检验数为正项对应的向量的每一列当中最大项if any(temp2<0) disp('无界解')else %单纯形变化[deltak,k]=max(delta);aik1=A(:,k)>0;baik=b./A() endend     下面就是搞的时候的一些注意点,自己查一下也很容易查到的地方。 matlab和excel差异:log含义不同,前者就是ln后者是以10为底 用最优化工具箱,没有x非负的设定,x的范围是自己写进去的.当然b也没有非零的设定 cat合并矩阵 逻辑数组逻辑数组有一个重要的属性它在算术运算中能提供一个屏蔽(mask). … Continue reading

Posted in 技术相关 | Tagged , , | Leave a comment

金融仿真笔记(6)

1.息票分离法 bootstrap method,其实和前面一片文章写得东西其实关系不大,这个就是用债券的息票利率计算任意一点的利率。 2.zbtprice/zbtyield根据债券的到期日,票面利率,结算日和价格,求的任意点的零息利率。参数不要输入出错,基本上没有什么问题。如果我理解的没有问题,就是利用已知的有限个债券的信息,计算这些点的零息债券利率。这里面还是有点小技巧,plot(dates2, zerorates2); dateaxis('x'),这里面dates2日期是matlab的zbtprice给出的,让横坐标显示成日期,还要加上dateaxis('x'),这种小技巧,说难也不难,给出来谁都会用,但是要找出来,却相当不容易,现在网上资源很多,但稍微专业一点的东西就很少见到了,比如excel里面有一个画图表的,也有一个模板,但是我搜索了一下,几乎没有见到这种资源。 3.cfdates(settle,maturity)这个就是计算出现现金流的日子,返回一些列7XX的数字。 4.forward rates远期收益 zero2fwd,通过零息利率计算远期利率。 5.利率期限结构intenvset,和之前一个创建结构体的类似,这里面的参数名也不是随便输入的,也就是那么有限的几个,Rates,Disc等等。 6.Disc=(1+z/F)^(-T),F应该是一年内付息次数的意思,z就是零息利率了,T是指在这段时间内付息次数。

Posted in 读书笔记 | Tagged , | Leave a comment