牛顿-拉夫逊方法(Newton-Raphson method)
牛顿法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),将非线性方程 f(x) = 0 近似为:
) = 0,得
牛顿法(Newton's method)又称为牛顿-拉夫逊方法(Newton-Raphson method),将非线性方程 f(x) = 0 近似为:
如果f'是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f'(x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍
求方程 f
例题二:
编写一个程序,求以下方程的根:
x³-5x²+6x-80=0
算法设计:牛顿迭代法
利用牛顿迭代公式 x(n+1)=x(n)-f(x(n))/f'(x(n));
循环体为:
for(int i=0;i
{
}
其中n为迭代次数,该值越大根值越精确;x0为在方程根取值范围内的任意值,作为初始迭代的条件。
C++实现如下:
#include
using namespace std;
float f(float x)
{
}
float df(float x)
{
}
int main()
{
} 迭代次数:10 迭代次数:100 式(1)中 是定义在 维欧式空间中开域上的实值函数。若用向量记,令: 则方程组(1)也可以表示为:
方程的根:x=5.15874
Press any key to continue
输入x0:2
方程的根:x=5
Press any key to continue
非线性代数方程组求解
n 个变量 个方程的非线性方程组, 其一般形式如下:
非线性数值方法种类较多,最常用的是Newton迭代法。求解非线性方程组的Newton法是一个最基本而且十分重要的方法,目前使用的很多有效的迭代法都是以Newton法为基础,或由它派生而来。
预先确定的最大迭代次数 M 作为终止迭代条件。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
