http://mathworld.wolfram.com/TaylorSeries.html


e^x = e^a[1+(x-a)+1/2(x-a)^2+1/6(x-a)^3+...]


Exp(x) 를 C#으로 짜려면 위 식으로 짜야하는데 10번정도까지만 돌려보면 적당히 비슷한 값이 나온다.

빡시다 -_ -;;


다음 소스를 보자


// Exp Class

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ruru.Math
{
    public class Exp
    {
        /// <summary>
        /// 1+1x/1! + 1x2/2! + 1x3/3!
        /// </summary>
        /// <param name="x"></param>
        /// <returns></returns>
        public static double Expo(double x)
        {
            double sum = 1.0;
            double r = 1.0;

            for (int i = 1; i < 13; i++)
            {
                r *= x / (1.0 * i);
                sum += r;
            }

            return sum;
        }
    }
}


// Main Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ruru.Math
{
    class ExpMain
    {
        static void Main(string[] args)
        {
            Console.WriteLine("e^1 = {0}", Exp.Expo(1));
        }
    }
}



결과

e^1 = 2.71828182828617

유사한 주제의 글들을 살펴보세요:

, , , , ,

Latest Comment

티스토리 툴바