关于病态线性方程组解法的开题报告
对病态方程组的处理方法研究
对病态方程组的处理方法研究蓝醒龙(广西民族大学数学与计算机科学学院03数本2班,530006)摘 要: 对病态线性方程组解法研究是数值计算方法的一个重要研究课题。
本文分析了病态方程组的特点,介绍了几种有效的解法。
关键词: 病态线性方程组;条件数;预处理;迭代Studying The Algorithm For Solving Ill-conditionedSystem Of EquationsAbstract : Studying the algorithm for solving ill-conditioned system of equations is an important issue. This paper analyses the equations characteristic, and introduces several effective algorithms.Key words :ill-conditioned system of equations; condition number; pretreatment; iteration1 问题的提出一个线性方程组 A X b =,若右端向量b 或系数矩阵A 的微小变化就会引起方程组的解发生很大的变化,则称A X b =为病态方程组。
方程组的系数矩阵A 的条件数()1C o n d A AA -=刻画了方程组的性态,若()1C ond A ≥,则称A X b =为“病态”方程组;若()Cond A 相对较小,则称A X b =为“良态”方程组。
良态方程组用GAUSS 消去法和JACOBI 等简单的迭代法就可以得到比较好的计算解,而对于病态方程组,一般的直接法和迭代法会有较大的误差,甚至严重失真。
所以,在解方程组时,有必要先对方程组的性态进行研究,采用相应的算法,才能得到比较精确的计算解。
利用方程组的条件数来判断就是一个很好的办法。
线性方程组的求解方法及应用开题报告
开题报告线性方程组的求解方法及应用开题报告一、选题的背景、意义(所选课题的历史背景、国内外研究现状和发展趋势) 线性方程组求解在中国历史久矣。
对线性方程组的研究,中国比欧洲至少早1500年,记载在公元初《九章算术》方程章中。
现在中学讲授的线性方程组的解法和《九章算术》介绍的方法大体相同。
在科学计算中的许多问题,例如,电学中的网络问题,船体放样中的样条函数计算,实验数据的曲线拟合以及微分方程的差分方法或有限元方法求解等问题,最终都归结为求解线性代数方程组。
现行高等代数教材只用行初等变换来解线性方程组,存在一定的局限性。
本文主要讨论了解线性方程组的直接法中的Gauss消元法,以及行初等变换、克莱姆法则、标准上三角形求解法等。
对于不同类型的问题,线性方程组的求解方法不尽相同。
同时方程组存在解的个数的问题及线性方程组是否存在零解,如在实践中遇到的线性方程组,它的方程个数未必等于未知量个数,即使方程个数等于未知量个数,也未必有唯一解,有可能无解或有无穷多解。
这就需要我们去根据相关问题去探究。
马克思曾经说过“一门科学只有成功地应用数学时,才算达到了完善的地步”。
随着科学技术的进步,数学已迅速渗透到各门学科之中,因而能强烈感受到数学的重要性。
而应用数学中很多用到了线性代数的相关知识,而本选题涉及的线性方程组知识尤为重要,在实际生活的数学应用中,对所需目标进行确定,接着进一步明确一些决策中的关键因素,即而确立线性方程组,进而对此方程求解。
因而求线性方程组解是线性代数中的精髓部分,恰当地使用方法,可以使计算过程比较简洁,避免了迂回复杂的计算。
二、研究的基本内容与拟解决的主要问题也许会觉得解线性方程组会很容易,但事实上想要彻彻底底的完整得出方程组的解是非常不容易的。
若要正确完整得出方程解,首先要具备一定的线性代数的知识,其次要分析对于什么样类型,采用什么样的方法去解决更便捷、更有效。
对于不同类型的问题,线性方程组解法的适用就至关重要。
线性方程组的解法及其应用开题报告
[12]张明淳.工程矩阵理论[M].1版.南京:东南大学出版社,1995.172-173.
[13]赵树嫄.线性代数(经济应用数学基础)[M].4版.北京:中国人民大学出版社,2008.150-157.
2.其次,找出解的几何意义并找出应用范围
3.最后,通过实践分析,总结出线性方程组在应用方面的作用
五、主要参考文献
[1]北京大学数学系几何与代数教研室前代数小组编.高等代数[M].3版.北京:高等教育出版社,2003.105-112.
[2]白梅花.线性方程组若干应用实例举例[J].科技资讯,2011,(27):200-201.
第1-2周:完成英文文献翻译工作。撰写开题报告。了解自己论文的背景,目的方案及预期达到的目标。
第3-4周:搜集阅读文献,根据研究方法对课题展开研究,获得一些研究成果。接受指导老师的检验,开题答辩。
2.中期(5-8周)
第5-8周:搜集阅读文献,根据研究方法对课题展开研究;获得一些研究成果;争取有一些理论创新;论文初步完成。
3.全部完成与整理(9-14、15-16周)
第9-14、15-16周:完善论文。写出较高质量的研究报告;接受指导老师的检验。申请结题。
4.答辩(第17周)
第17周:上交论文。接受教师组审查鉴定,进行毕业答辩。
四、预期达到的目标
1.首先,通过对齐次与非齐次线性方程组的求解,找出齐次与非齐次线性方程组解的判定方法
[7]首都师范大学数学系组编.数值分析[M].北京:科学出版社,2000.28-32.
[8]徐仲,张凯院,陆全,等.矩阵论简明教程[M].2版.北京:科学出版社,2005.141-147.
线性方程组的求解与应用开题报告
设计题目线性方程组理论及其应用学生姓名陈彦语学号专业数学与应用数学(师范类)课题地目地意义:高等代数教材中只给出了运用克拉默法则(' )和利用增广矩阵进行初等行变换求解线性方程组地方法,本文将更加系统地阐述求解线性方程组地几类方法,并进一步讨论线性方程组在许多领域中地应用.线性代数是代数学地一个重要组成部分,广泛应用于现代科学地许多分支,其核心问题之一就是线性方程组地求解问题.线性方程组地求解是数值计算领域十分活跃地研究课题之一,大量地科学技术问题,最终往往归结为解线性方程组.因为计算机只能“线性”地求解问题,所以所有问题在计算机处理前都要线性化.可以说,线性方程组地求解在现代科学领域占有重要地位.二、近几年来研究现状:目前关于线性方程组地数值解法一般有两大类,一类是直接方法,另一类是迭代方法.直接方法最基本地是高斯消元法及其变形,这种方法是解低阶稠密矩阵方程组地有效方法,近十几年来直接法在求解具有较大型稀疏矩阵方程组方面取得了较大进展.迭代法就是用某种迭代过程去逐步逼近线性方程组地精确解,迭代法具有地优点是:需要计算机地存储单位较少、程序设计简单、原始系数矩阵在计算过程中始终不变,但存在收敛性和收敛速度地问题.迭代法是解大型稀疏矩阵方程组地重要方法,当前对迭代算法地研究已经较为成熟,但如何使之适合新体系模型,以获得更好地性能加速还有待进一步研究..三、设计方案地可行性分析和预期目标:可行性分析:本文主要以查找资料,在现有知识水平上,对求解线性方程组地一般方法进行总结归纳,并根据对数学软件地学习,在借鉴前人对计算机编程科学性研究地基础上,给出利用软件求解几类常见线性方程组地方法.通过广泛收集线性方程组应用方向地文献和书籍,并多次向导师请教,最终以具体实例来说明线性方程组在许多领域地应用,并实现线性方程组地求解过程.预期目标:通过撰写论文,能让我从一个更高地角度来审视高等代数,对其中地线性方程组部分有一个更加深刻地理解和认识,锻炼自己地发散性思维和缜密地思考能力,培养自己利用所学知识解决实际问题地能力,从而达到对所学知识地融会贯通.四、所需要地仪器设备、材料:仪器设备:计算机,网络资源以及图书馆资料,打印机,纸材料:[]王萼芳,石生明.高等代数[].北京:高等教育出版社[]同济大学数学系.线性代数[].上海:高等教育出版社[]李庆扬,王超能,易大义.数值分析[].北京:清华大学出版[]王沫然与科学计算[].北京:清华大学出版社,[]《运筹学》教材编写组. 运筹学[]. 北京:清华大学出版社[]杨启帆,方道元. 数学建模[].杭州:浙江大学出版社,.[]姜启源.数学模型[].北京:高等教育出版社[]刘从义.线性方程组地求解及其应用[],考试周刊[]仝秋娟.几种特殊线性方程组解法研究[],陕西:西安电子科技大学,[]丁丽娟.数值计算方法[].北京:北京理工大学出版社[]谢金星,薛毅.优化模型与软件[],北京:清华大学出版社五、课题分阶段进度计划:序号起止日期工作内容阶段成果(第周)至查阅资料,填写开题报告,完成开题答辩材料.形成论文框架.(第周)至撰写论文初稿,翻译英文.完成初稿电子版及英文翻译电子版.(第周)至继续查找资料,修改完善论文内容和合适,修改译文;完成论文第二稿(第周)至进一步修改完善论文,最终定稿,打印论文;准备论文答辩提纲.正稿并答辩指导教师意见签字:年月日。
数值分析希尔伯特病态线性方程组
病态线性代数方程组的求解理论的分析表明,求解病态的线性代数方程组是困难的。
考虑方程组Hx = b的求解,其中H为Hilbert矩阵,H=(hij)n⨯n,hij=1,i,j=1,2,...,n i+j-11. 估计Hilbert矩阵2-条件数与阶数的关系;2. 选择问题的不同维数,分别用Gauss消去法,Jacobi迭代,GS迭代和SOR迭代求解,比较结果;3. 讨论病态问题求解的算法。
解:1、取Hilbert矩阵阶数最高分别为n=20和n=100。
采用Hilbert矩阵的2-条件数作为实验的比较对象,画出的曲线如下图所示:lg(cond(Hn))nlg(cond(Hn))~n关系图lg(cond(Hn))n从图中可以看出,在n≤13之前,图像接近直线,在n>13之后,图像趋于平缓,在一定的范围内上下波动。
为了比较图像的线性部分,作出一条直线与已知曲线进行比较。
比较直线的关系式为:lg(cond(Hn))=1.519n-1.833,结果下图所示。
lg(cond(Hn))~n关系图lg(cond(Hn))n从图2中可以看出,当n较小时,lg(cond(Hn))~n之间近似满足线性关系。
当n 继续增大到100时,lg(cond(Hn))~n关系图下图所示:lg(cond(Hn))~n关系图lg(cond(Hn))n从图中可以看出,图像的走势符合在n=20时的猜想,在n大于一定的值之后,图像趋于平缓,且在一定范围内震荡,同时又有一定上升趋势,但上升速度很慢。
2、选择不同的阶数n,设方程组的精确解为xz=(1,1,…,1)T进行计算,用四种方法解x_Guass1、x_Jacobi1、x_GS1、x_SOR1对比表如下表所示。
Gauss消去法求解:选择问题的阶数为3~8时,用Gauss消去法求得的解与精确解一致,当阶数为9~14时,解开始出现偏差,而且n越大,偏差越大。
用迭代法求解:取初始向量为1.2(1,1,…,1)T.无论n为多少阶,用Jacobi迭代方法迭代出现发散的不稳定现象,无法求解;用GS迭代方法迭代不发散,能求得解,但收敛非常缓慢,当迭代次数取得相当大(20000次)时解仍在精确解附近波动;取w=1.5,用SOR迭代方法迭代不发散,能求得解,收敛速度较GS迭代快一些,但仍非常缓慢。
线性方程组解法的研究【开题报告】
毕业论文开题报告信息与计算科学线性方程组解法的研究一、选题的意义线性代数是本专科高校中各类专业的一门公共基础课.。
由于线性问题广泛地存在于科学技术的各个领域, 许多非线性问题在一条件下也可以转化为线性问题来处理,线性代数已成为应用最广泛的大学基础数学课程之一,它的重要性也已经成为我们的共识.。
通过对线性代数课程的学习,可以提高学生的数学素质和数学能力, 特别是培养逻辑推理、归纳判断、科学计算、用数学语言和符号进行表达的能力等,对提高学生的思维能力、开发学生智力等起到重要作用。
尤其是现在, 随着计算机的逐渐普及,作为一门基础理论课的线性代数, 能够很好的帮助学生对计算机知识的理解和学习, 提高培养学生综合素质的效率。
矩阵被作为许多高等代数教材中研究的重要工具, 然而, 线性方程组理论同样也是一个比较重要的研究工具。
线性方程组是线性代数的主要内容,只要恰当地运用线性方程组理论, 我们在研究一些问题时就可以使比较复杂的研究过程简单化。
线性方程组与矩阵、向量的内容密切相关, 它与矩阵、向量组相关的许多重要结论都是线性方程组有关结论的应用和推广。
求解线性方程组是线性代数的核心内容之一, 同时也是它的最重要的应用领域之一。
线性方程组的求解还能处理许多实际问题,在科学研究与生产实践中,许多问题都可以归结为线性方程组的求解。
线性方程组的解法有很多,不同的线性方程组,根据其性质和特征,应当选择适当的解法。
所以,寻找最有效最简便的求解方法就显得极其重要。
本文首先对线性方程组的定义和基本性质等作了一些简单阐述,然后通过例子介绍了一些方程组的解法和特征,对其加以延伸综合、归纳总结,进一步提高我们线性方程组及其解法的认识,接着介绍了行列式线性方程组及其解法在一些领域中的应用,本文最后做出了简单的总结,使文章更加完整,也更加巩固了我们所学的线性方程组的相关知识,提升了我们对数学的理解和应用能力。
二、研究的主要内容,拟解决的主要问题(阐述的主要观点)本文研究的主要内容及解决的主要问题是线性方程组的多种解法研究及其有关应用。
病态的线性方程组求解
数值实验3_3 病态的线性方程组求解
自动化系李琳琳 2004211068
1.选择问题的维数为6,分别用Gauss消去法、J迭代方法、GS迭代方法和SOR 迭代方法求解并与问题的解比较,所得结果见下表
2.逐步增大问题的维数,仍用上述方法求解,结果如下:
由上述计算结果可以看出:
病态方程组的数值求解必须小心进行,否则得不到所要求的准确度或不稳定。
由本题中所做的数值实验可以看出,对于系数矩阵为Hilbert矩阵的病态方程组,Guass(即LU分解)方法和J迭代法都是无效的,结果发散。
而GS迭代和SOR迭代方法则较有效的解决了这个问题,得到较为精确的结果。
另一方面,也可以说明GS方法和SOR方法在收敛性方面更有优势。
其中,当系数矩阵A对称正定时,GS法一定收敛,而J法却不一定;且采用最优松弛因子的SOR方法要比GS法和J法收敛快得多。
(完整版)开题报告(线性方程组解的结构
线性方程组在解决应用问题中起着重要的作用,是一个极其重要的数学工具.线性方程组的求解过程通常与向量相联系,而空间又可以用向量来表示,向量又与我们日常生活的许多事例相关,所以,我们生活中遇到的许多无法快捷解出的难题中的很大一部分都可以通过与向量相联系,运用向量方程组的求解进而解决一些复杂的难题。而在方程组的求解中,线性方程组是方程组中的最基本的方程组,所以,线性方程组的求解是十分重要的,故归纳和总结出求解线性方程组的方法就显得尤其必要,对线性方程组解的结构研究具有重要意义.
2、国内外研究现状
国内外都对方程组的解的结构的求解过程做出了详尽的分析,但是很少有人对线性方程组下的齐次线性方程组和非齐次线性方程组解的过程放在一起做具体的分析,比较和概括,所以本文将对线性方程组下的齐次线性方程组和非齐次线性方程组解的求解过程做详尽的分析,从中我们可以看到两者在求解过程中的联系与区别,最后将两者解集间的区别与相互间关系作一个系统的归纳,便于理解和记忆。
本科毕业论文(设计)开题报告
题目:线性方程组解的结构研究
二级学:
学生姓名:
指导教师:
2013年 11 月 10 日
学院本科毕业论文(设计)开题报告
题 目
线性方程组解的结构
二级学院
数学与财经学院
班 级
开题日期
专 业
数学与应用数学
姓 名
学 号
指导教师
研究方法:查阅文献、探索研究、综合论述.
拟要解决的关键问题:齐次线性方程组与非齐次线性方程组的解的结构及两者
解集间的关系
6、前期准备和主要参考文献
前期准备:收集资料,查阅大量参考文献,研读拟定出论文大纲。
主要参考文献:
[1]张禾瑞,郝邴新编.高等代数(第四版)[M].北京:高等教育出版社,2003:263—267。
数值分析实验-病态线性方程组的算法设计
数值分析课程实验报告 实验名称 病态线性方程组的算法设计
班级
学号 姓名 序号
任课教师 评分 一、 实验目的
1、 初步病态线性方程组的判定。
2、 初步了解常规方法在求解病态线性方程组时遇到的困难。
3、 针对病态问题设计求解算法并验证算法的有效性。
二、用文字或图表记录实验过程和结果
1、Hilbert 矩阵如下:
11/21/1/21/31/(1)()1/1/(1)1/(21)n ij n
n H h n n n ⎡⎤⎢⎥+⎢⎥==⎢⎥⎢⎥+-⎣⎦L L M M M L 其中1(1)ij h i j =+-,它是一个对称正定矩阵,并且()n cond H 随着n 的增加迅速增加,利用Matlab 分析如下:
可以发现在阶数不断增大
Hilbert 矩阵的条件数不断增大,
这样使得求解Hilbert 病态方程
变得非常困难,即使A 或b 有微小
扰动时,即使求解过程是精确进
行的(即没有舍入误差),所得的
解相对于原方程的解也会有很大
的相对误差。
这就需要提出病态
线性方程组的求解方法,对于一
般的方程求解常用的有高斯(选
主元)消去算法、高斯—赛德尔迭代。
本试验先使用用列主元高斯消去算法和高斯-赛德尔迭代算法求解线性方程组:
n
H x b = 其中11(,,),(1,2,,)n T n i ij j b b b b h i n ====∑L L 。
2、高斯列主元消去算法
(1)设计流程图:。
Hilbert矩阵病态线性代数方程组的求解
实验一病态线性代数方程组的求解1.估计Hilbert矩阵2-条件数与阶数的关系运行tiaojianshu.m 输入m=10 可以得到如下表的结果2.选择不同维数,分别用Guass消去(LU分解),Jacobi迭代,GS 迭代,SOR迭代求解,比较结果。
说明:Hx=b,H矩阵可以由matlab直接给出,为了设定参考解,我们先设x为分量全1的向量,求出b,然后将H和b作为已知量,求x,与设定的参考解对比。
对于Jacobi迭代,GS迭代,SOR迭代,取迭代初值x0为0向量,迭代精度eps=1.0e-6,迭代次数<100000, SOR迭代中w=1.2和0.8分别计算。
a. n=5b. n=8c. n=10d. n=15取不同的n值,得到如下结果:对于Guass法,可以看出来,随着n的增大,求解结果误差变大,这是因为随着n增大,系数矩阵的条件数变大,微小的扰动就容易造成很大的误差。
最后得不到精确解。
对于Jacobi迭代,计算结果为Inf,说明是发散的。
对于GS迭代和SOR迭代,结果是收敛的,但是可以看出迭代次数比较多,并且对于不同维数GS和SOR收敛速度不一样,有时候GS快,有时SOR快。
对SOR取不同的w迭代速度也不一样,存在一个最优的松弛因子w。
并且可以知道,迭代次数多少跟初值x0也有关系。
3.讨论病态问题求解的算法。
通过上面的实验分析,可以看出,求解病态矩阵的时候要小心,否则可能得不到所要求的精确度。
可以采用高精度运算,用双倍多倍字长,使得由于误差放大而损失若干有效数字位之后,还能保留一些有效位。
另外可以通过对原方程作某些预处理,降低系数矩阵的条件数,因为cond(aA)=cond(A),所以不能通过将每一个方程乘上相同的常数来达到这个目标,可考虑将矩阵的每一行和每一列分别乘上不同的常数,亦即找到可逆的对角阵D1和D2将方程组化为D1AD2y=D1b,x=D2y这称为矩阵的平衡问题,但是这样计算量比原问题本身要多。
病态线性方程组的求解
《科学与工程计算》实验报告学号:姓名:一、实验内容:考虑方程组Hx=b 的求解,其中系数矩阵H 为Hilbert 矩阵,nj i j i h h H j i n n j i ,,2,1,,11,)(,, =-+==⨯这是一个著名的病态问题。
通过首先给定解(例如取为各个分量均为1)再计算出右端b 的办法给出确定的问题。
实验要求:(1)选择问题的维数为6,分别用Jacobi 迭代法、GS 迭代法和SOR 迭代法求解方程组,其各自的结果如何?将计算结果与问题的解比较,结论如何?(2)逐步增大问题的维数,仍然用上述的方法来解它们,计算的结果如何?计算的结果说明了什么? (3)讨论病态问题求解的算法。
二、程序设计的基本思想、原理和算法描述:1、 算法 Jacobi 迭代法若A 为稀疏矩阵,只需遍历非零元素GS 迭代法若A 为稀疏矩阵,只需遍历非零元素每步迭代计算量相当于一次矩阵与向量的乘法;不需要保留上一步的迭代解,与Jacobi 迭代法计算量一样。
SOR 迭代法(稠密矩阵)2、 函数组成double max(double array[100]) 求数组中的最大值函数3、 输入/输出设计对于方程组Hx=b 的求解,系数矩阵H 为Hilbert 矩阵,矩阵中的数由下列函数生成。
nj i j i h h H j i n n j i ,,2,1,,11,)(,, =-+==⨯X*取一个特解[1,1,1, (1)b 数组由矩阵的每行元素相加得来。
4、符号名说明double c[100] 用来存储第k+1次和第k 次迭代结果的差值的绝对值 double x[100] 第k+1次迭代结果,储存解数组 double x0[100] 初始向量double r 第k+1次和第k 次迭代结果的差值的绝对值的最大值 double sum 矩阵方程变换后右侧值的和 int k 迭代次数double a[100][100] 存储Hilbert 矩阵 double b[100] 存储b 向量三、源程序及注释:Jacobi 迭代法#include<iostream> #include<math.h> #include <iomanip> #include <stdio.h> using namespace std; int n;double max(double array[100])//求最大值函数 {double a=array[0]; int i;for(i=1; i<n; i++) {if(a<array[i]) a=array[i]; return a; } }double c[100]= {0.0};double x[100]= {0.0}; //第k+1次迭代结果,储存解数组 double x0[100]= {0.0}; //初始向量double r,sum=0; int main(){double s=0;int i,k,j;//k为迭代次数double a[100][100];double b[100]= {0.0};cout<<"请输入维数:"<<endl;cin>>n;cout<<"输出a数组:"<<endl;double max(double array[100]);for(i=0; i<n; i++){for(j=0; j<n; j++){a[i][j]=1.0/(i+j+1);printf("%10.6lf ",a[i][j]);//矩阵中的数精确到六位}cout<<endl;}cout<<"输出b数组:"<<endl;for(i=0; i<n; i++){for(j=0; j<n; j++){b[i]+=a[i][j];//矩阵每行的和}cout<<b[i]<<" ";}cout<<endl;cout<<"输入精度:"<<endl;cin>>s;for(k=1;; k++){for(i=0; i<n; i++){for(j=0; j<n; j++){sum=a[i][j]*x0[j]+sum;}x[i]=x0[i]+((b[i]-sum)/a[i][i]);//雅克比迭代方法计算方式c[i]=fabs(x[i]-x0[i]);//求差值的绝对值x0[i]=x[i];sum=0;r=max(c);if(r<s)//输出迭代次数{for(i=0; i<n; i++)cout<<"x"<<i<<" = "<<x[i]<<setprecision(10)<<endl;cout<<"迭代次数:"<<k<<endl;return 0;}}return 0;}GS迭代法#include<iostream>#include<math.h>#include <iomanip>#include <stdio.h>using namespace std;int n;double max(double array[100])//求最大值函数{double a=array[0];int i;for(i=1;i<n;i++){if(a<array[i])a=array[i];}return a;}main() {double s=0;double max(double array[100]);double c[100]={0.0};double x[100]={0.0};//第k+1次迭代结果,储存解数组double x0[100]={0.0};//初始向量int i,k,j;double r,sum=0;double a[100][100];double b[100]= {0.0};cout<<"请输入维数:"<<endl;cout<<"输出a数组:"<<endl;for(i=0; i<n; i++){for(j=0; j<n; j++){a[i][j]=1.0/(i+j+1);printf("%10.6lf ",a[i][j]);//矩阵中的数精确到六位}cout<<endl;}cout<<"输出b数组:"<<endl;for(i=0; i<n; i++){for(j=0; j<n; j++){b[i]+=a[i][j];//矩阵每行的和}cout<<b[i]<<" ";}cout<<endl;cout<<"输入精度:"<<endl;cin>>s;for(k=1;;k++){for(i=0;i<n;i++){for(j=0;j<n;j++){sum=a[i][j]*x0[j]+sum;}x[i]=x0[i]+((b[i]-sum)/a[i][i]);//gs迭代方法计算方式c[i]=fabs(x[i]-x0[i]);//求差值的绝对值x0[i]=x[i];sum=0;}r=max(c);if(r<s)//输出迭代次数{for(i=0;i<n;i++)cout<<"x"<<i<<" = "<<x[i]<<setprecision(10)<<endl;cout<<"迭代次数:"<<k<<endl;return 0;}}}SOR迭代法#include<iostream>#include<math.h>#include <iomanip>#include <stdio.h>using namespace std;int n;double max(double array[100]){double a=array[0];int i;for(i=1;i<n;i++){if(a<array[i])a=array[i];}return a;}int main() {double s=0,w=0;int i,k,j;//k为迭代次数double max(double array[100]);double c[100]= {0.0}; //double x[100]= {0.0}; //第k+1次迭代结果,储存解数组double x0[100]= {0.0}; //初始向量int i,k,j;double r,sum=0;double a[100][100];double b[100]= {0.0};cout<<"请输入维数:"<<endl;cin>>n;cout<<"输出a数组:"<<endl;for(i=0; i<n; i++){for(j=0; j<n; j++){a[i][j]=1.0/(i+j+1);printf("%10.6lf ",a[i][j]);//cout<<a[i][j]<<" ";}cout<<endl;}cout<<"输出b数组:"<<endl;for(i=0; i<n; i++){for(j=0; j<n; j++){b[i]+=a[i][j];}cout<<b[i]<<" ";}cout<<endl;cout<<"输入精度:"<<endl;cin>>s;cout<<"输入松弛因子:"<<endl;cin>>w;for(k=1;;k++){for(i=0;i<n;i++){for(j=0;j<n;j++){sum=a[i][j]*x0[j]+sum;}x[i]=x0[i]+(w*(b[i]-sum)/a[i][i]);//sor迭代方法的计算公式c[i]=fabs(x[i]-x0[i]);//求差值的绝对值x0[i]=x[i];sum=0;}r=max(c);if(r<s)//输出迭代次数{for(i=0;i<n;i++)cout<<"x"<<i<<" = "<<x[i]<<setprecision(10)<<endl; cout<<"迭代次数:"<<k<<endl;return 0;}}}四、运行输出结果:JacobiGSSOR五、结果比较分析:说明:Hx=b,H矩阵可以由函数hi,j=1/(i+j-1)直接由程序生成,为了设定参考解,我们先设x为分量全1的向量,求出b,然后将H和b作为已知量,求x,与设定的参考解对比。
《2024年病态方程组的RA加速投影法及新型SSOR预处理迭代法研究》范文
《病态方程组的RA加速投影法及新型SSOR预处理迭代法研究》篇一一、引言在科学计算和工程领域,病态方程组(Ill-posed Systems of Equations)的求解问题经常出现,且通常涉及大量未知数和复杂的数据依赖关系。
这类问题的挑战主要在于,传统的数值解法可能面临收敛速度慢、迭代不稳定等困境。
近年来,加速投影法和预处理迭代法因其能改善求解过程和提高解的精度,在解决病态方程组问题上得到了广泛关注。
本文将重点研究RA(Relaxation Algorithm)加速投影法以及新型SSOR(Symmetric Successive Over-Relaxation)预处理迭代法在病态方程组求解中的应用。
二、RA加速投影法RA加速投影法是一种基于松弛算法的迭代方法,其核心思想是通过迭代过程逐步逼近真实解,并利用投影技术来加速收敛。
在病态方程组的求解中,该方法特别适用于大规模问题和高维度空间,具有较快的收敛速度和较低的计算成本。
1. 原理概述RA加速投影法在每一次迭代中更新未知数的估计值,同时使用投影技术对解进行校正。
该方法的关键在于松弛因子和投影操作的选择,松弛因子控制了迭代更新的速度和方向,而投影操作则决定了每次迭代后的解是否更加接近真实解。
2. 算法实现算法实现包括初始化、迭代更新和投影校正三个步骤。
首先,对未知数进行初始化估计;然后,通过松弛算法进行迭代更新;最后,利用投影技术对解进行校正。
这一过程中,松弛因子需要根据问题的特性进行调整,以达到最佳的收敛效果。
三、新型SSOR预处理迭代法SSOR预处理迭代法是一种基于预处理的迭代方法,其特点是通过预处理矩阵改善原矩阵的性态,从而加速迭代过程的收敛速度。
本文将介绍一种新型的SSOR预处理迭代法在病态方程组求解中的应用。
1. 原理概述新型SSOR预处理迭代法通过引入预处理矩阵来改进原始方程组的系数矩阵。
这一改进能够减小问题的条件数,降低解的误差,从而加速迭代过程的收敛。
病态线性方程组的求解
病态线性方程组的求解理论分析表明,数值求解病态线性方程组很困难。
考虑求解如下的线性方程组的求解Hx = b ,期中H 是Hilbert 矩阵,()ij n n H h ⨯=,11ij h i j =+-,i ,j = 1,2,…,n1. 估计矩阵的2条件数和阶数的关系2. 对不同的n ,取(1,1,,1)n x =∈ ,分别用Gauss 消去,Jacobi 迭代,Gauss-seidel 迭代,SOR 迭代和共轭梯度法求解,比较结果。
3. 结合计算结果,试讨论病态线性方程组的求解。
1)估计矩阵的2-条件数和阶数的关系矩阵的2-条件数定义为:1222()Cond A A A-=⨯,将Hilbert 矩阵带入有:1222()Cond H H H -=⨯。
使用MA TLAB 自带的cond2函数进行计算并画出log10(cond2)和阶数n 的关系曲线如下:可见当n 小于13的时候,条件数的对数与阶数有较好的线性关系,但是随着阶数的提高,条件数趋于“稳定”地振荡。
但是事实上,n较大时,H矩阵已经奇异,直接使用cond函数计算结果可能存在不准确性。
原因是对于条件数过大的矩阵使用inv函数求逆矩阵是不可靠的,应该使用invhilb函数进行求逆,并代入定义式中求解,生成的结果如下所示。
线性度较好,可知,Hilbert矩阵的2-条件数会随其阶数n的增加呈指数增大趋势,因此当n 较大时Hilbert矩阵将是严重病态的。
对不同的n,采用各种方法求解方程编写程序,选取n=2,3,5,10,15,20,迭代条件为迭代100000次或者是计算精度达到1e-6,若迭代次数少于设定最大值,表示相邻两次迭代达到精度要求,或者是计算结果超出范围。
X0取零向量,w取1.2,计算结果如下所示:由上可见,当n大于2时,Jacobi法已经不收敛,故其迭代次数已经没有意义。
当n=15时,Gauss消去法已经不收敛。
并且随着阶数的上升,gauss消去法的误差也随之上升。
03线性方程组的病态问题
常用矩阵算子范数:
( 1 ) 与向量的 1 - 范数相协调的矩阵算子 范数 A 1 max aij
1 j n i 1 n
称为方阵A的列范数。 (2) 与向量的 - 范数相协调的矩阵算子 范数
A max aij
1i n j 1 n
7 2 10
例:求证与向量的 1 - 范数相容的矩阵算子范 数为 A 1 max aij
1 j n i 1 n
解:设x x1 , x2 ,, xn 0, x 1 x j , 记 max aij
j 1 1 j n n i 1
n
x1 8.75, x2 16.99, x3 2.92, x4 3.37
a(4,1)=6.99; a(4,2)=4.99
x1 9.91, x2 18.92, x3 3.47., x4 3.71
a(2,1)=7.08; a(2,2)=5.04
x1 81.0, x2 137.0, x3 34.0, x4 22.0
2 3 2 1 13 2 A A 1 0 3 0 2 1
T
A max(2 1, 3 0 ) max( 3,3) 3
13 2 2 14 9 0 2 1
A 2 max AT A 7 2 10
1i n
n max xi n x
1i n
x 2 x1 x2 xn max xi
1i n
2
2
2
2
max xi x
1i n
同样可以证明 x x 1 n x
解线性方程组的预处理方法的开题报告
解线性方程组的预处理方法的开题报告题目:解线性方程组的预处理方法研究与应用摘要:线性方程组是数值线性代数中的基础问题,常常要进行大规模的计算。
为了提高求解速度和精度,需要采用一些预处理方法对系数矩阵进行改造,使其更易于求解。
本文将从预处理方法的理论分析出发,探讨几种典型的预处理方法,并通过实验数据分析它们的优缺点。
关键词:线性方程组,预处理方法,典型方法,实验分析一、绪论线性方程组的求解是数学和工程领域中的基础问题,涉及到很多科学计算的应用。
线性方程组的求解方法可以分为直接法和迭代法两类。
直接法通过对矩阵进行初等变换,实现从方程组到三角矩阵的转换,可精确地求得方程组的解。
但是直接法的时间和空间复杂度很高,在求解大规模线性方程组时不适用。
迭代法则是通过从一个初始近似解开始,逐步逼近精确解的过程。
迭代法具有较高的效率和稳定性,并且可以用预处理技术进行改进。
预处理技术是解决大规模线性方程组问题的有效手段,它是对系数矩阵进行初步加工处理,以便更好地适应某种求解算法的特性。
通常情况下,预处理技术可以使求解速度加快,精度提高,收敛性增强。
本文将从预处理方法的理论分析出发,重点探讨下列典型方法:ILU 分解、SSOR预处理、AMG预处理等,并通过实验比较它们的性能差异。
二、预处理方法的理论分析预处理方法是解决系数矩阵的稀疏特性与求解算法的高效性之间的冲突的方法,其本质思想是通过改变线性方程组的系数矩阵,使其满足求解算法的特性,以此提高求解过程的性能。
预处理技术可以分为不完全预处理和完全预处理两类。
1. 不完全预处理不完全预处理采用一种近似的方法来求解原问题,它可以针对特定的求解算法进行预处理,以简化原问题矩阵的结构,加速求解过程,减少计算复杂度。
其中,ILU分解是一种经典的非完全预处理方法,其主要思想是将原矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积形式。
2. 完全预处理完全预处理则是通过对系数矩阵进行完全分解,得到矩阵的特征和结构信息,进而利用这些信息进行求解或加速。
数值分析之病态线性方程组的解法
(
+
)
|| x || 1− || A || || A−1 || || A || || b || || A ||
|| A ||
数值分析
当方程组的系数矩阵A或右端项b受到 扰动ΔA, Δb时,引起的解的相对误差完全 由
来决定,它刻画了方程组的解对原始数据 的敏感程度。
数值分析
矩阵的条件数
定义:对非奇异矩阵A,称乘积||A|| ||A-1||为矩 阵A的条件数,记作
数值分析
三类扰动
线性方程组Ax=b的扰动可分为如下三类: 1. 系数矩阵A精确,常数项b有误差Δb; 2. b精确,A有误差ΔA; 3. A和b均有误差 ΔA和 Δb.
问题:求解Ax=b时,A和b的误差对x有何影响?
数值分析
扰动误差分析
1. 系数矩阵A精确,常数项b有误差Δb;
A(x + x) = b + b x = A−1b
=
2
1 3
1 n
1
n+1
1 n
1 n+1
1 2 n −1
cond (H2) = 27
cond (H3) 748
cond (H6) = 2.9 106
注:现在用Matlab数学软件可以很方便求矩阵的条件数!
数值分析
病态、良态线性方程组
定义:对线性方程组Ax=b,若cond(A)相对很大, 则称Ax=b是病态的线性方程组,也称A为病态矩阵; 若cond(A)相对很小,则称Ax=b是良态的线性方程 组,也称A为良态矩阵。
1.
;
2. A非奇异,k≠0,则cond(kA)=cond(A);
3. A非奇异对称矩阵,则cond(A)2=|λ1/λn|; 4. A是正交矩阵,则cond(A)2=1; 5. A可逆,R正交,则
12线性方程组的迭代法求解开题报告书
[16]曲双红,王雪莲.求解线性方程组迭代法的Excel实现,高校理科研究.2010年,第21卷(第6期:5页)
[17]高静.系数矩阵为L-矩阵的线性方程组的新迭代法,苏州市职业大学学报.2011年,第22卷(第2期:4页)
[12]汪仲文.解线性方程组的迭代方法之比较,喀什师范学院学报.2008,29(6):21-25.
[13]韩艳丽.求解线性方程组的Jacobi和Gauss—Seidel迭代法的收敛定理,河南理工大学学报.2009,20(3):31.
[14]陈丽红,周志刚,万立.求解线性方程组的一种迭代法的改进,武汉科技学院学报.2010,23(2):33-35.
[8]何吉欢.大型线性方程组的变分迭代解法,工.迭代法解线性方程组的收敛性比较,江西科学.2009,27(5):659-661.
[10]徐亚平,李让利.关于解线性方程组的迭代法,汉中师范学院学报(自然科学).1997,15(1):5-9.
[11]王丽,孙明军,宋永忠.解非埃尔特线性方程组的外推迭代法的收敛性,南京师大学报(自然科学版).2007,30(1):1-5.
[18]张步林.线性代数方程组迭代解法的MATLAB实现,成都纺织高等专科学校学报.2008年,第25卷(第4期:3页)
[19]花威.线性方程组的迭代解法及其MALAB实现程序,长江工程职业技术学院学报.2009年,第26卷(第4期:3页)
[20]杨廷鸿,但琦,汪益川,田艳芳.线性方程组迭代解法的另类矩阵形式,后勤工程学院学报.2006年,第13卷(第3期:1页)
预期目标
(1)学会运用各种迭代方法解线性方程组。
2.3方程组的病态问题
数值分析实验课第二单元第二部分数据拟合的数值方法实验报告问题重述:发现并观察数据拟合法正规方程组的病态问题.用拟合法求a ,b 的方法如下:⎪⎪⎩⎪⎪⎨⎧=+=+∑∑∑∑∑=====ni i i n i i n i i ni i n i i y x b x a x y b x na 112111其中n 为数据的个数 例如课本p50用拟合法求a ,b 的m a t l a b 程序如下: function nihex=[1.9,2.0,2.1,2.5,2.7,2.7,3.5,3.5,4.0,4.0,4.5,4.6,5.0,5.2,6.0,6.3,6.5,7.1,8.0,8.0,8.9,9.0,9.5,10.0];y=[1.4,1.3,1.8,2.5,2.8,2.5,3.0,2.7,4.0,3.5,4.2,3.5,5.5,5.0,5.5,6.4,6.0,5.3,6.5,7.0,8.5,8.0,8.1,8.1]; n=length(x); X=0; XY=0; XP=0; Y=0;for i=1:nX=X+x(i); Y=Y+y(i);XP=XP+x(i).*x(i); XY=XY+x(i)*y(i); endA=[24,X;X,XP]; B=[Y,XY]'; Gauss1(A,B)高斯消去法function x=Gauss1(A,b) n=length(b);for k=1:n-1if A(k,k)==0warning('系数矩阵奇异!'); return; endfor i=k+1:nL(i,k)=A(i,k)/A(k,k);A(i,k:n)=A(i,k:n)-L(i,k)*A(k,k:n); b(i)=b(i)-L(i,k)*b(k); end endif A(n,n)==0warning('系数矩阵奇异!'); return; endfor k=n:-1:1 if k==nx(n)=b(k)/A(n,n); elsex(k)=(b(k)-sum(A(k,k+1:n).*x(k+1:n)))/A(k,k); end end病态方程组的特例: 例:⎩⎨⎧=+=+0001.20001.12b a b a ⎩⎨⎧=+=+20001.12b a b a 比较两方程的准确解,可以发现它们的准确解差别很大下面估计A ∆和b ∆很小时解的误差 x x x ~-=∆x~和x 分别满足方程组b Ax b b x x A A =∆-=∆-∆-,))((两式相减,可得Ax b x A A ∆-∆=∆∆-)(当 A ∆很小时A A ∆-1很小,)(1A A E A A A ∆-=∆-- 可逆,)()(1Ax b A A x ∆-∆∆-=∆-)()(111Ax b A A A I x ∆-∆∆-=∆---)(1)()(11111x A b AA A Ax b A A A I ∆+∆∆-≤∆+∆∆-≤-----注意⎪⎪⎭⎫ ⎝⎛∆+∆∆-≤⎪⎪⎭⎫⎝⎛∆+∆∆-≤∆≤=∆≤∆------A A b b AA AA A A A AA x A b A AA A x xx A Ax b A A A A 11111111,,便知令⎪⎪⎭⎫⎝⎛∆+∆∆-≤∆==-A A b b AA k kx x x A A A cond k 1~,)(1误差估计式则得近似解此时表明,A A∆很小时,解的相对误差约为A ~和b~相对误差的k 倍;k 很大时,即使A ~和b ~的相对误差很小,解的相对误差也可能很大。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[4] 郑洲顺, 黄光辉。求解病态线性方程组的共轭向量基算法好.pdf。山东大学学报(理学版),第43卷第10期。
[5]郑洲顺, 黄光辉, 杨晓辉。求解病态线性方程组的混合算法.pdf。贵州工业大学学报( 自然科学版),第37卷第3期。
二、主要研究内容
整理和总结各种求解病态线性方程组算法,熟悉和了解各种方法的求解过程,并总结其优缺点,在此基础上,创新方法,寻求一种新的方法,将现有的方法适当的组合起来,取长补短而形成新的算法,并且有好的数值结果。
三、研究设计方法及技术路线
1、首先进行资料的搜集,并仔细阅读文献,熟悉文献内容。
2、重点研究最新的迭代算法,并与传统方法进行简单对比,分析各自的优缺点。
3、创新已有的方法,综合各种方法的优缺点,尽可能找到新的、能够很快得到有效解的方法。
4、最后结合实例,对相关方法的收敛速度和精确度进行测试和对比。
四、时间安排
本课题拟研究病态线性方程组的解法,首先对已有的算法进行总结、比较,由于算法一般都具有某些优点以及缺点,在结合自己的学习成果,总结创新得出自己的求解方法。
2、国内外研究状况
用直接法求解线性方程组,对于系数矩阵对角占优是很有效的。方程阶数不高时,人们经常使用;而当方程组阶数大时,由于积累误差,导致结果失真。为了克服误差积累问题,通常用迭代法。它具有可达到所要求的精度和对计算内存要求不大优点,对求解大型线性方程组,迭代法计算时间远比直接法少,所以在实际计算中,迭代法也被人们广泛使用。本次论文主要整理和研究利用迭代法求解病态线性方程组。
课
导师姓名
学生姓名
学 号
专业班级
信计08(1)
一、选题依据
1、课题的目的和意义
病态方程组的条件数较大, 当输入数据有微小扰动或计算过程中的舍入误差都可能引起输出数据的很大扰动, 使得解严重失真, 因此求解此类方程组是相当困难的.
在许多工程实际应用中,超大规模的线性方程组的数值解法是时常要遇到的问题。由于线性方程组的维数巨大,给具体的计算带来很大的问题——算法对计算机的内存需求大,算法的收敛速度慢以及计算舍人误差的累积扩张。这些往往使理论上较好的算法无法真正的应用到工程实际中,因此寻求一种真正能实际应用的数值算法一直是人们关注的问题。通常求解线性方程组一般可以分为直接解法和迭代解法。现在流行的算法一般采用迭代的算法来求解线性方程组,这主要是为了加快求解的速度。另外由于计算机的发展,在许多领域里涌现了一些新型的算法如神经网络 ,遗传算法,粒子群算法,模拟退火算法以及蚁群算法等。
(1)遗传算法( GeneticAlgorithm) 是美国密执根大学Holland教授倡导发展起来的, 是一种基于生物进化的机制和原理并引用随机理论的全局优化搜索方法. 近年来遗传算法( GA) 以其高效、实用等特点在各领域中得到了广泛的应用, 并越来越受到重视。此文中,使用遗传算法来求解病态线性方程组, 得到了较好的结果, 并与传统的求解方法作了简单的比较。
(2)针对地球物理反问题中经常碰到的病态线性方程组的求解问题。发现一种简单迭代(SI)算法,从理论上证明了解序列收敛且收敛到方程组的真解,然后给出了几个算例,将计算结果与对付病态问题能力很强的CG类算法的结果进行了对比,结果表明: SI 算法具有极强的抗病态能力,计算精度明显高于CG类算法, 但计算速度稍低于后者。
第6周:作课题准备。
第7周~第14周:实施课题研究,完成论文初稿。
第15、16周:完成论文定稿。打印装订成册。
五、预期成果
汇总已有的一些求解病态线性方程组的解法,深入研究各种方法,比较各法的优缺点,并进行总结,在此基础上,进行创新,最后找到自己的求解病态线性方程组的方法。
2012年 4月9 日
指导教师意见:
3、主要参考资料
[1]黄松奇,黄守佳。用遗传算法求解病态线性方程组.pdf。数学的实践与认识,第33卷,第8期;
[2] 毛先进,杨玲英。病态线性方程组的简单迭代解法.pdf。物探化探计算技术,第21卷,第1期;
[3] 胡圣荣, 戴纳新。病态线性方程组新解法_增广方程法.pdf。华南农业大学学报,第30卷第1期;
(3)增广方程法:将病态方程组放到一个增广的系统中考虑, 这时原方程组的解只是增广解的一个局部, 并处在增广解的前部, 再适当构造增广方程组, 就不难获得比较准确的解.
(4)算法适合求解大型病态线性方程组的解法:结合最速下降法计算量小和共轭方向法收敛速度快的特点, 提出了一种求解病态方程组的共轭向量基的方法。线性方程组的精确解能够由共轭向量基线性表示,利用迭代的方式给出了构造共轭向量基以及对应系数的方法, 证明了算法所构造的向量基的共轭性。同时给出了一个改进算法以适合不同精度要求, 加快迭代的收敛速度。通过对5000阶的Hilbert 方程组进行求解, 结果的相对误差小于045%, 并与当前普遍使用有效的方法进行了比较, 数值实验结果表明,该算法适合求解大型病态线性方程组,且具有快速收敛, 精度较高的特性。
指导教师: 年 月 日