数学建模笔记01收益风险代码


r收益 q风险 p交易

1、简单约束条件和目标函数条件的方程optimproblem函数
prob=optimproblem('ObjectiveSense','max=');%求函数max/min类型
x=optimvar('x','5,1',LowerBound',0,'UpperBound',1);% 设置xi 5行1列=五个
f=[,,,,]
prob.Objective=f*x;  %目标函数

p=[矩阵]%等号约束
M=1
prob.Constraints.c1=sum((1+p).*x)==M
%.*按元素乘 *按矩阵乘

q=[矩阵]%不等式约束条件
aa=[];QQ=[];XX=[];a=0;%初始化
while a<0.05;hold on  
prob.Constraints.c2=q.*x<=a; 
[sol, Q, flag,out]=solve(prob); %解出函数prob( sol是xi,QQ是f最优值,flag在非线性规划不能为负)
aa=[aa;a]
QQ=[QQ;Q]
XX=[XX,sol.x] %sol.x 表示xi的值

a=a+0.01
end

plot(aa,QQ,'*k')  %(x轴 y轴 线形)二维线图 - MATLAB plot - MathWorks 中国
xlabel()
ylabel()
%Matlab中xlabel函数用法_matlab xlabel-CSDN博客具体


2.第二模min max{qixi} (注:q=0 r=0,05)

 prob=optimproblem('ObjectiveSense','min');
x=optimvar('x','6,1',LowerBound',0,);
q=[0,,,,]
prob.Constraints.c1=q(2,end).*x(2,end-1)<x(end);  %q1x1....<x6
prob.Objective=x(end)/M%方法:添加条件x6做最大值

p=[]
M=1
prob.Constraints.c2=sum((1+p).*x(1:end-1))==M

r=[]
aa=[];XX=[];kk=0;
k=0;
while k<0.05;hold on  
prob.Constraints.c3=sum((r-p).*x(1:end-1))>=k*M; 
[sol,a, flag,out]=solve(prob); %k固定率收益,a风险率

aa=[aa;a]
kk=[kk;k]
XX=[XX,sol.x] %sol.x 表示xi的值

k=k+0.01
end

plot(kk,aa,'*k')
xlabel()
ylabel()
 

模型三

 prob=optimproblem
x=optimvar('x','6,1',LowerBound',0,);
r=[]
p=[]
q=[]
w=0:0.1:1;%0-1 单位0.1一维矩阵
R=[];Q=[];Z=[];M=1;%初始化

prob.Constraints.c1=q(2,end).*x(2,end-1)<x(end);
prob.Constraints.c2=sum((1+p).*x(1:end-1))==M;



for i=1;length(w) %循环遍历
 prob.Objective=w(i)*x(end)-(1-w(i))*sum((r-p).*x(1:end-1))
 prob.Constraints.c3=sum((r-p).*x(1:end-1))>=k*M; 
 [sol,z, flag,out]=solve(prob); %k固定率收益,a风险率
 xx=sol.x;
 R=[R,max(q.*x(1:end-1))]
 Q=[Q,sum((r-p).*x(1:end-1))]
 Z=[Z,xx'] %MATLAB 运算符和特殊字符 - MATLAB & Simulink - MathWorks 中国
text(R,Q,['w=',num2str(w(i),'','')])
%类型转换:类型2类型
%向数据点添加文本描述 - MATLAB text - MathWorks 中国
end

grid on%显示网格线
xlabel('风险'),ylabel('收益')


 

 

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值