matlab中结果为nan,这么简单的程序,为什么结果为NaN呢?
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呢?相关推荐
- matlab中矩阵的表示与简单操作
matlab中矩阵的表示与简单操作 原文地址为:matlab矩阵的表示和简单操作 一.矩阵的表示 在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在"[ ]"内: b.矩阵的 ...
- MATLAB中griddata和griddatan插值函数简单说明
MATLAB中griddata和griddatan插值函数简单说明 前言 本文会用容易理解的话解释下griddata和griddatan的用法,不会追求严谨,目的是帮助需要用到这两个插值函数的尽快理解 ...
- Matlab中用GUI做计算器,怎样用MATLAB中的GUI做一个简单计算器
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...
- MATLAB中计算器的设立,怎样用MATLAB中的GUI做一个简单计算器
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function varargout = jisuanqi(varargin) gui_Singleton = 1; gui_State = struct ...
- matlab中光敏电阻,51单片机光敏电阻寻光程序
[实例简介] 51单片机光敏电阻寻光程序,测试可用,可用数码管显示电阻值大小 [实例截图] [核心代码] 光敏电阻寻光程序 ├── 光敏(最终) │ ├── AD转换 │ ├── AD转换.h ...
- matlab模糊控制实际作用,模糊控制非常简单的程序,但是结果和书上给出的结果不一样,很不理解。...
a=newfis('fuzzf');%创建新的模糊推理系统 a=addvar(a,'input','e',[0,100]); a=addmf(a,'input',1,'SD','trimf',[0,0 ...
- matlab对遥感影像投影转换,在matlab中实现遥感影像和shp文件的结合显示
clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...
- MATLAB中读取网络照片
MATLAB中读取网络照片很简单,和读取本地照片方法基本一致. 以读取我最最爱的明星郭静为例: url='http://pic.baike.soso.com/p/20130709/2013070914 ...
- matlab中偶分量怎么表示,matlab信号与系统演示实验
现代教育技术 基于Matlab 的/信号与系统0实验演示系统 金 波 (长江大学电子信息学院,湖北荆州 434023) 摘 要:利用M atlab 的GU I 编程方法研制出/信号与系统0实验演示系统 ...
最新文章
- JDBC连接方式有哪几种
- 已解决:centos 7.x系统自带的3.10.x内核存在一些bugs,导致运行docker、k8s不稳定,需要升级内核解决此问题。
- Java Instant类
- eos交易同步过程和区块生产过程源码分析
- python processpoolexector 释放内存_使用Python的multiprocessing.pool,内存使用量不断增长...
- mysql数据库中case when 的用法
- 移动端弹出层加遮罩后禁止滑动
- glibc版本查看_Linux开发必知内容整理 | libc、glibc和glib的关系
- docker 删除镜像时报错Error response from daemon: conflict: unable to delete xxx (must be forced) -
- 746. Min Cost Climbing Stairs
- 中美线规线径对照表(详细版)
- 深度学习与自然语言处理教程(8) - NLP中的卷积神经网络(NLP通关指南·完结)
- 【开发利器】中国国内可用API合集
- 基于Yocto的qmake编译环境默认QMAKE_SPEC不是linux-oe-g++的问题
- 关于调整互联网、电话订票起售时间的公告
- 利用HTML5+CSS3+JS实现简单的钟表
- 30本Python学习参考书,从入门到大师全了!
- 什么是IP封锁, 如何解封?
- python生成简单名片二维码(不带图片)
- 计算机二级c语言(选择题+程序题)哔哩哔哩UP Jungle_Survival
热门文章
- PCL中使用FLANN库(2)
- 打造TypeScript的Visual Studio Code开发环境
- 【CSS+HTML】关于字体的说明
- SCCM 2012 R2---安装客户端代理软件
- Object C数据类型
- 转:概述RAID磁盘的IOPS
- ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等)
- [收藏]SQL Server 索引结构及其使用
- 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有
- oracle em配置报错,oracle em 启动报错OC4J Configuration issue