非线性方程(组)求解的数值方法

常用方法

1.公式法/解析法
2.二分法/三分法
3.迭代法----牛顿迭代法

公式法/解析法

二次方程

非线性方程(组)求解的数值方法_第1张图片

三次方程x3+ax2+bx+c=0

首先计算
Q=(a2-3b)/9
R=(2a3-9ab+27c)/54

1如果R2<=Q3,则方程有3个实根
非线性方程(组)求解的数值方法_第2张图片
2如果R2>Q3,则方程有一个实根,2个复根
非线性方程(组)求解的数值方法_第3张图片

二分法

1确保闭区间[a,b]内有根
2函数在区间上单调
3复杂度log(2,(b-a)/eps)

const int eps=1e-8;
double solve(double left,double right)
{
    double mid;
    while(right-left>eps)
    {
        mid=(left+right)/2;
        if(f(mid)>0) right=mid;
        else if(f(mid)==0) return mid;
        else left=mid;
    }
    return mid;
}

牛顿迭代法

详见链接

在这里插入图片描述

你可能感兴趣的:(方程解法)