`
RednaxelaFX
  • 浏览: 3047844 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

[练习题] 用泰勒展式计算自然对数e的幂

阅读更多
昨晚NetOA小组里有同学问我如何计算exp(x),但不允许使用Math.E, Math.Pow()和Math.Exp().一开始我给弄糊涂了,一想,这不得先算e,然后再幂上去么?
e是可以这样算出来: lim(n→∞) (1+1/n)^n
但是要拿这个数来算幂的话,直接用乘法就只能算整数幂了...郁闷
同学提醒说可以用泰勒展式.
exp(x) = 1 + (x^1)/1! + (x^2)/2! + ... + (x^n)/n! + o(n)
这就对了,马上想清楚关系.n只要取个足够大的值就行,我一开始取了0x0FFFF,后来发觉太大了没必要,最后换到了1000(100的话却又不够大...还没充分收敛).
写出代码:
using System;

sealed class Program
{
    private const int A_BIG_NUMBER = 1000;
    
    static void Main( string[ ] args )
    {
        PromptForInput( );
        double input = Convert.ToDouble( Console.ReadLine( ) );
        Console.WriteLine( "exp( {0} ) = {1}",
            input.ToString( ),
            Exp( input ).ToString( ) );
        // compare result with Math.Exp()
        Console.WriteLine( "exp( {0} ) = {1}",
            input.ToString( ),
            Math.Exp( input ).ToString( ) );
    }
    
    // Calculates exp(pow) with Taylor's Series
    static double Exp( double pow )
    {
        double step = 1.0;
        double acc = 1.0; // accumulator
        
        for ( int i = 1; i <= A_BIG_NUMBER; ++i )
        {
            step *= pow / i;
            acc += step;
        }
        
        return acc;
    }
    
    private static void PromptForInput( )
    {
        Console.WriteLine( "Enter a floting-point number as the power of e:" );
    }
}


呵呵,这也挺有趣的,虽然是个很直观很小的程序.后来我顺便拿这题问了一下NetOA小组里的另外两个成员,他们做出的解答让我又稍微多了分信心: 多培养一段时间他们肯定也能写出很好的代码的;他们只是以前没学扎实罢了.

==================================================

另外,得提醒自己的: System.Double的最小正值用System.Double.Epsilon常量.切记.
分享到:
评论
5 楼 Colorful 2007-12-09  
关于权限管理,现在流行的做法是Role Base Access Control,这里有几个参考实现:
http://www.cnblogs.com/Wenzy/archive/2006/10/02/519668.html

Enterprise Library里面的Security Application Block
4 楼 RednaxelaFX 2007-12-09  
多谢Colorful大的提醒,项目里的代码我会确保足够防御性。不知道在权限系统上有没有什么好的建议或者提示呢?这部分我没想出什么特别让自己满意的方案。以前我做过的东西在权限管理上hardcode的东西比较多,不太好扩展。这次想尝试点别的做法但还没找到方向,主要还是想要更好的扩展/可配置性。
这帖里的代码只是为了记录跟同学交流的状况,确实是没充分处理异常状况。回头改改好了。
lw: 这链接很有意思,呵呵。泰勒展式是我们大一的大学数学内容,不幸我现在在重修,碰巧熟悉……
好,改改代码去~
3 楼 lwwin 2007-12-08  
嗯,补充:
简单测试了下该exp的精度随着pow数值增大而需要更大的BIG_NUM值,用del = 0.01f,在double可接受的情况下 n 的理想值为111
此时pow=45,也就是说精度不是要求很高的时候,取值150已经足够了……
2 楼 lwwin 2007-12-08  
哈,亏你想得到啊~

http://www.musicdsp.org/showone.php?id=222

果然厉害啊…………
1 楼 Colorful 2007-12-08  
高数的只是几乎忘光了。

不过要注意防御性代码的编写。
不惮于最坏的恶意来揣测用户的输入。

OA对于线程安全的需求少,但是异常安全还是很重要的。

相关推荐

    泰勒展开教学书籍(包括习题)

    在实际应用中,泰勒展开可以用于近似计算各种函数值,例如幂函数、指数函数、对数函数、三角函数等。通过截取泰勒公式中一定数量的项,我们可以得到函数的一个近似值。截取的项数越多,近似的精度通常越高,但计算...

    C C++ 练习题 有用的

    题目要求计算自然对数 e 的值,精度要求达到 10^-6。这里使用的是泰勒级数展开法,公式为 `e = 1 + 1/1! + 1/2! + 1/3! + ...`。代码中通过循环不断累加每一项,直到相邻两次计算的差的绝对值小于1e-6为止。`fabs()...

    泰勒级数学习(演示ppt和word文档)

    常见的麦克劳林级数包括自然对数的e、指数函数、三角函数等。 3. **收敛性**:讨论泰勒级数的一个关键问题就是其收敛性。泰勒级数可能在某区间内一致收敛、条件收敛或发散。通常使用余项定理来判断级数的收敛性质。...

    4-3泰勒级数.pdf

    } - \cdots \),而对数函数 \( \text{Log}(1+z) \)(这里指的是主值分支)在 \( z=0 \) 处的泰勒展开式为 \( \text{Log}(1+z) = z - \frac{z^2}{2} + \frac{z^3}{3} - \cdots \)。 求解泰勒展开式时,通常会用到...

    3.3 泰勒级数.pdf

    泰勒级数的目的是将一个在某点可导的函数近似为一个多项式,这样就可以用多项式来近似计算该函数在该点附近的值。接下来,我将根据给定文件的内容,详细解释泰勒级数的概念、性质、收敛半径、展开方法以及多值函数的...

    C语言练习题集熟练掌握C语言

    7. 计算e的值:这个程序涉及到数学中的e(自然对数的底数)的泰勒级数展开,通过不断累加阶乘的倒数来逼近e的值,直到达到指定的精度。程序使用循环和条件判断来实现这一过程。 通过这些题目,学习者可以深入理解...

    高数I2练习题(1).zip

    压缩包中的“高数I2练习题”很可能包含了以上各主题的习题,建议按照章节或主题进行系统练习,逐一攻克。解题时,不仅要计算正确,还要理解背后的数学原理,并尝试多种解题方法以培养思维的灵活性。此外,通过不断...

    一元函数微积分基本练习题及答案.doc

    文档“一元函数微积分基本练习题及答案.doc”涵盖了微积分的基本概念和应用,包括极限、导数、积分和证明题四大主题。以下是对这些知识点的详细解释: 1. **极限**:极限是微积分的基础,用于描述函数在某一点附近...

    复变函数 第五版 余家荣 高清 带详细目录

    解析函数的泰勒展式 5.零点 6.解析函数的唯一性 3.洛朗展式 7.解析函数的洛朗展式 8.解析函数的孤立奇点 9.解析函数在无穷远点的性质 10.整函数与亚纯函数概念 习题四 第五章 留数 1.一般理论 1.留数定理 2.留数的...

    第一讲 求极限课后练习题.pdf

    以上是每道练习题的基本解题思路,实际解题过程中还需要具体计算和验证,确保结果的正确性。在求解这些极限问题时,不仅需要熟悉基本的极限定理和法则,还要灵活运用三角恒等式、指数和对数的性质、级数的收敛性判定...

    c习题语言答案

    第六段代码使用泰勒级数展开式来近似计算自然对数的底e。通过累加递减的项,直到某一项小于设定的阈值`1.0e-6`,得到e的近似值。这种数值逼近方法在科学计算和工程领域经常用到。 ### 7. 完美数检测 第七段代码...

    《 法兰西数学精品译丛:解析函数论初步》作者: H.嘉当 译者: 余家荣 出版年: 2008年

    第三章 泰勒展式及洛朗展式,奇点及留数 1 柯西不等式,刘维尔定理 2 平均性质与最大模原理 3 施瓦茨引理 4 洛朗展式 5 无穷远点的引入,留数定理 6 用留数法计算积分 习题 第四章 多变量解析函数,调和函数 1 多...

    微积分经管类第四版习题1_7答案.doc

    5. **指数函数和对数函数的极限**:如lim(x-&gt;0)e^(mx)和ln(1+x),其中e是自然对数的底,e^x的极限是其指数,ln(1+x)的极限为x。 6. **三角函数的极限**:题目中涉及到sin(x)和cos(x)的极限,如lim(x-&gt;0)sin(ax)/x=...

    微积分(北大社李建平版)课后习题答案详解大全

    学习者需要理解导数的计算方法,如幂函数、指数函数、对数函数的导数,以及复合函数、反函数和隐函数的导数求法。 第四章“微分中值定理与倒数应用”涵盖了中值定理,如罗尔定理、拉格朗日中值定理和柯西中值定理,...

    2021黑龙江统招专升本高等数学基础习题.doc

    高等数学是一门理论性强、逻辑严谨的科目,通过大量习题的练习,不仅能巩固基础知识,还能提升解题技巧和应试能力。以下将对部分基础习题进行解析: 计算题: 1. 题目缺失,通常这类题目可能是求解极限、导数、积分...

    2019考研数学 必会23考点 考点01:用经典工具计算函数、数列极限

    通过利用对数恒等变形的方法,可以将原式转化为\(e^{\lim_{n \to \infty} n \ln(1 + \frac{1}{n})}\),进而得到极限值为\(e\)。 3. **例题**:设数列\(\{x_n\}\)满足\(x_1 = 1\),且对于所有的\(n \geq 1\),都有\...

    函数及极限计算题2答案.doc

    文档“函数及极限计算题2答案.doc”是一个包含200个小题的数学练习,主要集中在函数和极限的计算上。这些题目可能是针对高中或大学初阶数学学生的,旨在检验他们在这一领域的理解和技能。在数学中,函数是描述一个...

    高考导数解答题中常见的放缩大法.docx

    这些近似公式可以帮助我们用幂级数的形式来逼近函数,尤其是在处理与导数相关的极限和泰勒级数问题时。 在高考中频繁出现 \( e^x \) 和 \( \ln x \) 是因为它们在数学分析中有基础且重要的地位,与泰勒级数、极限...

    数值分析——第二版课后习题答案

    此题涉及级数收敛性和计算效率的问题,通过引入适当的级数逼近技术,如泰勒级数或积分逼近,可以简化计算过程,提高计算速度。 9. **正方形面积的误差控制** 要求在正方形面积误差不超过[pic]的情况下,测量边长...

Global site tag (gtag.js) - Google Analytics