资源描述:
《雅可比和高斯赛戴尔》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、凯里学院数学科学学院数学与应用数学专业数学实验报告实验序号:05日期:2012年11月24日班级10数本(2)班姓名旷竹学号2010405060实验名称用雅可比迭代和高斯---赛德尔迭代解方程问题背景与实验目的:1)学会用MATLAB软件数值求解线性代数方程组,对迭代法的收敛性和方程组的病态性作初步分析;2)通过实例学习用线性代数方程组解决简化的实际问题。实验内容:用雅可比迭代和高斯---赛德尔迭代(取相同的初值)解方程P144第一题(3)a、b、c。6凯里学院数学科学学院数学与应用数学专业实验原理与数学模型:用雅可比迭代和高斯---赛德尔迭代,取相同的初值,并分析收敛性
2、。一:【1】编写雅可比迭代公式MATLAB程序并将其建立为.M文件function[x,k,index]=Jacobi(A,b,ep,it_max)%求解线性方程组的Jacobi迭代法,其中%A---方程组的系数矩阵%b---方程组的右端项%ep---精度要求。省缺为1e-5%it_max---最大迭代次数,省缺为100%x---方程组的解%k---迭代次数%index---index=1表示迭代收敛到指定要求;%index=0表示迭代失败ifnargin<4it_max=100;endifnargin<3ep=1e-5;endn=length(A);k=0;x=zero
3、s(n,1);y=zeros(n,1);index=1;while1fori=1:ny(i)=b(i);forj=1:nifj~=iy(i)=y(i)-A(i,j)*x(j);endendifabs(A(i,i))<1e-10
4、k==it_maxindex=0;return;endy(i)=y(i)/A(i,i);endifnorm(y-x,inf)5、A,b,x0,errorBound,maxSp)%Gauss-Seidel迭代法求解线性方程组%A-系数矩阵b-右端向量x0-初始迭代点errorBound-近似精度maxSp-最大迭代次数%v-近似解sN-迭代次数vChain-迭代过程的所有值step=0;error=inf;s=size(A);D=zeros(s(1));vChain=zeros(5,3);%5次迭代次数k=1;fx0=x0;fori=1:s(1)D(i,i)=A(i,i);end;L=-tril(A,-1);U=-triu(A,1);whileerror>=errorBound&step6、x0=inv(D)*(L+U)*x0+inv(D)*b;vChain(k,:)=x0';k=k+1;error=norm(x0-fx0);fx0=x0;step=step+1;endv=x0;sN=step;6凯里学院数学科学学院数学与应用数学专业二:(1)用雅可比迭代方法分别计算abc三个方程(a):在MATLAB中输入A=[1-9-10;-915;871];B=[-104];[x,k,index]=Jacobi(A,B,1e-5,5)运行求解结果为x=-50298-19984218k=5index=0----------即发散(b):在MATLAB中输入A=[5-1-
7、3;-124;-3415];B=[-104];[x,k,index]=Jacobi(A,B,1e-5,5)运行求解结果为x=6.048133.9713-8.0907k=5index=0----------即发散6凯里学院数学科学学院数学与应用数学专业(c):在MATLAB中输入A=[1045;4107;5710];B=[-104];[x,k,index]=Jacobi(A,B,1e-5,5)运行求解结果为x=-0.2611-0.30330.8782k=5index=0----------即发散(2)用高斯---赛德尔迭代公式分别计算abc三个方程(a):在MATLAB中输
8、入>>A=[1-9-10;-915;871];B=[-104];x0=[0;0;0];[x,k,index]=gaussSeidel(A,B,1e-5,5)运行求解结果为X=-0.45111.2383-1.0596K=5index=8.3455---------------即发散(b):在MATLAB中输入>>A=[1-9-10;-915;871];B=[-104];x0=[0;0;0];[x,k,index]=gaussSeidel(A,B,1e-5,5)6凯里学院数学科学学院数学与应用数学专业运行求解结果为X=-0.098