用mathematica把正态分布函数的逆函数展开成幂级数,得到了这个奇怪的式子,求解释...
偶然想把正态分布函数求逆的运算展开成幂级数,看是否方便用计算器估算.运行了如下语句:Series[InverseCDF[NormalDistribution[0,1],1...
偶然想把正态分布函数求逆的运算展开成幂级数,看是否方便用计算器估算.运行了如下语句:
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 0, 10},
Assumptions -> 0 < x < 1]
得到了下面的式子:
Sqrt[Log[1/(2 \[Pi])] - 2 Log[x] - Log[Log[1/(2 \[Pi])] - 2 Log[x]]] + O[x]^11
看起来有些奇怪,我增大了幂级数的项:
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 0, 1000},
Assumptions -> 0 < x < 1]
结果却是:
Sqrt[Log[1/(2 \[Pi])] - 2 Log[x] - Log[Log[1/(2 \[Pi])] - 2 Log[x]]] + O[x]^1001
这样看起来,似乎前面那项应该是精确表达式了,但实际运行如下语句:
{InverseCDF[NormalDistribution[0, 1], #],
Sqrt[Log[1/(2 \[Pi])] - 2 Log[1 - #] -
Log[Log[1/(2 \[Pi])] - 2 Log[1 - #]]]} & /@ {0.9, 0.925, 0.95,
0.975, 0.99, 0.995}
结果却是:
{{1.2815515655446006, 1.3226577374030006},
{1.4395314709384563, 1.4614688452505076},
{1.6448536269514722, 1.6521546739636983},
{1.9599639845400538, 1.9565041961310443},
{2.3263478740408408, 2.318342386507109},
{2.5758293035489004, 2.56684701349088}}
可见仍是有差距的.
我想问问,第一,为什么会出现上面的情况?也即是说,为什么幂级数部分的系数会始终为零?我很难相信这样的表达式会在某一项开始突然系数非零了...
第二,正态分布函数的逆函数是否能展开为幂级数,展开后的具体形式应该是什么?
100分虚心求教,也希望大家回答的别太简短了,我网上搜了一圈才来提问的...感谢了^^ 展开
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 0, 10},
Assumptions -> 0 < x < 1]
得到了下面的式子:
Sqrt[Log[1/(2 \[Pi])] - 2 Log[x] - Log[Log[1/(2 \[Pi])] - 2 Log[x]]] + O[x]^11
看起来有些奇怪,我增大了幂级数的项:
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 0, 1000},
Assumptions -> 0 < x < 1]
结果却是:
Sqrt[Log[1/(2 \[Pi])] - 2 Log[x] - Log[Log[1/(2 \[Pi])] - 2 Log[x]]] + O[x]^1001
这样看起来,似乎前面那项应该是精确表达式了,但实际运行如下语句:
{InverseCDF[NormalDistribution[0, 1], #],
Sqrt[Log[1/(2 \[Pi])] - 2 Log[1 - #] -
Log[Log[1/(2 \[Pi])] - 2 Log[1 - #]]]} & /@ {0.9, 0.925, 0.95,
0.975, 0.99, 0.995}
结果却是:
{{1.2815515655446006, 1.3226577374030006},
{1.4395314709384563, 1.4614688452505076},
{1.6448536269514722, 1.6521546739636983},
{1.9599639845400538, 1.9565041961310443},
{2.3263478740408408, 2.318342386507109},
{2.5758293035489004, 2.56684701349088}}
可见仍是有差距的.
我想问问,第一,为什么会出现上面的情况?也即是说,为什么幂级数部分的系数会始终为零?我很难相信这样的表达式会在某一项开始突然系数非零了...
第二,正态分布函数的逆函数是否能展开为幂级数,展开后的具体形式应该是什么?
100分虚心求教,也希望大家回答的别太简短了,我网上搜了一圈才来提问的...感谢了^^ 展开
3个回答
展开全部
这其实更多的是一个数学问题。从没有哪本教科书保证过,任意函数在任意点的幂级数展开都是收敛的。高阶无穷小和收敛是两个概念,O[x]^1001仅能表明误差的大小是远小于[x]^1001的,而收徒敛是要求这项趋0,其实你的这个展开和原函数的差距可根本不是”有差距”这么简单,你可以看下它们在0到1的图像,那差别叫一个壮观啊。
在我看来,你的展开式之所以连幂级数都不是了,那是因为你压根就没有选择一个实际存在的“点”做为展开点:x=0处,原函数趋于无穷,所以幂级数恐怕也会表现为极限形式。
试了一下,只要把你的展开点移到中点来,这级数就能顺利逼近了:
a = Normal@
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 1/2, 10},
Assumptions -> x > 0];
b = InverseCDF[NormalDistribution[0, 1], 1 - x];
Plot[{a, b, a - b}, {x, 0, 1}, PlotRange -> All,
PlotStyle -> {Red, Blue, Green}]
在我看来,你的展开式之所以连幂级数都不是了,那是因为你压根就没有选择一个实际存在的“点”做为展开点:x=0处,原函数趋于无穷,所以幂级数恐怕也会表现为极限形式。
试了一下,只要把你的展开点移到中点来,这级数就能顺利逼近了:
a = Normal@
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 1/2, 10},
Assumptions -> x > 0];
b = InverseCDF[NormalDistribution[0, 1], 1 - x];
Plot[{a, b, a - b}, {x, 0, 1}, PlotRange -> All,
PlotStyle -> {Red, Blue, Green}]
展开全部
我告诉你吧:
你是在x=0处展开的,但是x→0+时,你给的函数值是+∞,所以在该处展开肯定是不收敛的.
你可以在其它位置展开就没有问题了.比如你运行下面的代码就可以在x=1/2处展开了.
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 1/2, 10},
Assumptions -> 0 < x < 1]
你是在x=0处展开的,但是x→0+时,你给的函数值是+∞,所以在该处展开肯定是不收敛的.
你可以在其它位置展开就没有问题了.比如你运行下面的代码就可以在x=1/2处展开了.
Series[InverseCDF[NormalDistribution[0, 1], 1 - x], {x, 1/2, 10},
Assumptions -> 0 < x < 1]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
d
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |