欢迎来到天天文库
浏览记录
ID:18644122
大小:84.50 KB
页数:7页
时间:2018-09-20
《jacobi,高斯,牛顿迭代》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二:迭代法求解方程组姓名:徐烨学号:08072105时间:2010-11-17一、实验目的利用jacobi迭代法和gauss-seidei迭代法求解线性方程组,利用newton迭代法求解非线性方程组。在求解过程中,利用这三种方法的迭代原理,根据迭代法的求解流程,写出三种迭代法的迭代格式,学习三种迭代法的原理和解题步骤,并使用matlab软件求解方程。在实验过程中,分别取不同的初值进行求解,并做结果分析,解怒同德方程来比较这三种迭代方法的利弊。二、实验步骤newton迭代法⒈newton迭代原理考虑非线性方程f(x)=0,求解她的困难在于f是非线性函数。为克服这一困难,考虑它的线性
2、展开。设当前点为Xk,在Xk处的Taylor展开式为ff令上式右端为0.解其方程得到此式就称为Newton公式。2.newton迭代法的matlab实现functionx=newton(fname,dfname,x0,e,N)%用途:牛顿迭代法解非线性方程组分f(x)=0%fname和dfname分别表示f(x)及其到函数的M函数句柄或内嵌函数的表达式%x0为迭代初值,e为精度%x为返回数值解,并显示计算过程,设置迭代次数上线N以防发散ifnargin<5,N=500;endifnargin<4,e=le-4;endx=x0;x0=x+2*e;k=0;fprintf('It.no=%
3、2dx%[2d]=%12.9f',k,k,x)whileabs(x0-x)>e&k4、的解为:It.no=0xIt.no=1x[1]=1.888888889It.no=2x[2]=1.879451567It.no=3x[3]=1.879385245It.no=4x[4]=1.879385242x=1.879385241571817e+000②初值为5时,新建一个文件,输入:fun=inline('x^3-3*x-1');dfun=inline('3*x^2-3');x=newton(fun,dfun,5,0.5e-6)即可得此方程的解为:It.no=0xIt.no=1x[1]=3.486111111It.no=2x[2]=2.562343095It.no=3x[3]=5、2.075046554It.no=4x[4]=1.902660228It.no=5x[5]=1.879777024It.no=6x[6]=1.879385355It.no=7x[7]=1.879385242x=1.879385241571826e+000③初值为8时,新建一个文件,输入:fun=inline('x^3-3*x-1');dfun=inline('3*x^2-3');x=newton(fun,dfun,8,0.5e-6)即可得此方程的解为:It.no=0xIt.no=1x[1]=5.423280423It.no=2x[2]=3.754505841It.no=3x[3]=26、.719579123It.no=4x[4]=2.148629510It.no=5x[5]=1.920654127It.no=6x[6]=1.880593045It.no=7x[7]=1.879386323It.no=8x[8]=1.879385242It.no=9x[9]=1.879385242x=1.879385241571817e+000gauss-seidel实验过程1.gauss-seidel迭代原理将方程组Ax=b(设)化成等价方程组:采用迭代格式:2.gauss-seidel迭代法的matlab实现functionx=jacobi(A,b,x0,emg,N)%A是线性方程7、组的系数矩阵%b是值向量%x0是迭代初始向量%N是迭代上限,诺迭代次数大于>N,则迭代失败%emg是控制精度%用gauss-seidei迭代法求解线性方程组Ax=b的解%k表示迭代次数%x表示用迭代法求得的解线性方程组的近似解ifnargin<5N=500;elseN=N;endn=length(b);x1=zeros(n,1);x2=zeros(n,1);x1=x0;k=0;r=max(abs(b-A*x1));whiler>emgfori=1:nsum
4、的解为:It.no=0xIt.no=1x[1]=1.888888889It.no=2x[2]=1.879451567It.no=3x[3]=1.879385245It.no=4x[4]=1.879385242x=1.879385241571817e+000②初值为5时,新建一个文件,输入:fun=inline('x^3-3*x-1');dfun=inline('3*x^2-3');x=newton(fun,dfun,5,0.5e-6)即可得此方程的解为:It.no=0xIt.no=1x[1]=3.486111111It.no=2x[2]=2.562343095It.no=3x[3]=
5、2.075046554It.no=4x[4]=1.902660228It.no=5x[5]=1.879777024It.no=6x[6]=1.879385355It.no=7x[7]=1.879385242x=1.879385241571826e+000③初值为8时,新建一个文件,输入:fun=inline('x^3-3*x-1');dfun=inline('3*x^2-3');x=newton(fun,dfun,8,0.5e-6)即可得此方程的解为:It.no=0xIt.no=1x[1]=5.423280423It.no=2x[2]=3.754505841It.no=3x[3]=2
6、.719579123It.no=4x[4]=2.148629510It.no=5x[5]=1.920654127It.no=6x[6]=1.880593045It.no=7x[7]=1.879386323It.no=8x[8]=1.879385242It.no=9x[9]=1.879385242x=1.879385241571817e+000gauss-seidel实验过程1.gauss-seidel迭代原理将方程组Ax=b(设)化成等价方程组:采用迭代格式:2.gauss-seidel迭代法的matlab实现functionx=jacobi(A,b,x0,emg,N)%A是线性方程
7、组的系数矩阵%b是值向量%x0是迭代初始向量%N是迭代上限,诺迭代次数大于>N,则迭代失败%emg是控制精度%用gauss-seidei迭代法求解线性方程组Ax=b的解%k表示迭代次数%x表示用迭代法求得的解线性方程组的近似解ifnargin<5N=500;elseN=N;endn=length(b);x1=zeros(n,1);x2=zeros(n,1);x1=x0;k=0;r=max(abs(b-A*x1));whiler>emgfori=1:nsum
此文档下载收益归作者所有