文档介绍:: .
佛山科学技术学院
实验报告
课程名称数值分析实验项目迭代法专业班级机械工程姓名余红杰学号211: .
佛山科学技术学院
实验报告
课程名称数值分析实验项目迭代法专业班级机械工程姓名余红杰学号2111505010指导教师陈剑成绩日期月日实验目的1、在计算机上用Jacobi迭代法和Gauss-Seidel迭代法求线性方程组。
2、在计算机上用二分法和Newton迭代法求非线性方程的根。
实验要求1、按照题目要求完成实验内容;2、写出相应的Matlab程序;3、给出实验结果(可以用表格展示实验结果);4、分析和讨论实验结果并提出可能的优化实验。
5、写出实验报告。
实验步骤1、用Matlab编写Jacobi迭代法和Gauss-Seidel迭代法求线性方程组Ax=b的程序。
2、用Matlab编写二分法和Newton法求非线性方程f(x)=0的根程序。
[3。一2)3、设A=021,b=(1,3,1)r,对于线性方程组Ax=b,考虑如下问题:
一212V(1)分别写出Jacobi迭代矩阵和Gauss-Seidel迭代矩阵(2)用Jacobi迭代法和Gauss-Seidel迭代法解该方程时,是否收敛?谁收敛的更快?
(3)用实验步骤1编好的两种迭代法程序进行实验,通过数值结果验证(2)的结论。
4、用调试好的二分法和Newton迭代法程序解决如下问题求3—sinx+x3-20=0的根,其中控制精度eps=10-8,最大迭代次数M=50。
实验结果1.%[x,B]=Jacob(A,b,n)%Jacobi迭代求解方程组Ax=b,系数矩阵A,迭代次数n%求解的准备工作,构建各迭代系数阵等:
m=length(A);D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);J=D"(-1)*(L+U);B=J;f=D"(-1)*b;%初始化x即启动值:
x=zeros(m,1);%根据x(k+1)=Jx(k)+f进行矩阵运算:
fori=1:n
x=J*x+f;end%[x,G]=GauSeid(A,b,n)%Gauss-Seidel迭代求解方程组Ax=b,系数矩阵A,迭代次数n%求解的准备工作,构建各迭代系数阵等:
m=length(A);D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);G=inv(D-L)*U;f=inv(D-L)*b;%初始化矩阵:
%根据x(k+1)=Gx(k)+f进行矩阵运算:
x=zeros(m,1);fori=1:n
x=G*x+f;end
2.%(x1,x2,p,n)%利用二分法求根,区间[x1,x2]%p为精度a=x1;b=x2;%进行n次二分:
%第一个条件判断根在a,b区间内%第二个条件判断是否中间点就是根,是则迭代终