数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)

数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)

ID:23152781

大小:195.82 KB

页数:10页

时间:2018-11-04

数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)_第1页
数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)_第2页
数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)_第3页
数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)_第4页
数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)_第5页
资源描述:

《数学实验“非线性方程的二分法,迭代法,aitken迭代法,steffensen迭代法”实验报告(内含matlab程序代码)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西京学院数学软件实验任务书课程名称数学软件实验班级数0901学号0912020107姓名李亚强实验课题非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法实验目的熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容非线性方程的二分法非线性方程的迭代法非线性方程的松弛迭代法非线性方程的Aitken迭代法非线性方程的Steffensen迭代法成绩教师-9-实验六实验报告

2、一、实验名称:非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法。二、实验目的:进一步熟悉理解掌握最速下降法与共轭梯度法解法思路熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法,提高matlab编程能力。三、实验要求:非线性方程,应用二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法编程求解非线性方程的数值解。四、实验原理:1.二分法:设函数在区间上连续,而且,则在区间上至少有一个根。首先确定有限区间:依据零点定理。设,且,则方程在区间上至少

3、有一个根。如果在上恒正或恒负,则此根唯一。令若,则为有根区间,否则为有根区间。记新的有根区间为,则且;对重复上述做法得:且-9-设所求的根为,则,即,由得取为的近似解。1.不动点迭代法对于非线性方程:常常可以化成等价的方程可以选取一个初始近似值,构造迭代序列如此产生序列。这种迭代方法称为不动点迭代,或Picard迭代。这个原理看似很容易直观理解,但是却有相当深刻的数学内涵,数学系的学生在泛函分析与微分方程理论等多门专业课程里都会遇到。如果连续,而且,则是的一个不动点。因此为方程的一个根。2.Aitken加速迭代由初值出发,计算出后,便可在曲线

4、上找到两个点。将这两点所在的直线与直线的交点设为,则点满足:解得:,将视为新的初值,重复上述步骤可得,由此产生迭代公式,-9-。1.Steffensen迭代法该迭代法解方程可以看成是另一种不动点迭代:其中迭代函数为得到迭代公式为:;一、实验内容:%二分法解非线性方程functioner_fen(f,a,b,esp);f1=subs(f,a);f2=subs(f,b);iff1*f2>0disp('该方程在【a,b】上无解!');elseiff1==0root=a;elseiff2==0root=b;-9-elsea0=a;b0=b;A=[];

5、whileabs((b0-a0)/2)>=esphalf=(a0+b0)/2;fa=subs(f,a0);fb=subs(f,b0);fhalf=subs(f,half);iffhalf==0root=half;break;elseiffa*fhalf<0b0=half;elsea0=half;endA=[A,half];end-9-root=(b0+a0)/2;endrootA%不动点迭代(Picard迭代)function[x,time]=Picard(f,x0,tol)%结果给出迭代次数%x0为迭代初值%tol为误差容限if(nargi

6、n==2)tol=1.0e-5;endwucha=0.5;%设置误差初值x1=x0;%x1与x0为前后两次计算结果time=0;%用于记录迭代次数while(wucha>tol)x1=subs(f,x0)+x0;-9-%迭代计算wucha=abs(x1-x0);x0=x1;%更新x0的值在循环中这一句非常重要time=time+1;%记下迭代次数endx=x1;%Aitken加速收敛方法function[gen,time]=Aitken(func,x0,tol)if(nargin==2)tol=1.0e-5;endgen=x0;x(1:2)=

7、[0,0];t=0;%记录迭代次数m=0;x2=x0;wucha=0.1;%设置误差初值-9-while(wucha>tol)t=t+1;%记下累积一次迭代次数x1=x2;temp=gen;gen=subs(func,temp)+temp;x(t)=gen;%迭代超过两次使用Aitken加速if(t>2)m=m+1;x2=x(m)-(x(m+1)-x(m))^2/(x(m+2)-2*x(m+1)+x(m));%给出两次迭代误差wucha=abs(x2-x1);endendgen=x2;%Steffensen加速方法计算非线性方程functio

8、n[gen,time]=Steffensen(fun,x0,tol)-9-%如果缺省误差参数,默认为10的-5次方if(nargin==2)tol=1.0e-5;e

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。