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

上传人:痛*** 文档编号:168509686 上传时间:2022-11-10 格式:DOC 页数:10 大小:198KB
返回 下载 相关 举报
数学实验“非线性方程的二分法,迭代法,Aitken迭代法,Steffensen迭代法”实验报告(内含matlab程序代码)_第1页
第1页 / 共10页
数学实验“非线性方程的二分法,迭代法,Aitken迭代法,Steffensen迭代法”实验报告(内含matlab程序代码)_第2页
第2页 / 共10页
数学实验“非线性方程的二分法,迭代法,Aitken迭代法,Steffensen迭代法”实验报告(内含matlab程序代码)_第3页
第3页 / 共10页
点击查看更多>>
资源描述
西京学院数学软件实验任务书课程名称数学软件实验班级数0901学号姓名李亚强实验课题非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法实验目的熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法实验要求运用Matlab/C/C+/Java/Maple/Mathematica等其中一种语言完成实验内容非线性方程的二分法非线性方程的迭代法非线性方程的松弛迭代法非线性方程的Aitken迭代法非线性方程的Steffensen迭代法成绩教师实验六实验报告一、 实验名称:非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法。二、 实验目的:进一步熟悉理解掌握最速下降法与共轭梯度法解法思路熟悉非线性方程的二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法,提高matlab编程能力。三、 实验要求:非线性方程,应用二分法,迭代法,松弛迭代法,Aitken迭代法,Steffensen迭代法编程求解非线性方程的数值解。四、 实验原理:1 二分法:设函数在区间上连续,而且,则在区间上至少有一个根。首先确定有限区间:依据零点定理。设 ,且,则方程 在区间上至少有一个根。如果在上恒正或恒负,则此根唯一。令若,则为有根区间,否则为有根区间。记新的有根区间为,则且;对重复上述做法得:且设所求的根为,则,即,由得取为的近似解。2 不动点迭代法对于非线性方程:常常可以化成等价的方程可以选取一个初始近似值,构造迭代序列如此产生序列。这种迭代方法称为不动点迭代,或Picard 迭代。这个原理看似很容易直观理解,但是却有相当深刻的数学内涵,数学系的学生在泛函分析与微分方程理论等多门专业课程里都会遇到。如果连续,而且,则是的一个不动点。因此为方程的一个根。3 Aitken加速迭代由初值出发,计算出后,便可在曲线上找到两个点。将这两点所在的直线与直线的交点设为,则点满足:解得:,将视为新的初值,重复上述步骤可得,由此产生迭代公式,。4 Steffensen迭代法该迭代法解方程可以看成是另一种不动点迭代:其中迭代函数为得到迭代公式为:;五、 实验内容:%二分法解非线性方程function er_fen(f,a,b,esp);f1=subs(f,a);f2=subs(f,b);if f1*f20 disp(该方程在【a,b】上无解!);elseif f1=0 root=a;elseif f2=0 root=b;else a0=a; b0=b; A=; while abs(b0-a0)/2)=esp half=(a0+b0)/2; fa=subs(f,a0); fb=subs(f,b0); fhalf=subs(f,half); if fhalf=0 root=half; break; elseif fa*fhalftol) x1=subs(f,x0)+x0;%迭代计算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)=0,0;t=0; %记录迭代次数m=0;x2=x0;wucha=0.1; %设置误差初值while(wuchatol) t=t+1; %记下累积一次迭代次数 x1=x2; temp=gen; gen=subs(func,temp)+temp; x(t)=gen; %迭代超过两次使用 Aitken加速 if(t2) 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加速方法计算非线性方程function gen,time=Steffensen(fun,x0,tol)%如果缺省误差参数,默认为10 的-5次方if(nargin=2)tol=1.0e-5;end%设置误差初值time=0; %记迭代次数wucha=0.1; %设置前后两次迭代的误差gen=x0;while(wuchatol)x1=gen;y=subs(fun,x1)+x1;z=subs(fun,y)+y;%加速公式gen=x1-(y-x1)2/(z-2*y+x1);wucha=abs(gen-x1);time=time+1; %迭代加一次的记录endgen; %计算结果六、 实验结果: syms x;er_fen(sin(x),-2,1,1.0e-2)root = -0.0020A = -0.5000 0.2500 -0.1250 0.0625 -0.0313 0.0156 -0.0078 0.0039
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!