欢迎来到天天文库
浏览记录
ID:13468782
大小:355.80 KB
页数:16页
时间:2018-07-22
《数值分析非线性方程求解(五种方法)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值分析实验——分析牛顿法、割线法、对分法、Steffensen法、简易牛顿法解线性方程组的性质聂隐愚20103959摘要本报告介绍了牛顿法、割线法、对分法、Steffensen法、简易牛顿法五种算法原理及设计,检验了使用Matlab实现的对非齐次线性方程求根的程序,验证了五种算法的不同性能。本文在使用牛顿法求非齐次线性方程零点中,通过误差分析,得出其收敛是二次的,比对分法与割线法要快,这就保证在求零点时,需要更少的步数就能得出在精度范围内的结果,其收敛快(二次),稳定性好,且算法简单,但是值得指出的是牛顿法是一种局部收敛算法,且不能存在。对于割线法,同样通过误差分析得出,可知其收敛
2、是超线性的,但比牛顿法要慢,较对分法快;同时在割线法中本文指出,其每次迭代只需要一次函数赋值,而牛顿法需两次,而对于割线法中的两步,其收敛性要比牛顿二次收敛好的多,因此在函数赋值上割线法工作量较少,且避免求导,但是需要给出两个较好的初始值,且越小会导致失真。对于对分法,其收敛是一次的,且算法简单且只要存在根就总是收敛的,但是由于一次收敛所以收敛速度较前三种方法慢。对于steffensen法,当出现不能用,或者计算导数比求函数更加复杂时使用,且具有与牛顿法同样的二阶收敛速度。对于简易牛顿法,是对牛顿法的一种改造,以时间效率来换空间效率的方式减少了对各个函数点的导数计算,从一定程度上节省
3、了空间,但收敛阶数低于牛顿法,通常较牛顿法慢。一.牛顿法的性质1.1原理描述:设已知方程的近似根,则在附近可用一阶泰勒多项式近似代替。因此,方程可近似表示为。用满足方程的近似表示根差异不大。设,由于满足,解得重复这以过程,得到迭代格式。1.2算法描述迭代公式:,初值设为,最大迭代次数为n,迭代次数为i(i=0),最终结果设为c,要求精度为e;Step1.Step2.若,,重复第一个步骤若,break,则零点为二.割线法的性质2.1原理描述我们知道,牛顿迭代是由下式定义:,牛顿法的一个缺点是它需要求零点的函数导数,为了克服这一缺点,给出采用差商:代替牛顿迭代中的,得到割线法的迭代公式:
4、2.2算法描述初始值为x1,x0,精度为e,步骤记录为i(i=0);Step1.Step2.若,,重复第一个步骤若,break,则零点为一.对分法的性质3.1算法描述设是区间[a,b]上的连续函数,且,则a和b之间有一个零点,当,计算,且检查是否,检查零点在[a,c]之间还是[c,b]之间,若在[a,c]之间则把c换成b在新的区间上重复上面的步骤,若在[c,b]则把c换成a继续上面步骤。i为迭代步骤(i=0),初始点为x(0),x(1),精度要求为eStep1.x(i+2)=(x(i)+x(i+1))/2,若abs(f(x(i+2)))5、2.若f(i)f(i+2)<0,令x(i+2)=x(i+1),否则令x(i+2)=x(i);Step3.重复第一步与第二步直到达到精度。二.Steffensen法4.1原理描述Steffensen法的原理与割线法类似,为了克服牛顿法中求导这一缺点,使用g(x)代替,其中g(x)如下:;因此迭代函数为:4.2算法描述迭代步数为i(i=0),精度要求为eStep1.计算Step2.若norm(x(i+1)-x(i))e,i=i+1,重复上述步骤,直到达到精度。三.简易牛顿法5.1原理描述简易牛顿法,是在牛顿法6、的基础上,对初始点只求一次导数,然后每次利用代替中的,这样处理后减少了牛顿的计算量,降低了空间上对各个迭代点导数的存储,但同样降低了运算速率.5.2算法描述初值设为x0,i为迭代步数,精度为eStep1.Step2.若,迭代结束,若,转至下一步Step3.,继续迭代前两步,直至达到精度。一.计算机配置1.处理器Inter(R)Core(TM)i3CPUM350@2.27GHz2.27GHz2.安装内存(RAM):4.00GB(3.87GB可用)3.系统类型Windows764位操作系统4.Matlab版本Matlab7.12.0(R2011a)二.案例分析参数设置:精度:最大迭代次数7、:30函数选取:,如下图:图7-1函数图形初值选取:五种方法的第一个初值点均选相同点,对于牛顿法,简易牛顿法,Steffensen法,只需要一个初值点。而对分法,割线法需要两初值点的情况下,我们根据函数图象可以设置一个合适的初值点,由于某些算法带有局部性,本文在此考虑比较各个算法在区间[2,3]上寻找零点的优越性。一.输出结果本文通过比较各个算法的迭代步数,迭代精度,运算时间,来评判各个算法的优越性,并描绘出计算方程过程中的几何图像。求区间[2,3]上零点
5、2.若f(i)f(i+2)<0,令x(i+2)=x(i+1),否则令x(i+2)=x(i);Step3.重复第一步与第二步直到达到精度。二.Steffensen法4.1原理描述Steffensen法的原理与割线法类似,为了克服牛顿法中求导这一缺点,使用g(x)代替,其中g(x)如下:;因此迭代函数为:4.2算法描述迭代步数为i(i=0),精度要求为eStep1.计算Step2.若norm(x(i+1)-x(i))e,i=i+1,重复上述步骤,直到达到精度。三.简易牛顿法5.1原理描述简易牛顿法,是在牛顿法
6、的基础上,对初始点只求一次导数,然后每次利用代替中的,这样处理后减少了牛顿的计算量,降低了空间上对各个迭代点导数的存储,但同样降低了运算速率.5.2算法描述初值设为x0,i为迭代步数,精度为eStep1.Step2.若,迭代结束,若,转至下一步Step3.,继续迭代前两步,直至达到精度。一.计算机配置1.处理器Inter(R)Core(TM)i3CPUM350@2.27GHz2.27GHz2.安装内存(RAM):4.00GB(3.87GB可用)3.系统类型Windows764位操作系统4.Matlab版本Matlab7.12.0(R2011a)二.案例分析参数设置:精度:最大迭代次数
7、:30函数选取:,如下图:图7-1函数图形初值选取:五种方法的第一个初值点均选相同点,对于牛顿法,简易牛顿法,Steffensen法,只需要一个初值点。而对分法,割线法需要两初值点的情况下,我们根据函数图象可以设置一个合适的初值点,由于某些算法带有局部性,本文在此考虑比较各个算法在区间[2,3]上寻找零点的优越性。一.输出结果本文通过比较各个算法的迭代步数,迭代精度,运算时间,来评判各个算法的优越性,并描绘出计算方程过程中的几何图像。求区间[2,3]上零点
此文档下载收益归作者所有