A*****s 发帖数: 13748 | 1 纯练习
做European Call的时候,把无穷远边界取在10倍的Strike
结果算出来当underlying在4倍Strike以下和理论值基本吻合
超过4倍Strike以后行为十分诡异
搞不懂为神马
目前查了半天没查出神马错误来。。。 |
s*******0 发帖数: 3461 | 2 maybe you method is not stable
how do you choose the ka/h? should be less than 1 |
A*****s 发帖数: 13748 | 3 啥是ka/h?空间步长和时间步长的比?
我用的是半隐格式,无条件稳定啊
【在 s*******0 的大作中提到】 : maybe you method is not stable : how do you choose the ka/h? should be less than 1
|
s*******0 发帖数: 3461 | 4 ut +aux=0
ka/h 就是 时间空间步长比
你用的 半隐 具体的公式 是指的什么 谢了
解答不了 水平有限啊 我觉得 超过一定数量之后 结果怪异 一个就是不稳定
另外一个 就是你的边界条件 程序里面 定义错了 就是 x=0和 x=T的 两个边界条件 当
中一个 可能 有什么问题 在某些点你的程序里面 会出现有问题的值啊
不然 就是应该8,9不离十啊 |
A*****s 发帖数: 13748 | 5 半隐格式就是那个Crank-Nicolson
很多年前做CFD的时候后我都用全隐格式
前不久咨询本版牛人,说C-N不但无条件稳定,而且比全隐格式舍入误差小
我就开始鼓捣这个了
【在 s*******0 的大作中提到】 : ut +aux=0 : ka/h 就是 时间空间步长比 : 你用的 半隐 具体的公式 是指的什么 谢了 : 解答不了 水平有限啊 我觉得 超过一定数量之后 结果怪异 一个就是不稳定 : 另外一个 就是你的边界条件 程序里面 定义错了 就是 x=0和 x=T的 两个边界条件 当 : 中一个 可能 有什么问题 在某些点你的程序里面 会出现有问题的值啊 : 不然 就是应该8,9不离十啊
|
l******n 发帖数: 9344 | 6 那是因为你的无穷远边界取值相对于underlying已经不够大了
结果就没有意义了
【在 A*****s 的大作中提到】 : 纯练习 : 做European Call的时候,把无穷远边界取在10倍的Strike : 结果算出来当underlying在4倍Strike以下和理论值基本吻合 : 超过4倍Strike以后行为十分诡异 : 搞不懂为神马 : 目前查了半天没查出神马错误来。。。
|
z****t 发帖数: 78 | 7 I guess there are two easy ways to check if it is unstable or because of
human mistake: 1) make the infinite be 40 X strike; 2) make the underlying
price be strike and infinite be 2.5 X strike. |
A*****s 发帖数: 13748 | 8 10倍strike还不够大?
我一直以为这个无穷远应该相对于strike来取。。。
因为bs模型里试试看,一般到strike三四倍的地方,option price已经和S-Ke^(-rT)差
不多了
【在 l******n 的大作中提到】 : 那是因为你的无穷远边界取值相对于underlying已经不够大了 : 结果就没有意义了
|
A*****s 发帖数: 13748 | 9 为什么这么取啊?
【在 z****t 的大作中提到】 : I guess there are two easy ways to check if it is unstable or because of : human mistake: 1) make the infinite be 40 X strike; 2) make the underlying : price be strike and infinite be 2.5 X strike.
|
d*j 发帖数: 13780 | 10 我记得好像3倍就差不多了, 再多了也没用, 结果没什么变化
【在 A*****s 的大作中提到】 : 10倍strike还不够大? : 我一直以为这个无穷远应该相对于strike来取。。。 : 因为bs模型里试试看,一般到strike三四倍的地方,option price已经和S-Ke^(-rT)差 : 不多了
|
|
|
A*****s 发帖数: 13748 | 11 好的,多谢牛人指导!
我只能回去继续查错了
【在 d*j 的大作中提到】 : 我记得好像3倍就差不多了, 再多了也没用, 结果没什么变化
|
d*j 发帖数: 13780 | 12 我不是牛人。。。。
我做过类似的作业
【在 A*****s 的大作中提到】 : 好的,多谢牛人指导! : 我只能回去继续查错了
|
f**x 发帖数: 4325 | 13 无穷小除无穷小了,4倍。。。。
【在 A*****s 的大作中提到】 : 纯练习 : 做European Call的时候,把无穷远边界取在10倍的Strike : 结果算出来当underlying在4倍Strike以下和理论值基本吻合 : 超过4倍Strike以后行为十分诡异 : 搞不懂为神马 : 目前查了半天没查出神马错误来。。。
|
A*****s 发帖数: 13748 | 14 重新推重新编了一遍,好了
取5倍strike就很准确了
之前的错哪了懒得去查了,就这么地吧,多谢大家指导 |
s*******0 发帖数: 3461 | 15 不行啊 这个态度
明白错在哪 其实很重要的
【在 A*****s 的大作中提到】 : 重新推重新编了一遍,好了 : 取5倍strike就很准确了 : 之前的错哪了懒得去查了,就这么地吧,多谢大家指导
|
A*****s 发帖数: 13748 | 16 用空了再回去查
第一遍程序编太糙了,分式上下两个dx都没约掉 :P
【在 s*******0 的大作中提到】 : 不行啊 这个态度 : 明白错在哪 其实很重要的
|
s*******0 发帖数: 3461 | 17 赞 精益求精 呵呵
【在 A*****s 的大作中提到】 : 用空了再回去查 : 第一遍程序编太糙了,分式上下两个dx都没约掉 :P
|
m*********g 发帖数: 646 | 18 这其实是个不错的问题。
首先,一般取spot上下六个sigma(T).跟STRIKE关系不大。。。(只在CORNER CASE的情
况下考虑STRIKE做一下调整)
然后很多CORNER CASE需要HANDLE,比如 int rate 很大,或者sigma很小的时候。
再或者Spot在deep in / deep out的时候。
还有取什么边界条件,网格划分等等(一般采用不均匀划分,加快速度并保证精度)。
。
【在 A*****s 的大作中提到】 : 纯练习 : 做European Call的时候,把无穷远边界取在10倍的Strike : 结果算出来当underlying在4倍Strike以下和理论值基本吻合 : 超过4倍Strike以后行为十分诡异 : 搞不懂为神马 : 目前查了半天没查出神马错误来。。。
|
l******i 发帖数: 1404 | 19 1.
大牛说的当年在CFD上用的也仅限于时间方向上用implict finite difference method吧。
CFD空间上模拟应该都是finite element method或者spectral method。
2.
C-N的unconditional stability有没有理论证明啊?
就我所知:不是fully implicit的算法很难A-stable的。
如果真是无条件稳定的话,numerical dissipation也太大了,
simulate出来的long-term behavior简直不能看。
【在 A*****s 的大作中提到】 : 半隐格式就是那个Crank-Nicolson : 很多年前做CFD的时候后我都用全隐格式 : 前不久咨询本版牛人,说C-N不但无条件稳定,而且比全隐格式舍入误差小 : 我就开始鼓捣这个了
|
m*********g 发帖数: 646 | 20 C-N的稳定并不是无条件的。说C-N无条件稳定的是伪大牛,或者在实际中没碰见过。
有很多篇论文是讨论这个的。
method吧。
【在 l******i 的大作中提到】 : 1. : 大牛说的当年在CFD上用的也仅限于时间方向上用implict finite difference method吧。 : CFD空间上模拟应该都是finite element method或者spectral method。 : 2. : C-N的unconditional stability有没有理论证明啊? : 就我所知:不是fully implicit的算法很难A-stable的。 : 如果真是无条件稳定的话,numerical dissipation也太大了, : simulate出来的long-term behavior简直不能看。
|
|
|
A*****s 发帖数: 13748 | 21 我们还真是在时间空间上全都FDM。。。
当然大牛怎么搞我不知道 :P
long-term的误差难道不是舍入误差积累造成的?
我记得以前CFD上还专门讲过这个,还有特别的技巧来抵消这种舍入误差的。。。
早忘光了,骂得!!!
method吧。
【在 l******i 的大作中提到】 : 1. : 大牛说的当年在CFD上用的也仅限于时间方向上用implict finite difference method吧。 : CFD空间上模拟应该都是finite element method或者spectral method。 : 2. : C-N的unconditional stability有没有理论证明啊? : 就我所知:不是fully implicit的算法很难A-stable的。 : 如果真是无条件稳定的话,numerical dissipation也太大了, : simulate出来的long-term behavior简直不能看。
|
T******r 发帖数: 257 | 22 那你这也是伪大牛呵呵
得定义稳定先啊
【在 m*********g 的大作中提到】 : C-N的稳定并不是无条件的。说C-N无条件稳定的是伪大牛,或者在实际中没碰见过。 : 有很多篇论文是讨论这个的。 : : method吧。
|
A*****s 发帖数: 13748 | 23 唉大家能不能只说事儿不对人啊
老judge人实在没啥意思
【在 T******r 的大作中提到】 : 那你这也是伪大牛呵呵 : 得定义稳定先啊
|
m*********g 发帖数: 646 | 24 逻辑,你见我什么时候说自己是大牛了?
扣字眼没意义,我只是指出一个practical里面的问题。
【在 T******r 的大作中提到】 : 那你这也是伪大牛呵呵 : 得定义稳定先啊
|
l******i 发帖数: 1404 | 25 楼主说的无条件稳定可能也没错,只是应该指的针对某一种方程吧。
就我所知,
对于nonlinear elastodyamics方程,
所有不是fully implicit method都不是unconditional stability的。
即使fully implicit method里面绝大部分放在nonlinear elastodyamics也不会稳定。
A-stable就更不可能了。
【在 m*********g 的大作中提到】 : C-N的稳定并不是无条件的。说C-N无条件稳定的是伪大牛,或者在实际中没碰见过。 : 有很多篇论文是讨论这个的。 : : method吧。
|
l******i 发帖数: 1404 | 26 Andreas大牛,你太客气了,我真的不是牛人。
我只是正好数学PhD期间的thesis是关于engineering simulation这个方向,
所以略懂一些。不知Andreas大牛的出身,是否也是同行?
咱们两个说的内容可能有点误会。
我说的numerical dissipation和你理解的error是两回事。
error是由算法精度唯一决定的。
numerical dissipation是由算法本身唯一决定的。
举个例子:Park method和BDF2都是second-order accuracy,所以error方面是一样的。
但BDF2产生的dissipativity比Park要大得多。
BDF2: 1.5*y(n+1)-2*y(n)+0.5*y(n-1)=dt*y'(n+1)
Park: (5/3)*y(n+1)-(5/2)*y(n)+y(n-1)-(1/6)*y(n-2)=dt*y'(n+1)
二者都是implicit method,算法里也没有historical derivative
例如apply这两个算法到方程 y"+y=0 with y(0)=1 and y'(0)=0.(解是y=cos(t))
记录下模拟出来的displacement, velocity and acceleration。(y,y',y")
在long-term simulation里面(t>1000),
你会发现所有稳定算法simulate出来的能量越来越小。
dissipativity在这里可以理解为算法带来的能量损耗。
但是Park simulate出来的能量减弱程度和速度要远小于BDF2。
(total energy = potential energy+kinetic energy)
【在 A*****s 的大作中提到】 : 我们还真是在时间空间上全都FDM。。。 : 当然大牛怎么搞我不知道 :P : long-term的误差难道不是舍入误差积累造成的? : 我记得以前CFD上还专门讲过这个,还有特别的技巧来抵消这种舍入误差的。。。 : 早忘光了,骂得!!! : : method吧。
|
T******r 发帖数: 257 | 27 哎, 这么较真, 我其实是顺着你的逻辑说的
"C-N的稳定并不是无条件的。说C-N无条件稳定的是伪大牛".
我是说"C-N的稳定并不是无条件的。"这也是伪大牛
此稳定非彼稳定而已.
【在 m*********g 的大作中提到】 : 逻辑,你见我什么时候说自己是大牛了? : 扣字眼没意义,我只是指出一个practical里面的问题。
|
T******r 发帖数: 257 | 28 很奇怪啊, 你a稳定都知道了那应该很清楚CN的无条件稳定和不稳定的问题了啊.
本来我还想摆弄一下, 可在你这科班面前我退缩了. 呵呵
的。
【在 l******i 的大作中提到】 : Andreas大牛,你太客气了,我真的不是牛人。 : 我只是正好数学PhD期间的thesis是关于engineering simulation这个方向, : 所以略懂一些。不知Andreas大牛的出身,是否也是同行? : 咱们两个说的内容可能有点误会。 : 我说的numerical dissipation和你理解的error是两回事。 : error是由算法精度唯一决定的。 : numerical dissipation是由算法本身唯一决定的。 : 举个例子:Park method和BDF2都是second-order accuracy,所以error方面是一样的。 : 但BDF2产生的dissipativity比Park要大得多。 : BDF2: 1.5*y(n+1)-2*y(n)+0.5*y(n-1)=dt*y'(n+1)
|
A*****s 发帖数: 13748 | 29 我本来做过点CFD,但是后来不碰这些数值的东西了,所以也不懂
你说的这些我得琢磨琢磨,我真的不是大牛,我很弱的 :)
的。
【在 l******i 的大作中提到】 : Andreas大牛,你太客气了,我真的不是牛人。 : 我只是正好数学PhD期间的thesis是关于engineering simulation这个方向, : 所以略懂一些。不知Andreas大牛的出身,是否也是同行? : 咱们两个说的内容可能有点误会。 : 我说的numerical dissipation和你理解的error是两回事。 : error是由算法精度唯一决定的。 : numerical dissipation是由算法本身唯一决定的。 : 举个例子:Park method和BDF2都是second-order accuracy,所以error方面是一样的。 : 但BDF2产生的dissipativity比Park要大得多。 : BDF2: 1.5*y(n+1)-2*y(n)+0.5*y(n-1)=dt*y'(n+1)
|
A*****s 发帖数: 13748 | 30 恩你说的对
果然行家
你说的就是中文讲的那个数值耗散对吧
我都没见过这个词的英文版 lol
的。
【在 l******i 的大作中提到】 : Andreas大牛,你太客气了,我真的不是牛人。 : 我只是正好数学PhD期间的thesis是关于engineering simulation这个方向, : 所以略懂一些。不知Andreas大牛的出身,是否也是同行? : 咱们两个说的内容可能有点误会。 : 我说的numerical dissipation和你理解的error是两回事。 : error是由算法精度唯一决定的。 : numerical dissipation是由算法本身唯一决定的。 : 举个例子:Park method和BDF2都是second-order accuracy,所以error方面是一样的。 : 但BDF2产生的dissipativity比Park要大得多。 : BDF2: 1.5*y(n+1)-2*y(n)+0.5*y(n-1)=dt*y'(n+1)
|