b-s公式倒是明白,但是没用来计算过 credit risk,楼主的程序我给帮忙改了改,不知道是不是楼主的意思了

function[Va,SigmaVa]=CalV(E,SigmaE,D,r,T)

%a=zeros(8,8);

D=[

1096853709

1422513664

1080412570

1099330560

821720

676976

196840

37877619

];

a=D;

%b=zeros(8,8);

E=[

5482334

112522064

57679892

4537800

751520

1882103.375

285241.125

3833159

];

b=E;

%c=zeros(8,8);

SigmaE=[

0.401835787

0.543863954

0.609681884

0.741317746

0.917986928

0.931843334

1.004589468

1.02883818

];

c=SigmaE;

%计算Va'SigmaVa

key=0;

r=0.0225;

T=1;

PI=4*atan(1);

Va=b;%va以E为迭代的初值

newVa=Va;

SigmaVa=c; %SigmaVa以SigmaE为迭代的初值

for k=1:10  %迭代SigmaVa

for j=1:10 %迭代Va

oldVa=newVa;

% Va=(E+D*exp(-r,T)*Nd2)/Ndl;

% SigmaVa=E*SigmaE/(E+D*exp(-r,T)*Nd2);

%t1=log(oldVa/a);

d1=(log(oldVa./a)+(r+(SigmaVa.^2)/2)*T)./(SigmaVa.*(T^(1/2)));

d2=d1-(SigmaVa*(T^(1/2)));

Nd1=normcdf(d1,0,1);

Nd2=normcdf(d2,0,1);

fV=oldVa.*Nd1-a.*exp(-r*T).*Nd2-b;

temp111=exp(-d1.^2/2)./((2*PI*T)^0.5.*SigmaVa)

dfV=Nd1+temp111-a.*exp(-r*T).*exp(-d2.^2/2)./((2*PI*T)^0.5.*oldVa.*SigmaVa);

if dfV==0

dfV

pause;

end

dV=-fV./dfV;

newVa=oldVa+dV;   %前后两次的值认为非常接近,则迭代成功

newVa

if newVa==0

oldVa

newVa

pause;

end

if(dV/newVa)<1e-7 & (dV/newVa)>-1e-7

break;

end

end

Va=newVa;

d1=(log(Va./a)+(r+(SigmaVa.^2)/2)*T)./(SigmaVa.*(T^(1/2)));

d2=d1-(SigmaVa*(T^(1/2)));

Nd1=normcdf(d1,0,1);

Nd2=normcdf(d2,0,1);  %方程右边与左边的比值

diff=(Va.*Nd1-a.*exp(-r*T).*Nd2)./b;

if diff<1-1e-5 | diff>1+1e-5

assert('迭代出现错误'); %迭代出现错误

else

key=key+1;

end

newSigmaVa=b.*c./(b+a.*exp(-r*T).*Nd2);

if((SigmaVa-newSigmaVa)./newSigmaVa)<1e-5 & ((SigmaVa-newSigmaVa)./newSigmaVa)>(-1e-5)

break;

key=key+1;

else

SigmaVa=newSigmaVa;

end

end

if key==2

%else

% Va=一l:

% SigmaVa=-1:

end

matlab中结果为nan,这么简单的程序,为什么结果为NaN呢?相关推荐

  1. matlab中矩阵的表示与简单操作

    matlab中矩阵的表示与简单操作 原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示 在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在"[ ]"内: b.矩阵的 ...

  2. MATLAB中griddata和griddatan插值函数简单说明

    MATLAB中griddata和griddatan插值函数简单说明 前言 本文会用容易理解的话解释下griddata和griddatan的用法,不会追求严谨,目的是帮助需要用到这两个插值函数的尽快理解 ...

  3. Matlab中用GUI做计算器,怎样用MATLAB中的GUI做一个简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...

  4. MATLAB中计算器的设立,怎样用MATLAB中的GUI做一个简单计算器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...

  5. matlab中光敏电阻,51单片机光敏电阻寻光程序

    [实例简介] 51单片机光敏电阻寻光程序,测试可用,可用数码管显示电阻值大小 [实例截图] [核心代码] 光敏电阻寻光程序 ├── 光敏(最终) │   ├── AD转换 │   ├── AD转换.h ...

  6. matlab模糊控制实际作用,模糊控制非常简单的程序,但是结果和书上给出的结果不一样,很不理解。...

    a=newfis('fuzzf');%创建新的模糊推理系统 a=addvar(a,'input','e',[0,100]); a=addmf(a,'input',1,'SD','trimf',[0,0 ...

  7. matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示

    clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...

  8. MATLAB中读取网络照片

    MATLAB中读取网络照片很简单,和读取本地照片方法基本一致. 以读取我最最爱的明星郭静为例: url='http://pic.baike.soso.com/p/20130709/2013070914 ...

  9. matlab中偶分量怎么表示,matlab信号与系统演示实验

    现代教育技术 基于Matlab 的/信号与系统0实验演示系统 金 波 (长江大学电子信息学院,湖北荆州 434023) 摘 要:利用M atlab 的GU I 编程方法研制出/信号与系统0实验演示系统 ...

最新文章

  1. JDBC连接方式有哪几种
  2. 已解决:centos 7.x系统自带的3.10.x内核存在一些bugs,导致运行docker、k8s不稳定,需要升级内核解决此问题。
  3. Java Instant类
  4. eos交易同步过程和区块生产过程源码分析
  5. python processpoolexector 释放内存_使用Python的multiprocessing.pool,内存使用量不断增长...
  6. mysql数据库中case when 的用法
  7. 移动端弹出层加遮罩后禁止滑动
  8. glibc版本查看_Linux开发必知内容整理 | libc、glibc和glib的关系
  9. docker 删除镜像时报错Error response from daemon: conflict: unable to delete xxx (must be forced) -
  10. 746. Min Cost Climbing Stairs
  11. 中美线规线径对照表(详细版)
  12. 深度学习与自然语言处理教程(8) - NLP中的卷积神经网络(NLP通关指南·完结)
  13. 【开发利器】中国国内可用API合集
  14. 基于Yocto的qmake编译环境默认QMAKE_SPEC不是linux-oe-g++的问题
  15. 关于调整互联网、电话订票起售时间的公告
  16. 利用HTML5+CSS3+JS实现简单的钟表
  17. 30本Python学习参考书,从入门到大师全了!
  18. 什么是IP封锁, 如何解封?
  19. python生成简单名片二维码(不带图片)
  20. 计算机二级c语言(选择题+程序题)哔哩哔哩UP Jungle_Survival

热门文章

  1. PCL中使用FLANN库(2)
  2. 打造TypeScript的Visual Studio Code开发环境
  3. 【CSS+HTML】关于字体的说明
  4. SCCM 2012 R2---安装客户端代理软件
  5. Object C数据类型
  6. 转:概述RAID磁盘的IOPS
  7. ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)
  8. [收藏]SQL Server 索引结构及其使用
  9. 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有
  10. oracle em配置报错,oracle em 启动报错OC4J Configuration issue