数值分析课程设计实验指导书
- 格式:doc
- 大小:385.50 KB
- 文档页数:14
数值分析实验指导书
实验一
1.1 水手、猴子和椰子问题:五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。由于旅途的颠簸,大家都很疲惫,很快就入睡了。第一个水手醒来后,把椰子平分成五堆,将多余的一只给了猴子,他私藏了一堆后便又去睡了。第二、第三、第四、第五个水手也陆续起来,和第一个水手一样,把椰子分成五堆,恰多一只猴子,私藏一堆,再去入睡,天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一只再给猴子,试问原先共有几只椰子?
试分析椰子数目的变化规律,利用逆向递推的方法求解这一问题(15621)。
1.2 设,1
05n
n x I dx x
=+⎰ (1)从0I 尽可能精确的近似值出发,利用递推公式:
11
5(1,2,20)n n I I n n
-=-+=
计算机从1I 到20I 的近似值;
(2)从30I 较粗糙的估计值出发,用递推公式:
111
(30,29,,3,2)55n n I I n n
-=-+=
计算从1I 到20I 的近似值;
(3)分析所得结果的可靠性以及出现这种现象的原因。 1.3 绘制Koch 分形曲线
问题描述:从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的另两条边代替,形成具有5个结点的新的图形(图1-4);在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的另两条边代替,再次形成新的图形(图1-5),这时,图形中共有17个结点。这种迭代继续进行下去可以形成Koch 分形曲线。在迭代过程中,图形中的结点将越来越多,而曲线最终显示细节的多少取决于所进行的迭代次数和显示系统的分辨率。Koch 分形曲线的绘制与算法设计和计算机实现相关。
问题分析:考虑由直线段(2个点)产生第一个图形(5个点)的过程,设1
P 和5P 分别为原始直线段的两个端点。现在需要在直线段的中间依次插入三个点234,,P P P 产生第一次迭代的图形(图1-4)。显然,2P 位于1P 点右端直线段的三分之一处,4P 点绕2P 旋转60度(逆时针方向)而得到的,故可以处理为向量24P P 经正交变换而得到向量23P P ,形成算法如下:
(1)2151()/3P P P P =+-; (2)41512()/3P P P P =+-;
(3)T
3242
()P P P P A =+-⨯; 在算法的第三步中,A 为正交矩阵。
cos sin
33sin cos
33A ππππ⎡
⎤
-⎢⎥
=⎢
⎥⎢⎥⎢⎥⎣
⎦
; 这一算法将根据初始数据(1P 和5P 点的坐标),产生图1-4中5个结点的坐标。这5个结点的坐标数组,组成一个5×2矩阵。这一矩阵的第一行为为1P 的坐标,第二行为1P 的坐标,第二行为2P 的坐标……第五行为5P 的坐标。矩阵的第一列元素分别为5个结点的x 坐标 ,第二列元素分别为5个结点的y 坐标。
问题思考与实验:
(1)考虑在Koch 分形曲线的形成过程中结点数目的变化规律。设第k 次迭代产生结点数为k n ,第1k +迭代产生结点数为1k n +,试写出k n 和1k n +之间的递推关系式;
(2)参考问题分析中的算法,考虑图1-4到图1-5的过程,即由第一次迭代的5个结点的结点坐标数组,产生第二次迭代的17个结点的结点坐标数组的算法;
(3)考虑由第k 次迭代的k n 个结点的结点坐标数组,产生第1k +次迭代的
1k n +个结点的结点坐标数组的算法;
(4)设计算法用计算机绘制出如下的Koch 分形曲线(图1-6)。
实验二
2.1 用高斯消元法的消元过程作矩阵分解。设
20231812315A ⎡⎤
⎢⎥=⎢⎥
⎢⎥-⎣⎦
消元过程可将矩阵A 化为上三角矩阵U ,试求出消元过程所用的乘数21m 、31m 、
31m 并以如下格式构造下三角矩阵L 和上三角矩阵U
(1)
(1)212223
(2)
313233120231,1L m U a a m m a ⎡⎤⎡⎤
⎢⎥⎢⎥==⎢⎥⎢
⎥⎢⎥⎢⎥⎣⎦⎣
⎦
验证:矩阵A 可以分解为L 和U 的乘积,即A =LU 。
2.2 用矩阵分解方法求上题中A 的逆矩阵。记
1231000,1,0001b b b ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦
分别求解方程组
123,,AX b AX b AX b ===
由于三个方程组系数矩阵相同,可以将分解后的矩阵重复使用。对第一个方程组,由于A=LU ,所以先求解下三角方程组1b =LY ,再求解上三角方程组
=UX Y ,则可得逆矩阵的第一列列向量;类似可解第二、第三方程组,得逆矩
阵的第二列列向量的第三列列向量。由三个列向量拼装可得逆矩阵1-A 。
2.3 验证希尔伯特矩阵的病态性:对于三阶矩阵
1
1/21/31/21/31/41/31/41/5H ⎡⎤⎢⎥=⎢⎥
⎢⎥⎣⎦
取右端向量T [11/613/1247/60]b =,验证:
(1)向量T T 1
2
3[][111]X x x x ==是方程组b =HX 的准确解;
(2)取右端向量b 的三位有效数字得T [1.83 1.080.783]b =,求方程组的准确解*X ,并与X 的数据T [111]作比较 。说明矩阵的病态性。
实验三
3.1 用泰勒级数的有限项逼近正弦函数