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-01-22 333 次阅读
