数值线性代数课设资料-金锄头文库-凯发app苹果版

上传人:路开 文档编号:563950846 上传时间:2024-07-02 格式:doc 页数:22 大小:701.08kb
数值线性代数课设资料_第1页
第1页 / 共22页
数值线性代数课设资料_第2页
第2页 / 共22页
数值线性代数课设资料_第3页
第3页 / 共22页
数值线性代数课设资料_第4页
第4页 / 共22页
数值线性代数课设资料_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数值线性代数课设资料》由会员分享,可在线阅读,更多相关《数值线性代数课设资料(22页珍藏版)》请在金锄头文库上搜索。

1、数值线性代数课程设计报告姓名:陶英学号:081410124任课教师:杨熙南京航空航天大学2016 年 6 月 22日求解线性方程组的三种迭代法及其结果比较 摘要当今的环境下,数值计算越来越依赖于计算机。大规模科学计算和工程技术中许多问题的解决,最终归结为大型稀疏线性方程组的求解,其求解时间在整个问题求解时间中占有很大的比重,有的甚至达到80%。由于现今科学研究和大型项目中各种复杂的可以对计算精度和计算速度的要求越来越高。因此,作为大规模科学计算基础的线性代数方程组的高效数值求解引起了人们的普遍关注。这种方程组的求解一般采用迭代法。关于迭代法,是有很多种解决公式的:jacobi,g-s和超松弛迭

2、代法。这三种方法的原理大致相同,jacobi需要给定初向量,g-s则需要给定初值,超松弛法是对guass-seidel迭代法的加权平均改造。而本文则是对大型稀疏线性方程组迭代求解与三种迭代法(jacobi,gauss-seidel和超松弛迭代法)的收敛速度与精确解的误差比较做出研究。关键词:jacobi迭代法;gauss-seidel迭代法;sor迭代法;线性方程组1 方法与理论的叙述1.1迭代法简介1.jacobi迭代法:对于非奇异线性方程组ax=b,令a=d-l-u,其中则原方程组可改写为: (2.2)其中给定初始向量:由(2.2)可以构造迭代公式:其分量形式为:2. guass-seid

3、el迭代法:类似于jacobi迭代法,给定初值:令则得到guass-seidel公式:其分量形式为:3.超松弛迭代法(sor 迭代法):sor迭代法是对guass-seidel迭代法的加权平均改造,即为guass-seidel迭代解,即它的分量形式为:其中称为松弛因子,当1时称为超松弛;当1时叫低松弛;=1时就是guass-seidel迭代。上述三种经典迭代法收敛的充分必要条件是迭代矩阵谱半径小于1。谱半径不易求解,而在一定条件下,通过系数矩阵a的性质可判断迭代法的收敛性。定理1:若系数矩阵a是严格对角占优或不可约对角占优,则jacobi迭代法和gauss-seidel迭代法均收敛。定理2:(

4、1)sor迭代法收敛的必要条件是0w2;(2)若系数矩阵a严格对角占优或不可约对角占优且0w clear x=linspace(0,1);truy=(1-0.5)/(1-exp(-1/1)*(1-exp(-x./1) x.*0.5;figure;plot(x,truy,g,linewidth,1.5);hold on;grid图:2.3三种迭代法jacobi法:代码见附录eps=1结果:迭代次数k:22273结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)eps=0.1结果:迭代次数k:8753结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)eps=0.01结果:迭代次

5、数k:661结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)g-s迭代法:代码见附录eps=1结果:迭代次数k:11125结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)eps=0.1结果:迭代次数k:4394结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)eps=0.01结果:迭代次数k:379结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)超松弛法:代码见附录eps=1 w=1.56结果:迭代次数k:3503结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)eps=0.1 w=1.56结果:迭代次数k:1369结果与精确解的比较图(

6、绿色粗线是精确解,黑色细线是迭代结果)eps=0.01 w=1.56结果:迭代次数k:131结果与精确解的比较图(绿色粗线是精确解,黑色细线是迭代结果)3 分析讨论及心得体会3.1三种方法的比较jacobi、g-s、超松弛法,三者都能够取得对精确解的良好逼近,但是,在相同的精度条件下,三者的收敛速度是不一样的,jacobig-s超松弛,也就是说,在迭代次数相同的条件下,精度:jacobig-sj l(i,j)=-a(i,j);end endendu=zeros(n-1);for i=1:n-1 for j=1:n-1 if ij u(i,j)=-a(i,j); end endendb=d(l u);g=db;while 1 z=b*y g; if norm(z-y,inf)j l(i,j)=-a(i,j);end endendu=zeros(n-1);for i=1:n-1 for j=1:n-1 if ij u(i,j)=-a(i,j);

展开阅读全文
相关搜索

最新文档


当前位置:凯发app苹果版 > 高等教育 > 统计学

 |金锄头文库凯发app苹果版的版权所有
经营许可证:蜀icp备13022795号 | 川公网安备 51140202000112号

网站地图