`
RednaxelaFX
  • 浏览: 3052841 次
  • 性别: 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

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

    计算方法答案及参考题 西工大

    这份资料包含了课后习题的答案以及一些额外的练习题,旨在帮助学生深入理解和掌握计算方法的核心概念与应用技巧。下面,我们将基于文件中的部分内容,提炼并扩展其涉及的关键知识点。 ### 计算方法概览 计算方法是...

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

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

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

    在极限部分的练习题中,学生将遇到各种函数的极限问题,包括但不限于对数函数、指数函数、有理函数以及复合函数。解决这些题目不仅要求学生准确理解极限的定义,还需要掌握极限运算法则和洛必达法则等解决技巧。例如...

    第一讲 求极限课后练习题.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=...

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

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

    完整第九章部分习题解答.doc

    总结以上内容,第九章的练习题覆盖了幂级数的基本理论及其在数学和工程问题中的应用。从收敛域的求解,到幂级数根函数的构造,再到幂级数展开和收敛性的判断,以及初值问题的解决策略,这些知识点对于深入理解数学...

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

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

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

    例如,在解决极限计算题时,考生应熟悉运用洛必达法则和泰勒展开等方法;在求解导数时,则需掌握幂指函数的性质和复合函数的求导法则;多元函数的偏导数和梯度计算则要求考生理解多元函数定义和复合函数求导规则,如...

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

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

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

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

    微积分A1第九周习题课答案1

    对于常见的函数如指数函数\( e^x \),自然对数\( \ln(x) \),余弦函数\( \cos(x) \),正弦函数\( \sin(x) \),都有特定的泰勒展开式。例如: \( e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!} \) \( \ln(1+x) = \sum...

    高等数学(第五版)课后习题答案(完整版)

    2. **导数与微分**:介绍了导数的概念、几何意义、物理意义,以及各类函数(如幂函数、指数函数、对数函数、三角函数)的导数计算法则,还有高阶导数、隐函数求导、参数方程求导等。 3. **积分**:分为不定积分和定...

Global site tag (gtag.js) - Google Analytics