数值计算方法实验分析报告.docx
- 文档编号:5834473
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:37
- 大小:191.68KB
数值计算方法实验分析报告.docx
《数值计算方法实验分析报告.docx》由会员分享,可在线阅读,更多相关《数值计算方法实验分析报告.docx(37页珍藏版)》请在冰豆网上搜索。
数值计算方法实验分析报告
重庆交通大学
学生实验报告
实验课程名称数值计算方法
开课实验室数学实验室
学院理学院年级专业班信息与计算科学
学生姓名李伟凯学号
开课时间至学年第学期
评分细则
评分
报告表述的清晰程度和完整性(分)
程序设计的正确性(分)
实验结果的分析(分)
实验方法的创新性(分)
总成绩
教师签名
邹昌文
实验五解线性方程组的直接方法
实验(主元的选取与算法的稳定性)
问题提出:
消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保消去法作为数值算法的稳定性呢?
消去法从理论算法到数值算法,其关键是主元的选择。
主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
实验内容:
考虑线性方程组
编制一个能自动选取主元,又能手动选取主元的求解线性方程组的消去过程。
实验要求:
()取矩阵
,则方程有解
。
取计算矩阵的条件数。
让程序自动选取主元,结果如何?
()现选择程序中手动选取主元的功能。
每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。
若每步消去过程总选取按模最大的元素作为主元,结果又如何?
分析实验的结果。
()取矩阵阶数或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
()选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。
重复上述实验,观察记录并分析实验结果。
实验(线性代数方程组的性态与条件数的估计)
问题提出:
理论上,线性代数方程组
的摄动满足
矩阵的条件数确实是对矩阵病态性的刻画,但在实际应用中直接计算它显然不现实,因为计算
通常要比求解方程
还困难。
实验内容:
中提供有函数“”可以用来估计矩阵的条件数,它给出的是按范数的条件数。
首先构造非奇异矩阵和右端,使得方程是可以精确求解的。
再人为地引进系数矩阵和右端的摄动
,使得
充分小。
实验要求:
()假设方程的解为,求解方程
,以范数,给出
的计算结果。
()选择一系列维数递增的矩阵(可以是随机生成的),比较函数“”所需机器时间的差别.考虑若干逆是已知的矩阵,借助函数“”很容易给出()的数值。
将它与函数“()”所得到的结果进行比较。
()利用“”给出矩阵条件数的估计,针对()中的结果给出
的理论估计,并将它与()给出的计算结果进行比较,分析所得结果。
注意,如果给出了()和
的估计,马上就可以给出
的估计。
()估计著名的矩阵的条件数。
思考题一:
(矩阵)设
,
其中,
,
()对,计算的条件数;随增大,矩阵性态如何变化?
()对,解方程组;设的最后一个元素有扰动,再求解
()计算()扰动相对误差与解的相对偏差,分析它们与条件数的关系。
()你能由此解释为什么不用插值函数存在定理直接求插值函数而要用拉格朗日或牛顿插值法的原因吗?
相关函数提示:
()生成行,列的零矩阵
()生成行,列的元素全为的矩阵
()生成阶单位矩阵
()生成行列()上均匀分布的随机矩阵
()返回由向量的元素构成的对角矩阵
()提取矩阵的下三角部分生成下三角矩阵
()提取矩阵的上三角部分生成上三角矩阵
()返回矩阵的秩
()返回方阵的行列式
()返回可逆方阵的逆矩阵
[,]()返回方阵的特征值和特征向量
()矩阵或向量的范数
()矩阵的条件数
[,,]()选列主元分解
()平方根分解
()生成阶矩阵
实验程序:
文件程序为:
()
('请输入矩阵的阶数')
(*())(())(*())
*()
('条件数对应的范数是范数:
')
()
[]();
[]
('请输入是否为手动,手动输入,自动输入:
')
[]((()));
;
([],:
)([],:
)();
('输入列所选元素所处的行数:
');
([],:
)([],:
)();
();
()()(())*();
();
()()()();
()(()()*())();
()⑴取矩阵的阶数,自动选取主元:
>>
>>
请输入矩阵的阶数
条件数对应的范数是范数:
请输入是否为手动,手动输入,自动输入:
⑵取矩阵的阶数,手动选取主元:
①选取绝对值最大的元素为主元:
>>
请输入矩阵的阶数
条件数对应的范数是范数:
请输入是否为手动,手动输入,自动输入:
②选取绝对值最小的元素为主元:
>>
请输入矩阵的阶数
条件数对应的范数是范数:
请输入是否为手动,手动输入,自动输入:
()取矩阵的阶数,手动选取主元:
①选取绝对值最大的元素为主元:
>>
请输入矩阵的阶数
条件数对应的范数是范数:
请输入是否为手动,手动输入,自动输入:
②选取绝对值最小的元素为主元:
>>
请输入矩阵的阶数
条件数对应的范数是范数:
请输入是否为手动,手动输入,自动输入:
()取矩阵的阶数,手动选取主元:
1选取绝对值最大的元素为主元:
>>
请输入矩阵的阶数
条件数对应的范数是范数:
2选取绝对值最小的元素为主元:
>>
请输入矩阵的阶数.
条件数对应的范数是范数:
请输入是否为手动,手动输入,自动输入:
()该题目的程序如下所示
()
('请输入矩阵的阶数')
()
*()
('条件数对应的范数是范数:
')
()
[]();
[]
('请输入是否为手动,手动输入,自动输入:
')
[]((()));
;
([],:
)([],:
)();
('输入列所选元素所处的行数:
');
([],:
)([],:
)();
();
()()(())*();
();
()()()();
()(()()*())();
>>
请输入矩阵的阶数:
请输入是否为手动,手动输入,自动输入:
条件数对应的范数是范数:
显然的是,该问题在主元选取与算出结果有着很大的关系,取绝对值大的元素作为主元比取绝对值小的元素作为主元时产生的结果比较准确,即选取绝对值小的主元时结果产生了较大的误差,条件数越大产生的误差就越大
实验体会:
运用高斯消去法求解线性方程组问题的时候,主元的选取和相应的消去法的选取决定了该算法的稳定性,选取绝对值大的元素比选取绝对值比较小的元素作为主元时对结果产生的误差影响比较小。
并且增加条件数反而对结果的误差产生更大的影响。
并且在运算中要尽量避免出现运用小数作为除数,使数量级加大,令大数吃掉小数的情况发生。
实验(线性代数方程组的性态与条件数的估计)
问题提出:
理论上,线性代数方程组
的摄动满足
矩阵的条件数确实是对矩阵病态性的刻画,但在实际应用中直接计算它显然不现实,因为计算
通常要比求解方程
还困难。
实验内容:
中提供有函数“”可以用来估计矩阵的条件数,它给出的是按范数的条件数。
首先构造非奇异矩阵和右端,使得方程是可以精确求解的。
再人为地引进系数矩阵和右端的摄动
,使得
充分小。
实验要求:
()假设方程的解为,求解方程
,以范数,给出
的计算结果。
()选择一系列维数递增的矩阵(可以是随机生成的),比较函数“”所需机器时间的差别.考虑若干逆是已知的矩阵,借助函数“”很容易给出()的数值。
将它与函数“()”所得到的结果进行比较。
()利用“”给出矩阵条件数的估计,针对()中的结果给出
的理论估计,并将它与()给出的计算结果进行比较,分析所得结果。
注意,如果给出了()和
的估计,马上就可以给出
的估计。
()估计著名的矩阵的条件数。
程序代码:
保存文件名为:
('')
(*())
()
*
()*
()*
()
()()
保存文件名为:
()
[]();
[];
();
()()(())*();
();
()()();
()(()()*())();
保存文件名为:
()
'*;
[]();
[](^());
((()))*((()))
保存文件为:
(*());
()
()
()
保存文件为:
('')输入矩阵的阶数
(*());随机生成一个矩阵
();假设知道方程组的解全为
*;
()*;
()*;
;
;
();
()()
()((())*())*((())(())()())
()
()
();
()
()
()
实验结果及其分析:
()
>>
*
*
*
的计算结果为:
()
()
给出对
的估计是
的理论结果是:
结果相差:
()
讨论:
线性代数方程组的性态与条件数有着很重要的关系,既矩阵的条件数是刻画矩阵性质的一个重要的依据,条件数越大,矩阵“病态”性越严重,在解线性代数方程组的过程中较容易产生比较大的误差,则在实际问题的操作过程中,我们必须要减少对条件数来求解,把条件数较大的矩阵化成条件数较小的矩阵来进行求解。
实验体会:
在本次实验中,使我们知道了矩阵条件数对线性代数方程组求解的影响,条件数越大,对最后解的影响的越大,矩阵是一个很”病态”的矩阵,他的条件数随着阶数的增加而增大,每增加一阶,条件数就增大一个数量级,在求解的过程中要尽量避免矩阵
实验六解线性方程组的迭代法
实验(病态的线性方程组的求解)
问题提出:
理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?
实验内容:
考虑方程组的求解,其中系数矩阵为矩阵,
这是一个著名的病态问题。
通过首先给定解(例如取为各个分量均为)再计算出右端的办法给出确定的问题。
实验要求:
()选择问题的维数为,分别用消去法、迭代法、迭代法和迭代法求解方程组,其各自的结果如何?
将计算结果与问题的解比较,结论如何?
()逐步增大问题的维数,仍然用上述的方法来解它们,计算的结果如何?
计算的结果说明了什么?
()讨论病态问题求解的算法
程序代码:
消去法程序:
()
('请输入矩阵的阶数')
()构造矩阵
('条件数对应的范数是范数:
')
()
[]();
[]
('请输入是否为手动,手动输入,自动输入:
')
[]((()));
;
([],:
)([],:
)();
('输入列所选元素所处的行数:
');
([],:
)([],:
)();
();
()()(())*();
();
()()()();
()(()()*())();
迭代法程序:
('系数矩阵的阶数:
');
()构造矩阵
;
();给定解
();
;
*';由给定的解算出相应的
进行迭代
;
;
;
()()();
;
()()()*()();
;
;
()()()*()();
;
;
迭代程序:
('系数矩阵的阶数:
');
对题中给定的矩阵进行消元
();
;
();
();
;
*';
;
;
()()();
;
()()()*()();
;
;
()()()*()();
;
;
迭代程序:
('系数矩阵的阶数:
');
('松弛因子:
');
对题中给定的矩阵进行消元
();
;
();
();
;
*';
;
;
();
()()();
;
()()()*()();
;
;
()()()*()();
;
()()**();
;
实验结果及其分析:
给定各分量为的解,计算出右端作为问题。
1.选择问题的维数为时:
用消去法求得的解与精确解一致;
取初始向量为,用迭代方法迭代出现发散的不稳定现象,无法求解;
取初始向量为,用迭代方法迭代不发散,能求得解,但收敛非常缓慢,当迭代次数取得相当大(次)时解仍在精确解附近波动;
取初始向量为,用迭代方法迭代不发散,能求得解,当松弛因子去左右时收敛较迭代快一些,但仍非常缓慢。
2.选择问题的维数为时:
用消去法求得的解与精确解相差很大,相差的量级。
取初始向量为,用迭代方法迭代发散,无法求解;
取初始向量为,用迭代方法迭代不发散,能求得解,但收敛非常缓慢,迭代次后,算得的值与精确值相差的量级。
取初始向量为,用迭代方法迭代不发散,能求得解,但收敛非常缓慢。
从上面的结果可以看出当病态问题的阶数升高时作为直接法的消去法又能求解变成不能求解。
而和迭代法在阶数升高时仍能求解。
但在阶数较低时直接法能求得精确解而迭代发却总存在一定的误差。
可见直接法与迭代法各有各的优势与不足。
关于病态问题的求解,主要的方法是对原方程作某些预处理,以降低系数矩阵的条件数。
可以采取将系数矩阵的每一行本别乘上适当常数的方法。
即找到可逆的对角阵
和
使方程组
化为
理论上最好选择对角阵
满足:
实验七非线性方程求根
实验(迭代法、初始值与收敛性)
实验目的:
初步认识非线性问题的迭代法与线性问题迭代法的差别,探讨迭代法及初始值与迭代收敛性的关系。
问题提出:
迭代法是求解非线性方程的基本思想方法,与线性方程的情况一样,其构造方法可以有多种多样,但关键是怎样才能使迭代收敛且有较快的收敛速度。
实验内容:
考虑一个简单的代数方程
针对上述方程,可以构造多种迭代法,如
在实轴上取初始值,请分别用迭代()()作实验,记录各算法的迭代过程。
实验要求:
()取定某个初始值,分别计算()()迭代结果,它们的收敛性如何?
重复选取不同的初始值,反复实验。
请自选设计一种比较形象的记录方式(如利用的图形功能),分析三种迭代法的收敛性与初值选取的关系。
()对三个迭代法中的某个,取不同的初始值进行迭代,结果如何?
试分析迭代法对不同的初值是否有差异?
()线性方程组迭代法的收敛性是不依赖初始值选取的。
比较线性与非线性问题迭代的差异,有何结论和问题。
实验过程:
程序:
对于第一个迭代方程的程序:
保存为:
;;('请输入第一个函数的初值:
');
();
;计算直线
();计算迭代函数()
;
[];
(,'')
('','')
('()[()]^')输出标题
([],[],'',[],[],'')
([])画坐标轴
[];
画蛛网图,迭代过程为次
()();决定始点坐标
()(());决定终点坐标
()(());
();画蛛网图
<
按任意键逐次观察前次迭代的蛛网图
()();将本次迭代的终点作为下次的始点
[()];保存迭代点
保存为:
()
(.*);
保存为:
()画一次迭代的蛛网图,改变调节箭头的大小
()()(()());画出始点(()())终点(()())的有向折线段
()();
[()()];
[()()];
();
(,'','');
()(()())();
()();
([()()],[()()]);
(,'','');
([()()()],[()()()],'')
对于第一个迭代方程的程序运行结果:
(注:
由于可以估计出方程的根,故选取根附近的值开始迭代)
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
对于第二个迭代方程的程序:
保存为:
;;('请输入第二个函数的初值:
');
();
;计算直线
();计算迭代函数()
;
[];
(,'')
('','')
('()[()]^')输出标题
([],[],'',[],[],'')
([])画坐标轴
[];
画蛛网图,迭代过程为次
()();决定始点坐标
()(());决定终点坐标
()(());
();画蛛网图
<
按任意键逐次观察前次迭代的蛛网图
()();将本次迭代的终点作为下次的始点
[()];保存迭代点
保存为迭代:
()
();
保存为:
()画一次迭代的蛛网图,改变调节箭头的大小
()()(()());画出始点(()())终点(()())的有向折线段
()();
[()()];
[()()];
();
(,'','');
()(()())();
()();
([()()],[()()]);
(,'','');
([()()()],[()()()],'')
对于第二个迭代方程的程序运行结果:
(注:
由于可以估计出方程的根,故选取根附近的值开始迭代)
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
对于第三个迭代方程的程序:
保存为:
;;('请输入第三个函数的初值:
');
();
;计算直线
();计算迭代函数()
;
[];
(,'')
('','')
('()[()]^')输出标题
([],[],'',[],[],'')
([])画坐标轴
[];
画蛛网图,迭代过程为次
()();决定始点坐标
()(());决定终点坐标
()(());
();画蛛网图
<
按任意键逐次观察前次迭代的蛛网图
()();将本次迭代的终点作为下次的始点
[()];保存迭代点
保存为:
()
();
保存为:
()画一次迭代的蛛网图,改变调节箭头的大小
()()(()());画出始点(()())终点(()())的有向折线段
()();
[()()];
[()()];
();
(,'','');
()(()())();
()();
([()()],[()()]);
(,'','');
([()()()],[()()()],'')
对于第三个迭代方程的程序运行结果:
(注:
由于可以估计出方程的根,故选取根附近的值开始迭代)
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
当时程序运行如下图:
实验要求一分析:
通过上述三种迭代图像可以判断出第一个迭代方程不收敛,而第二个、第三个迭代方程收敛,同时可以看出初值的选择决定收敛速度,对于用同一个迭代方程而言,第二个迭代方程选取初始点和方程在该点的轴差值越小,收敛速度越快,对于第三个迭代方程,大体上和第二个迭代方程相似,选取的初始点使得两条曲线间的间距越小,收敛越快
实验要求二分析:
使用迭代法求解非线性方程的根,可有很多种不同的迭代方程,对于不同的迭代方程求解可能会产生不同的结果,就像第一个迭代方程不收敛,而第二、第三个却收敛,这说明迭代方程的选取将会直接影响我们对非线性方程的求解,如果选取的迭代方程好的话,那么它至少是收敛的,然后我们自然希望收敛的速度越快越好,也就是说迭代方程的选取的好坏有两个评价标准:
()是否收敛;()收敛速度的快慢:
收敛速度的快慢还取决于初始值的选择,如果初始值选取的较好的话,能够很快就收敛结束。
根据上述几个原则我对第二个迭代方程进行讨论:
(1)是否收敛:
由迭代图像可以很明显的看出第二个迭代方程是收敛的,因为无论初始化值选取多少总会收敛到一定的区域内,不像第一个迭代方程初始值无论选取多大都不可能收敛到一定的区域,所以它比第一个要好;
(2)收敛速度的快慢:
从图像和初始值的选取可以看出,收敛速度明显取决于初始值的选择,初始值选取的越贴近解则收敛速度越快,否则就只有慢慢收敛,第三个迭代方程也是如此;
实验要求三分析:
对于解线性方程组用迭代法的收敛性,取决于迭代方法的系数矩阵的谱半径的大小,谱半径小于就收敛,于初值的选取无关,而对于解非线性方程的根用迭代法求解的收敛性取决于迭代方程的斜率,取定初始点的斜率小于就收敛,于初值的选取有关。
实验总结:
通过本实验我了解到对于非线性方程的迭代法求根,有多种迭代方法,对于不同的迭代方程会对我们的实验结果照成不同的影响,例如上面的第一个迭代方程不收敛,不仅浪费时间而且得不到结果,所以适当的选取迭代方程和适合的初值,有利于提高迭代方程的迭代速度,减少计算量,较快的得到理想到答案,但是通常我们是不知道哪个迭代方程是收敛的且初值的选取怎么样才能够使得收敛较快。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 计算方法 实验 分析 报告