编写程序求自然对数e的近似值

Python022

编写程序求自然对数e的近似值,第1张

要求:误差小于0.00001

Private Sub Command1_Click()

Dim i%, n&, t!, e!

e = 2

i = 1

t = 1

Do While t >0.00001

i = i + 1

t = t / i

e = e + t

Loop

Print "计算了"; i; "项目和是:"; e

Print Exp(1) ‘与上句输出值进行对比以证明算法的正确性

End Sub

这种算法是有问题的,不能达到指定的精度的!t <= 0.00001 时结束了循环,这个只是到这一项为止,该项的值比精度小,但是不能保证被舍掉的后面部分(无穷项之和)阶乘的倒数之和比指定的精度小!

不足近似值:按照所需要的精确度截取指定数位后,直接略去后面的数位,这样就得到了一个小于真实值的近似值,叫做不足近似值。

性质:

比真实值小,当截取的数位后一位数字小于5时,比过剩近似值更接近真实值。过剩近似值:

定义:把数按需要截取指定数位后,如果去掉的部分最高位上的数是5或者比5大,就在保留部分的最后一位数上加1(称为“五入”),这样得到的近似值叫过剩近似值。

性质:该近似值大于真实值。

C语言算法描述。将该公式看成求N项和公式。定义三个变量:1、i(为int),用来记分项的序号;2、用变量temp表示分子值(为long);3、用变量sum表示前N项和(为double).

程序如下:

void main(){

int i=1

long temp=1

double sum=1.

for(1.0/temp<1e-4){

sum=sum+1/temp

i=i+1

temp=temp*i

}

printf("E=%lf",sum)

}