生存分布函数 - 寿险精算(5)

copyright.gif(2017-10-4银河统计)


六、生存分布类函数代码

1、生存函数\(S(x)\)

I、生存函数JS公式字符串

设有生存函数:\(S(x)=\frac{\sqrt{100-x}}{10}\)\(0<x\le 100\),其JS公式字符串为"Math.pow(100-x,1/2)/10"。

II、类函数代码

函数:webActuary.getSx(fx,v);
参数:fx - JS公式字符串;x - 自变量值

注:这里就是对定义的任意一元函数按给定自变量求值

样例代码:

webTJ.clear();
var oV = 30;
var oStr = "Math.pow(100-x,1/2)/10"; //生存函数JS公式字符串
var oS = webActuary.getSx(oStr,oV); //获得生存函数值
webTJ.display("生存函数值:"+oS,0);

实例代码(例2.1):

webTJ.clear();
var oStr = "1-x/100"; //生存函数JS公式字符串
var oS1 = 1-webActuary.getSx(oStr,50); 
//新生婴儿活不到50岁的概率
var oS2 = webActuary.getSx(oStr,80); 
//新生婴儿的寿命超过80岁的概率
var oS3 = webActuary.getSx(oStr,60)-webActuary.getSx(oStr,70); 
//新生婴儿在60-70岁间死亡的概率
var oS4 = (webActuary.getSx(oStr,30)-webActuary.getSx(oStr,60))/webActuary.getSx(oStr,30); 
//活到30岁的人活不到60岁的概率
webTJ.display("新生婴儿活不到50岁的概率:"+webTJ.getDecimal(oS1,4),0);
webTJ.display("新生婴儿的寿命超过80岁的概率:"+webTJ.getDecimal(oS2,4),0);
webTJ.display("新生婴儿在60-70岁间死亡的概率:"+webTJ.getDecimal(oS3,4),0);
webTJ.display("活到30岁的人活不到60岁的概率:"+webTJ.getDecimal(oS4,4),0);

注:webTJ.getDecimal保留小数有效位数

2、生存函数均值和方差(定积分)求值

生存函数均值和方差求值即给定函数表达式(取决生成函数的导数函数)定积分求值。

定积分类函数代码

函数:webActuary.getDJF(fx,x1,x2,n);
参数:fx - JS公式字符串;x1 - 下限;x2 - 上限;n - 区间分割数

注:区间分割数越大,定积分值越精确

实例代码(例2.2):

webTJ.clear();
var oStr = "x/105"; //x*f(x)
var oS1 = webActuary.getDJF(oStr,0,105,10000); //平均寿命E(X)
oStr="x*x/105"; //x*x*f(x)
var oS2 = webActuary.getDJF(oStr,0,105,10000); //E(X*X)
oS2=oS2-oS1*oS1; //寿命方差D(X)
webTJ.display("平均寿命E(X):"+webTJ.getDecimal(oS1,4),0);
webTJ.display("寿命方差D(X):"+webTJ.getDecimal(oS2,4),0);

实例代码(例2.4):

webTJ.clear();
var oStr = "Math.pow((50-x)/50,2)"; 
var oS1 = webActuary.getDJF(oStr,0,50,10000); //剩余平均寿命
oStr="2*x*Math.pow((50-x)/50,2)"; 
var oS2 = webActuary.getDJF(oStr,0,50,10000);
oS2=oS2-oS1*oS1; //剩余寿命方差
webTJ.display("剩余平均寿命:"+webTJ.getDecimal(oS1,4),0);
webTJ.display("剩余寿命方差:"+webTJ.getDecimal(oS2,6),0);

3、剩余寿命的分布函数\(F_x(t)\)

类函数代码

函数:webActuary.getFx(fx,x,t,u);
参数:fx - JS公式字符串;x - 当前年龄;t - 寿命超过x+t岁;u - 寿命小于x+t+u岁

注:u=0,求\(_{_t}q_{_x}\)。u>0,求\(_{_{t|u}}q_{_x}\)

实例代码(例2.3):

webTJ.clear();
var oStr = "Math.pow(100-x,1/2)/10"; //生存函数JS公式字符串
var oS1 = 1-webActuary.getFx(oStr,19,45,0); //剩余寿命生存函数值
var oS2 = webActuary.getFx(oStr,36,15,13); //剩余寿命分布函数值
webTJ.display("剩余寿命生存函数值:"+webTJ.getDecimal(oS1,4),0);
webTJ.display("剩余寿命分布函数值:"+webTJ.getDecimal(oS2,4),0);

七、寿险精算代码窗口


代码窗口

注:可将例题实例代码复制、粘贴到“代码窗口”,点击“运行代码”获得计算结果(鼠标选择实例代码\(\rightarrow\)Ctrl+C:复制\(\rightarrow\)鼠标点击“代码窗口”使其获得焦点\(\rightarrow\)Ctrl+V:粘贴)
运行代码

代码运行效果

上篇文章:债务偿还 - 寿险精算(4)
下篇文章:生命表 - 寿险精算(6)

转载于:https://www.cnblogs.com/cloudtj/p/7631217.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值