利用matlab软件求解常数e和欧拉常数γ.docx
1/5数学实验报告利用MATLAB软件求解常数E和欧拉常数Γ实验目的利用MATLAB软件计算常数E和Γ,并尝试利用不同的算法计算,比较计算精度和时间,找到较好的算法。掌握MATLAB程序求和、求极限的方法,学会寻找更优算法。实验内容1、求EE可以来源于两个数列的极限和,即ENLIM11/XX,X∞(1式)SN1/01/11/21/31/41/5(2式),根据1式,可在MATLAB上设计如下代码FORN115N10NE11/NN求常数E的循环语句ENDATLONG使结果显示16位双精度数结果N算出的EN算出的E12593742460100002927182820556022704813829421529102718282053234788327169239322355941127182820533571102/54271814592682492612271852349603723852718268237192298132716110034086901627182804690957531427161100340870237271828169413208215303503520654926282718281798347358E的标准值约为271828182845904523536由上述结果可知,使用1式,有很大的缺陷,不仅精度连107都没有,而且当N109误差开始变大。根据2式,可得如下代码SUM0T1FORN118TNTSUMSUM1/TEND求常数E的循环语句E1SUMATLONG使结果显示16位双精度数结果N算出的EN算出的E121027182818011463852250000000000000011271828182619849332666666666666667122718281828286169427083333333333341327182818284467593/55271666666666666714271828182845823062718055555555556152718281828458995727182539682539681627182818284590428271827876984127017271828182845904692718281525573192182718281828459046E的标准值约为271828182845904523536如上所示,随着N的增大,E的计算值越来越接近E的真实值但是,当N的值大于17后,计算的精度不再提高,原因是双精度型数只能精确到16位,所以结果只有个位以及小数点后15位(最后一位是近似取的),而1/181561016,所以N超过18再往下计算不会更精确。。在1式代码中,11/N和N都只能精确到小数点后16位,两者相乘,结果精度将只能精确到8位。在2式中,,每一项都能精确到小数点后16位,而E是所有项的和,求和后仍然能够精确到小数点后16位。所以,对于某些使用数学软件求解的问题,如果对精度有要求,应该尽量使用加、减运算,少用其他的运算例如乘、除、乘方、对数等,这样可以提高运算精度。2、求Γ如此欧拉常数Γ也可以使用MATLAB求出较为精确的值。可由公式ΓLIMN→∞11/21/31/NLNN得出。FORN110S0FORI110NSS1/IENDYSLOG10N求常数Γ的循环语句ENDATLONG使结果显示16位双精度数结果4/5N算出的ΓN算出的Γ106263831609742086057721616490071520582207331651529705772157148989513057771558156820680577215669900188405772656640681659057721566540213950577220664893106100577215665057043Γ的权威数值约等于057721566490153286060651209。上述结果精度约有108,虽然精度还有提高空间,然而MATLAB上运行时,结果表明,增加N值,精度提高,运算时间也将大大加长(通常N超过10就需要好几分钟)使用级数来计算FORN19S0FORI110NSS1/ILOG11/IENDYS求常数Γ的循环语句ENDATLONG使结果显示16位双精度数结果N算出的ΓN算出的Γ10531072981169884605772151649020985/520572257000798361705772156149011663057671608123512580577215660395299405771656690678709057721566039536650577210664943251Γ的权威数值约等于057721566490153286060651209。上述结果精度也约有108,N再大就计算时间大大增加了,且可能会出错。上面两个算法都不能算出更为精确的欧拉常数的值,因为调和级数收敛较慢,因此MATLAB计算很缓慢。这也表明,这个算法还有待改进,需要更好的算法才能计算出Γ更精确的值。实验总结本文探索了使用数学软件求解常见常数的方法,并比较了算法的优劣,而算法不同,计算精度、时间相差很大,这表明,数学不能完全依靠计算机,人所编写的算法也非常重要,计算机只是人的工具,人的思维能力才是最重要的。另外,我们也需要计算机强大计算能力的帮助,学会使用数学软件,才能更加有效地发展数学。