欢迎来到天天文库
浏览记录
ID:56926353
大小:490.00 KB
页数:10页
时间:2020-07-24
《非线性方程数值解法及其指导应用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、非线性方程数值解法及其应用摘要:数值计算方法主要研究如何运用计算机去获得数学问题的数值解的理论和算法。本文主要介绍非线性方程的数值解法以及它在各个领域的应用。是直接从方程出发,逐步缩小根的存在区间,或逐步将根的近似值精确化,直到满足问题对精度的要求。我将从二分法、Steffensen加速收敛法、Newton迭代法、弦截法来分析非线性方程的解法及应用。关键字:非线性方程;二分法;Steffensen加速收敛法;代数Newton法;弦截法一、前言随着科技技术的飞速发展,科学计算越来越显示出其重要性。科学计算的应用之广已遍及各行各业,例如气象资料的分析图像,飞机、汽车及轮船的外形设计
2、,高科技研究等都离不开科学计算。因此经常需要求非线性方程f(x)=O的根。方程f(x)=O的根叫做函数f(x)的零点。由连续函数的特性知:若f(x)在闭区间[a,b]上连续,且f(a)·f(b)3、更小的区间。如此继续下去,直到求出满足精度要求的近似值。设函数f(x)在区间[a,b]上连续,且f(a)·f(b)4、程中,可以获得一个近似根序列,该序列必以根为极限。在实际计算时,不可能完成这种无穷过程,其实也没有这种必要。由于所以,只要二分足够次(即k足够大),便有。这里为事先给定的精度,再注意到,所以,在实际计算时,只要某个有限区间的长度小于,就可以停止计算,并取该有限区间的中点作为根的近似值。二分法的优点是算法简单及近似根序列一定收敛,缺点是收敛速度比较慢。2、Steffensen加速收敛法如图所示,由两点,连接PQ弦有方程:0y=x令y=x,可得点,有解式:3、代数Newton法设n次代数方程用Newton迭代法求有限区间的实根,则要计算,一般采用九韶算法。由Taylor展式L比较x5、的同次幂系数得:则得出代数Newton的公式:4、弦截法代数Newton虽然收敛速度快,但需要计算导数,如果函数比较复杂,就会带来一些不便。因此要考虑一种能避开导数运算的迭代公式。可以用平均变化率:来近似代替。在牛顿迭代公式中,用来近似代替,就得到迭代公式按这个公式进行迭代计算的方法就称为弦截法。弦截法的收敛速度比牛顿法慢得多,为了加快收敛速度,改用差商来代替牛顿迭代公式中的导数,于是得到下列快速弦截法的迭代公式因为在计算时,用了前面两步的信息和,所以收敛速度就提高了。应该注意,在使用快速弦截法迭代公式时,必须先给出两个初始近似根和。弦截法的优点是收敛速度也相当快。三、非线性方6、程数值解法的MATLAB实现1、二分法(1)MATLAB程序:(2)二分法的MATLAB实现及分析:用二分法计算在区间[1,2]上的根。因为二分法只能求单根,首先搜索函数在区间[1.2]的根的情况。在MATLAB命令窗口输入程序:x=1:0.01:2;y=2*x.^3+2*x.^2-5;plot(x,y)得到图1。从图1中可以得到函数在区间[1,2]间有唯一的一个大于1.35而小于1.4的单根。建立函数的程序functionf=f(x);f=2*x^3+2*x^2-5;在命令窗口输入erfen(‘f',1,2,0.0001),得到结果x=1.0929。图1(3)二分法的手算:,7、因为,所以f(x)在[1,2]上有根。下面是二分法的求解过程:kabf(x)的符号11.000002.00001.5000+21.000001.50001.2500+31.000001.25001.125+41.000001.12501.0625—51.062501.12501.09375+61.062501.093751.078125—71.0781251.093751.0859375—81.08593751.093751.08984375—91.089843751.093751.0917
3、更小的区间。如此继续下去,直到求出满足精度要求的近似值。设函数f(x)在区间[a,b]上连续,且f(a)·f(b)4、程中,可以获得一个近似根序列,该序列必以根为极限。在实际计算时,不可能完成这种无穷过程,其实也没有这种必要。由于所以,只要二分足够次(即k足够大),便有。这里为事先给定的精度,再注意到,所以,在实际计算时,只要某个有限区间的长度小于,就可以停止计算,并取该有限区间的中点作为根的近似值。二分法的优点是算法简单及近似根序列一定收敛,缺点是收敛速度比较慢。2、Steffensen加速收敛法如图所示,由两点,连接PQ弦有方程:0y=x令y=x,可得点,有解式:3、代数Newton法设n次代数方程用Newton迭代法求有限区间的实根,则要计算,一般采用九韶算法。由Taylor展式L比较x5、的同次幂系数得:则得出代数Newton的公式:4、弦截法代数Newton虽然收敛速度快,但需要计算导数,如果函数比较复杂,就会带来一些不便。因此要考虑一种能避开导数运算的迭代公式。可以用平均变化率:来近似代替。在牛顿迭代公式中,用来近似代替,就得到迭代公式按这个公式进行迭代计算的方法就称为弦截法。弦截法的收敛速度比牛顿法慢得多,为了加快收敛速度,改用差商来代替牛顿迭代公式中的导数,于是得到下列快速弦截法的迭代公式因为在计算时,用了前面两步的信息和,所以收敛速度就提高了。应该注意,在使用快速弦截法迭代公式时,必须先给出两个初始近似根和。弦截法的优点是收敛速度也相当快。三、非线性方6、程数值解法的MATLAB实现1、二分法(1)MATLAB程序:(2)二分法的MATLAB实现及分析:用二分法计算在区间[1,2]上的根。因为二分法只能求单根,首先搜索函数在区间[1.2]的根的情况。在MATLAB命令窗口输入程序:x=1:0.01:2;y=2*x.^3+2*x.^2-5;plot(x,y)得到图1。从图1中可以得到函数在区间[1,2]间有唯一的一个大于1.35而小于1.4的单根。建立函数的程序functionf=f(x);f=2*x^3+2*x^2-5;在命令窗口输入erfen(‘f',1,2,0.0001),得到结果x=1.0929。图1(3)二分法的手算:,7、因为,所以f(x)在[1,2]上有根。下面是二分法的求解过程:kabf(x)的符号11.000002.00001.5000+21.000001.50001.2500+31.000001.25001.125+41.000001.12501.0625—51.062501.12501.09375+61.062501.093751.078125—71.0781251.093751.0859375—81.08593751.093751.08984375—91.089843751.093751.0917
4、程中,可以获得一个近似根序列,该序列必以根为极限。在实际计算时,不可能完成这种无穷过程,其实也没有这种必要。由于所以,只要二分足够次(即k足够大),便有。这里为事先给定的精度,再注意到,所以,在实际计算时,只要某个有限区间的长度小于,就可以停止计算,并取该有限区间的中点作为根的近似值。二分法的优点是算法简单及近似根序列一定收敛,缺点是收敛速度比较慢。2、Steffensen加速收敛法如图所示,由两点,连接PQ弦有方程:0y=x令y=x,可得点,有解式:3、代数Newton法设n次代数方程用Newton迭代法求有限区间的实根,则要计算,一般采用九韶算法。由Taylor展式L比较x
5、的同次幂系数得:则得出代数Newton的公式:4、弦截法代数Newton虽然收敛速度快,但需要计算导数,如果函数比较复杂,就会带来一些不便。因此要考虑一种能避开导数运算的迭代公式。可以用平均变化率:来近似代替。在牛顿迭代公式中,用来近似代替,就得到迭代公式按这个公式进行迭代计算的方法就称为弦截法。弦截法的收敛速度比牛顿法慢得多,为了加快收敛速度,改用差商来代替牛顿迭代公式中的导数,于是得到下列快速弦截法的迭代公式因为在计算时,用了前面两步的信息和,所以收敛速度就提高了。应该注意,在使用快速弦截法迭代公式时,必须先给出两个初始近似根和。弦截法的优点是收敛速度也相当快。三、非线性方
6、程数值解法的MATLAB实现1、二分法(1)MATLAB程序:(2)二分法的MATLAB实现及分析:用二分法计算在区间[1,2]上的根。因为二分法只能求单根,首先搜索函数在区间[1.2]的根的情况。在MATLAB命令窗口输入程序:x=1:0.01:2;y=2*x.^3+2*x.^2-5;plot(x,y)得到图1。从图1中可以得到函数在区间[1,2]间有唯一的一个大于1.35而小于1.4的单根。建立函数的程序functionf=f(x);f=2*x^3+2*x^2-5;在命令窗口输入erfen(‘f',1,2,0.0001),得到结果x=1.0929。图1(3)二分法的手算:,
7、因为,所以f(x)在[1,2]上有根。下面是二分法的求解过程:kabf(x)的符号11.000002.00001.5000+21.000001.50001.2500+31.000001.25001.125+41.000001.12501.0625—51.062501.12501.09375+61.062501.093751.078125—71.0781251.093751.0859375—81.08593751.093751.08984375—91.089843751.093751.0917
此文档下载收益归作者所有