牛顿法计算方程近似解

bandit 发布于 2025-01-22 332 次阅读


namespace 牛顿法
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var f = (double x) => x + 5;
            var df = (double x) => 1.0;
            var guess = -1.0;
            Console.WriteLine(solve(f,df,3));
        }

        public static double solve(Func<double, double> f, Func<double, double> df, double guess, double dif = 1e-6, int time = 100)
        {
            for (var i = 0; i < time; i++)
            {
                if (df(guess) == 0) throw new Exception("导数为0 无法迭代");
                guess = guess - f(guess) / df(guess);
                if(f(guess) < dif) return guess;
            }
            throw new Exception("到达迭代次数 未收敛!");
        }
    }
}

此作者没有提供个人介绍。
最后更新于 2025-05-16