有限差分法C语言编程,有限差分法
有限差分法(Finite Differential Method, FDM)
[编辑]
什么是有限差分法
有限差分法是指用泰勒级数展开式将变量的导数写成变量,在不同时间或空间点值的差分形式的方法。
[编辑]
有限差分法的基本思想
按时间步长和空间步长将时间和空间区域剖分成若干网格,用未知函数在网格结(节)点上的值所构成的差分近似代替所用偏微分方程中出现的各阶导数,从而把表示变量连续变化关系的偏微分方程离散为有限个代数方程,然后解此线性代数方程组,以求出溶质在各网格结(节)点上不同时刻的浓度。
[编辑]
有限差分法的基本步骤
(1)剖分渗流区,确定离散点。将所研究的水动力弥散区域按某种几何形状(如矩形、任意多边形等)剖分成网络系统。
(2)建立水动力弥散问题的差分方程组。
(3)求解差分方程组。采用各种迭代法,如点逐次超松驰方法(SOR)、线逐次超松驰方法(LSOR)、迭代的交替方向隐式方法(IADI)及强隐式方法(SID)等。
[编辑]
期权定价的有限差分方法
通过求解衍生证券所满足的微分方程,有限差分法可用来为衍生证券估价,步骤如下:
1.将衍生证券的定解区域网格化(区域剖分)
对一个不付红利的衍生证券,其满足的微分方程为:
(1)
现在分别对时间(从0时刻到到期日)和股票价格(Smax)为可达到的足够高的股票价格)进行分割,即\triangle S=S_{max}/M,\triangle T/N,这样就分别有N+1个时间段和M+1个股票价格,建立如图(所示的坐标方格,将定解区域网格化,坐标方格上的点(i,j)对应时刻
和股票价格
,用变量fi,j表示(i,j)点的期权价格。
2.建立差分格式
(1)内含的有限差分方法
其步骤可分为以下几步:
(1)求
前向差分近似:
(2)
后向差分格式:
(3)
将(2),(3)式平均可更加对称地求出
的近似,即
(4)
(2)求
用前向差分近似:
(5)
(3)求
(6)
(4)将(4),(5),(6)式代入(1)式可得到内含有限差分公式:
ajfi,j − 1 + bjfi,j − cjfi,j + 1 = fi + 1,j (7)
其中:
i=0,1,…,N-1。j=0,1…,M-1
针对看跌期权和看涨期权可分别求出方程的边界条件:
(5)利用边界条件和(7)式可以给出M-1个联立方程组:
ajfN − 1,j − 1 + bjfN − 1,j + cjfN − 1,j + 1 j=1,2…,M-1
求解这M-1个联立方程组即可以求出期权价格,但对美式看跌期权时我们必须考虑其提前执行的情况。
内含有限差分法的优点是它很有效,当
和
都趋于0时,它总是收敛于微分方程组的解,即收敛性较好,但缺点是必须求解M-1个联立方程,计算较复杂。
2.外推的有限差分方法
外推的有限差分方法可以克服内含有限差分法的缺点,但是其假设条件是在股票价格相同时,i时刻与i+1时刻的f对S的一阶、二阶偏导数相同,因此(4),(5),(6)式分别变为:
(8)
(9)
(10)
将(8),(9),(10)分别代入(1)可得到外推有限差分方程:
(7)*
外推的有限差分方法可更好地用于计算期权价值,但收敛性更差。
3.其他有限差分法
一是Hopscotch法,即交叉使用内含和外推法计算节点的期权价值,也称“跳格子法”。二是Grank-Nicholson法,求内含和外推法的平均值,即将(7)和(7)*平均求得期权价值。使用有限差分法有时可置换变量,如令Z=ln S而不以S为标的变量,使计算更有效。
[编辑]
有限差分法与期权定价模型的联系
用模型得到的是精确解,而用有限差分法得到的是近似解,但两种方法的计算结果是接近的。
2.与树图法的联系
它们的计算都是从衍生证券有效期的最后时刻倒推到开始时刻,都能适合美式和欧式期权的定价,但当最终盈亏状态依赖于变量的过去历史和当前值时,应用它们就存在困难。外推有限差分法与树图法很相似,
其中
可解释为
时间间隔内股票价格变化概率
是从
降到
是保持在
不变,
是从
升到
概率。
[编辑]
参考文献
↑ 李晓昭,廖作鸿.有限差分方法在期权定价中的应用[J].科技情报开发与经济,2004,14(4)_3
本条目对我有帮助20
赏
MBA智库APP
扫一扫,下载MBA智库APP
分享到:
有限差分法C语言编程,有限差分法相关推荐
- C/C++语言编程的隐患!
C/C++语言编程的隐患! 本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内.内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决 ...
- c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式
原标题:单片机C语言编程定时器的几种表达方式 吴鉴鹰单片机开发板地址 店铺:[吴鉴鹰的小铺] 地址:[https://item.taobao.com/item.htm?_u=ukgdp5a7629&a ...
- perl语言编程 第四版_2020年,5 种 将死的编程语言!
来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...
- 共阳极数码管动态扫描c语言,《C语言编程实训》实训指导书三
1 C 语言编程实训语言编程实训 实训指导书三实训指导书三 适应专业 应用电子技术适应专业 应用电子技术 广州康大职业技术学院自动化系广州康大职业技术学院自动化系 二二 0 一一 0 年十一月年十一月 ...
- 语言趣味编程100例无水印_趣味c语言编程100例(三)
经典c程序100例==51--60 [程序51] 题目:学习使用按位与 & . 1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 2.程序源代 ...
- c语言中手机系统,一种手机课堂C语言编程系统的制作方法
技术特征: 1.一种手机课堂C语言编程系统,其特征在于:该系统由手机端C语言编译运行单元.嵌入式主机端传输单元.台式机端显示单元和投影仪端显示单元组成:所述手机端C语言编译运行单元.嵌入式主机端传输单 ...
- linux c语言工具,Linux下C语言编程环境的工具.doc
Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 Linux下C语言编程环境的工具 要想在Linux下进行C语言编程,首先得搭建好一个编程环境.这里分别说明一下几个非常有用的软件包. ...
- 单片机如何使用?51单片机C语言编程实例有哪些?
大家好,我是无际单片机编程的徐明,今天和大家一起探讨一下"单片机如何使用?" 单片机如何使用,我们要知道单片机在哪里使用? 单片机是很多电子产品的核心器件,它具有一定的逻辑判断和事 ...
- 11 12 13c语言编程,C语言编程
C语言编程 1.sscanf() sscanf()与scanf()类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源. 头文件:#include 格式:int ssc ...
最新文章
- C# Redis实战(六)
- IOS开发笔记15-自定义类
- 100c之53:说谎族和诚实族
- 全世界的狗都没有“生殖隔离” | 今日趣图
- linux播放到设备,linux - 将字节流式传输到ALSA播放设备 - 堆栈内存溢出
- 设置zookeeper开机自启动
- FF官宣新CFO推进融资和产品交付 贾跃亭激动发声
- msf 生成php马_PHP的性能优化方法总结
- JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...
- 13 万字 C 语言从入门到精通保姆级教程2021 年版
- 半监督3D医学图像分割(一):Mean Teacher
- 博客做外链(可以发布外链的博客有哪些平台)
- 苹果6s上市时间_6s为什么会在iOS14系统支持名单?
- 改造汇文OPAC,使其通过萌校的通用扫码接口登录
- 21考研:你是为了什么考研?
- linux下默认国外源下载过慢的解决方法
- 厦门这个隐藏的高逼格智慧园区终于被扒出来了
- 2018-4-18《给孩子讲量子力学》
- 瑞萨单片机,CS+ for CC 仿真
- 经济法学期末考试重点最终版