下载后可任意编辑合工大计算方法试验报告 《计算方法》试验报告 班级: 学号: 姓名: 实验一、牛顿下山法 1 实验目的(1)熟悉非线性方程求根简单迭代法,牛顿迭代及牛顿下山法(2)能编程实现简单迭代法,牛顿迭代及牛顿下山法(3)认识选择迭代格式的重要性(4)对迭代速度建立感性的认识;分析实验结果体会初值对迭代的影响 2 实验内容(1)用牛顿下山法解方程(初值为 0
6)输入:初值,误差限,迭代最大次数,下山最大次数输出:近似根各步下山因子 ( 2 ) 设 方 程 f(x)=x-3x–1=0 有 三 个 实 根 x=1
8793,x=-0
34727,x=-1
53209 现采纳下面六种不同计算格式,求 f(x)=0 的根 x 或 x x=;x=;x=;x=;x=;x=x- 输入:初值,误差限,迭代最大次数输出:近似根、实际迭代次数 3 算法基本原理求非线性方程组的解是科学计算常遇到的问题,有很多实际背景.各种算法层出不穷,其中迭代是主流算法
只有建立有效的迭代格式,迭代数列才可以收敛于所求的根
因此设计算法之前,对于一般迭代进行收敛性的推断是至关重要的
牛顿法也叫切线法,是迭代算法中典型方法,只要初值选取适当,在单根附近,牛顿法收敛速度很快,初值对于牛顿迭代至关重要
当初值选取不当可以采纳牛顿下山算法进行纠正
一般迭代: 牛顿公式: 牛顿下山公式: 图 3
1 一般迭代算法流程图 下山因子 下山条件 4 1下载后可任意编辑 算法描述一般迭代算法见流程图图 3
2 牛顿下山算法流程图 牛顿下山算法见流程图: 5、代码: #include #include #include usingnamespacestd; class srrt { private: intn; double *a,*xr,*xi; public: srrt(intnn) { n=nn; a=newdou