欢迎来到天天文库
浏览记录
ID:14154915
大小:245.50 KB
页数:9页
时间:2018-07-26
《非线性方程的二分法,迭代法,松弛迭代法,aitken迭代法,steffensen迭代法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、西京学院数学软件实验任务书课程名称数学软件实验班级数0901学号0912020119姓名王震实验课题非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法实验目的熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容非线性方程的二分法非线性方程的迭代法非线性方程的松弛迭代法非线性方程的Aitken迭代法非线性方程的Steffensen迭代法成绩教师【实验课题】非线性方程的二分法,迭代法,松弛迭
2、代法,Aitken迭代法,Steffensen迭代法【实验目的】熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法【实验内容】1、二分法假定方程在区间内有唯一的实根。此时,即为有根区间。1.1基本思想:首先确定有根区间,然后平分有根区间,通过判断区间端点处的函数值符号,逐步将有根区间缩小,直至有根区间足够地小,便可求出满足给定精度要求的根的近似值。1.2算法过程:取,将代入方程,判断它的正负号,并用替换与它同方向的区间端点,依次循环得到:其中,每一段的长度都是前一段长度的一半。即:因此,如果二分过程无限进行下去,则有根区间最终
3、必收敛于一点,该点就是所求方程的根。1.3算法步骤:步骤1输入有根区间的端点,及预先给定的精度步骤2步骤3若,则输出.计算结束;若,则,转向步骤4;否则,转向步骤4步骤4若,则输出方程满足精度的根,结束;否则转向步骤22、迭代法2.1基本思想:给定方程的一个初始近似根,然后反复使用某一公式来校正这个初始近似根,使之逐步精确化,直到满足预先给定的精度要求为止。2.2算法过程:取一个根的初始近似值,计算,,…,,…,得到一个迭代序列,。若迭代序列收敛,则称迭代公式或迭代法是收敛的,否则称迭代公式是发散的。假设迭代序列收敛于,即则当连续时,对迭代公式两边取极限,可得,即,
4、所以由此表明,序列的极限就是方程的根。同样,对于预先给定的精度,只要适当大且满足就可结束计算并取。2.3算法步骤:1、确定方程的等价形式2、为使迭代过程收敛,要求在有根区间内满足3、选取初始近似根,按迭代公式进行计算,4、当(是预定精度)时停止计算,取3、松弛迭代法求解思路:对于式子,给两边同时减去,得:即得到迭代公式:,上式可变形为;令:,则:其中为松弛因子。4、Aitken迭代法求解思路:设线性收敛到,记,有当充分大时有(1)(2)其中,,将(1),(2)相除,即:从而可求得:令此时得到一个新的序列它比原序列收敛得快。5、Steffensen迭代法求解思路:设是
5、根的某个预测值,用迭代公式校正一次得:,则有:(1)(2)(1)(2)相除就得到Steffensen迭代法,即:因此,与Aitken迭代法不同的是,Steffensen迭代法代入数值时用已算出来的进行计算,而Aitken迭代法是在原序列的基础上产生新的序列。【程序】%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function[x,k]=bisect()a=input('pleaseinputanumbera=');b=input('pleaseinputanumberb=');err=inp
6、ut('pleaseinputanumbererr=');ya=fun(a);yb=fun(b);ifya*yb>0disp('初值不符!');returnendk=0;while(b-a)>errk=k++1;c=(a+b)/2;yc=fun(c);ifyc==0a=c;b=c;elseifyb*yc>0b=c;yb=yc;elsea=c;ya=yc;endendx=(a+b)/2;k;end%%%%%%%%%%%%%%%%%%%%%%%%%%%function[x,k]=diedai1()x0=input('输入初值x0=');N=input('请输入最
7、大迭代次数N=');err=input('请输入最大极限err=');k=0;x1=fun1(x0);cha=abs(x1-x0);whilecha>errk=k+1;x0=x1;x1=fun1(x0);cha=abs(x1-x0);ifk>Ndisp('超过迭代次数!');break;endendx=x1;k;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function[x,k]=Aitken()x0=input('输入初值x0=');N=input('请输入最大迭代次数N=');err=input('请输入最大
此文档下载收益归作者所有