Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2017-08-11, 14:15   #1
spq207
初级会员
 
注册日期: 2017-08-11
年龄: 32
帖子: 1
声望力: 0
spq207 正向着好的方向发展
默认 新人小白求助,利用RV模型求保险费率,程序是否有问题

这是我的程序:
1 .VsigV .m:
function y=VsigV(x)
global B T E e p;
V=x(1);
v=x(2);
y(1)=V*normcdf((log(V/(p*B))+0.5*v^2*T)/(v*T^(1/2),0,1)-p*B*normcdf((log(v/(p*B))-0.5*v^2*T)/(v*T^(1/2)),0,1)-E;
y(2)=v*V*normcdf((log(V/(p*B))+0.5*v^2*T)/(v*T^(1/2)),0,1)-e*E;

2 .RV64 .m:
clc
clear all
global B T E e p;
[BB]=xlsread('D:\RV64.xls','C2:C81');
[TT]=xlsread('D:\RV64.xls','D2: D81');
[EE]=xlsread('D:\RV64.xls','E2:E81');
[ee]=xlsread('D:\RV64.xls','F2:F81');
[pp]=xlsread('D:\RV64.xls','G2:G81');
[kk]=xlsread('D:\RV64.xls','H2:H81');
%读取变量数据

z = zeros(81,2);
G = zeros(81,1);
V = zeros(81,1);
v = zeros(81,1);
FV = zeros(81,2);
EX = zeros(81,1);
for i = 1:64
B = BB (i,1); %存款负债B
T = TT (i,1); %到期时间T
E = EE (i,1); %市场价值E
e = ee (i,1); %股票收益波动率e
p = pp (i,1); %监管宽容系数p
k = kk (i,1); %fsolve初始值k 就是有关于这个k我不是很懂,因为没有k的数据,我不知道是自己赋值还是运行之后就会得出。

[z(i,: ),fval,exitflag ]=fsolve('VsigV',[k,0.01] ,optimset('Display','off'));
FV(i,: )=fval;
EX(i)=exitflag;
V(i)=z(i,1);
v(i)=z(i,2);

G(i,1)=normcdf((log(B/V(i))+0.5*v(i)^2*T)/(v(i)*T^0.5),0,1)-V(i)/B*normcdf((log(B/V(i))-0.5*v(i)^2*T)/(v(i)*T^0.5),0,1);
%存款保险费率G
end
xlswrite('D:\RV64.xls',V,'I2:I81')
xlswrite('D:\RV64.xls',v,'J2:J81')
xlswrite('D:\RV64.xls',G,'K2:K81')
xlswrite('D:\RV64.xls',FV,'L2:M81')
xlswrite('D:\RV64.xls',EX,'N2:N81')
%写入求解结果

我其实完全不了解matlab,我也不知道这程序的错误在哪里,输入后得到的问题是,size (kk)=[0,0]
我不知道这个fsolve函数是在程序中已经算出的还是需要在运行之前自行赋值,希望有大神可以帮我解答,我将感激不尽。
spq207 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 17:07


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.