欢迎来到我的范文网!

矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关

教学相关 时间:2020-08-18

【www.myl5520.com--教学相关】

线性代数方程组求解
篇一:矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关

线性代数方程组求解

一、实验要求

编程求解方程组: 方程组1:

方程组2:

方程组3:

要求:

用C/C++语言实现如下函数: 1. bool lu(double* a, int* pivot, int n); 实现矩阵的LU分解。

pivot为输出参数,pivot[0,n) 中存放主元的位置排列。 函数成功时返回false,否则返回true。

2. bool guass(double const* lu, int const* p, double* b, int n);

求线代数方程组的解

设矩阵Lunxn为某个矩阵anxn的LU分解,在内存中按行优先次序存放。p[0,n)为LU分解的主元排列。b为方程组Ax=b的右端向量。此函数计算方程组Ax=b的解,并将结果存放在数组b[0,n)中。函数成功时返回false,否则返回true。

3. void qr(double* a, double* d, int n);矩阵的QR分解

假设数组anxn在内存中按行优先次序存放。此函数使用HouseHolder变换将其就地进行QR分解。

d为输出参数,d [0,n) 中存放QR分解的上三角对角线元素。

4. bool hshld(double const*qr, double const*d, double*b, int n); 求线代数方程组的解

设矩阵qrnxn为某个矩阵anxn的QR分解,在内存中按行优先次序存放。d [0,n) 为QR分解的上三角对角线元素。b为方程组Ax=b的右端向量。

函数计算方程组Ax=b的解,并将结果存放在数组b[0,n)中。 函数成功时返回false,否则返回true。

二、问题分析

求解线性方程组Ax=b,其实质就是把它的系数矩阵A通过各种变换成一个下三角或上三角矩阵,从而简化方程组的求解。因此,在求解线性方程组的过程中,把系数矩阵A变换成上三角或下三角矩阵显得尤为重要,然而矩阵A的变换通常有两种分解方法:LU分解法和QR分解法。

1、LU分解法:

将A分解为一个下三角矩阵L和一个上三角矩阵U,即:A=LU,

?10

?l121?其中 L=????

?ln1ln2

????

0??u11u12

?0u0?22?, U=??00?0

??1?0?0

矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关。

?u1n?

?u2n?? ???

?

?unn?

2、QR分解法:

将A分解为一个正交矩阵Q和一个上三角矩阵R,即:A=QR

三、实验原理

解Ax=b 的问题就等价于要求解两个三角形方程组: ⑴ Ly=b,求y; ⑵ Ux=y,求x.

设A为非奇异矩阵,且有分解式A=LU, L为单位下三角阵,U为上三角阵。

L,U的元素可以有n步直接计算定出。用直接三角分解法解Ax=b(要求A的所有顺序主子式都不为零)的计算公式: ① uli?ali(i?1,2,?,n),lil?ail/u11 ,i=2,3,?,n. 计算U的第r行,L的第r列元素(i=2,3,?,n): ② uri?ari??lrkuki , i=r,r+1,?,n;

k?1r?1

③ lir?(air??likukr)/urr , i=r+1,?,n,且r≠n.

k?1

r?1

求解Ly=b,Ux=y的计算公式;

y1?b1,

yi?bi??likyk,i?2,3,?n:

k?1

i?1

xn?yn/unn,⑤

xi?(yi?

k?i?1

?uikxk)/uii,i?n?1,n?2,?,1.

n

四、实验步骤

1>将矩阵A保存进计算机中,再定义2个空矩阵L,U以便保存求出的三角矩阵的值。

利用公式①,②,③将矩阵A分解为LU,L为单位下三角阵,U为上三角阵。 2>可知计算方法有三层循环。

先通过公式①计算出U矩阵的第一行元素uli 和L矩阵的第一列元素lil。 再根据公式②和③,和上次的出的值,求出矩阵其余的元素,每次都要三次循环,求下一个元素需要上一个结果。 3>先由公式④ ,Ly=b

y1?b1,

yi?bi??likyk,i?2,3,?n:

k?1

i?1

求出y,因为L为下三角矩阵,所以由第一行开始求y. 4>再由公式⑤,Ux=y

xn?yn/unn,n

xi?(yi?

ik

xk)/uii,i?n?1,n?2,?,1.

k?u

?i?1

求出x, 因为U为上三角矩阵,所以由最后一行开始求x.

五、程序流程图

1、LU分解法

回代过程

高等代数实验
篇二:矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关

矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关。

高等代数实验

参考1.<<线性代数机算与应用指导Matlab版>>

(第1次)实验1 矩阵的基本运算 +熟悉matlab相关操作编程、作图等 (第2次)实验2:行列式与方程组的求解

(第3次)实验3:向量组的线性相关性及方程组的通解 (第4次)实验4:特征向量与二次型

实验1 矩阵的基本运算

1.1 实验目的

1. 掌握 Matlab 软件的矩阵赋值方法;

2. 掌握 Matlab 软件的矩阵加法、数乘、转置和乘法运算;

3. 掌握 Matlab 软件的矩阵幂运算及逆运算;

4. 掌握 Matlab 软件的矩阵元素群运算;

5. 通过 Matlab 软件进一步理解和认识矩阵的运算规则。

实验目的简单的讲:熟练使用Matlab软件进行矩阵的基本运算。

实验指导和实验内容及作业参考《(较清晰)线性代数机算与应用(MATLAB版)》.pdf

高等代数实验报告[1]
篇三:矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关

高等代数实验报告

实验时间:2013-12-03 报告评分:

1

2

高等代数实验报告

实验时间:2013-12-06 报告评分:

3

4

5

数学实验——线性代数方程组的数值解
篇四:矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关

实验5线性代数方程组的数值解法

分1 黄浩 2011011743

一、 实验目的

1. 学会用MATLAB软件数值求解线性代数方程组,对迭代法的收敛性和解的稳

定性作初步分析;

2. 通过实例学习用线性代数方程组解决简化的实际问题。

二、 实验内容

1. 《数学实验》第二版(问题1)

问题叙述:

通过求解线性方程组??1??=??1,??2??=??2,理解条件数的意义和方程组性态对解的影响,其中??1是n阶范德蒙矩阵,即

1 ??1= 1

… 1

??0??1…?????1

2??02??1…2?????1

???1

…??0

???1

…??1 , ??=1+0.1?? , ??=0,1,…,???1

??

……

???1

…?????1

??2是n阶希尔伯特矩阵,b1,b2分别是??1,??2的行和。

(1) 编程构造??1(??2可直接用命令产生)和b1,b2;你能预先知道方程组

??1??=??1和??2??=??2的解吗?令n=5,用左除命令求解(用预先知道的解可验证程序)。

(2) 令n=5,7,9,…,计算??1和??2的条件数。为观察他们是否病态,做以

下试验:b1,b2不变,??1和??2的元素??1(n,n),??2(??,??)分别加扰动ε后求解;??1和??2不变,b1,b2的分量b1(n),b2(n)分别加扰动ε后求解。分析A与b的微小扰动对解的影响。ε取10^-10,10^-8,10^-6。

(3) 经扰动得到的解记做?? ,计算误差

较。

模型转换及实验过程: (1)小题.

????? ??

,与用条件数估计的误差相比矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关。

由b1,b2为??1,??2的行和,可知方程组??1??=??1和??2??=??2的精确解均为n行全1的列向量。在n=5的情况下,用matlab编程(程序见四.1),构造??1,??2和b1,b2,使用高斯消去法得到的解x1,x2及其相对误差e1,e2(使用excel计算而得)为:矩阵代数实验,一,、实验目的,1.复习高等代数中线性代数方程组的求解和矩阵的相关。

由上表可见,当n=5时,

所得的解都接近真值,误差在10^-12的量级左右。 (2)小题

分别取n=5,7,9,11,13,15,计算??1和??2的条件数c1和c2,(程序见四.2),结果如下:

由上表可见,二者的条件数都比较大,可能是病态的。为证实??1和??2是否为病态,先保持b不变,对A(??,??)做扰动,得到该情况下的高斯消元解,(程序见四.3),结果如下:

(为使结果清晰简洁,在此仅列出n=5,9,13的情况,n=7,11,15略去) ε=10^-10时:

ε=10^-8时:

ε=10^-6时:

由上表可见:

a) 对于希尔伯特阵,随着阶数的增加,微小扰动对解带来的影响越来越大,

到了n=9时,已经有了6倍误差的解,到了n=13时,甚至出现了22倍误差的解元素;而随着ε的增加,解的偏差似乎也有增加的趋势,但仅

凭上述表格无法具体判断(在下一小题中具体叙述)。

b) 对于范德蒙矩阵,当n<10时,微小扰动对范德蒙矩阵的影响较小,最

大的误差不过1.6倍,但当n>10时,微小扰动对范德蒙矩阵的影响急剧增加,更出现了33倍误差的解!此时希尔伯特阵与范德蒙阵的病态程度是类似的。(因此,我认为第一版上的参考答案不够全面) 当固定A改变b时,结果与上表类似,微小扰动的影响随阶数的增加而增大,随ε的增加,解的偏差也有增加的趋势。方程组的解表格在此略去,程序也类似,其具体影响及分析见下一小问。

(3)小题

在上一小问中,我们解出了当A、b分别作微小扰动时解的变化情况,但是仅凭直观的感觉以及表格横向的比较,并不能很好的找出其内在规律。因此,可以通过计算误差

????? ??

对于这个误差计算公式,我选择的是2-范数,即norm(x)函数进行计算。 保持b不变,给A(n,n)以微小的扰动,(程序见四.4),结果如下(其中E1、E2分别为两方程解的误差 ????? ??

):

由上表可得出结论:

第一,随着阶数的增加,误差值有增加的趋势

第二,ε的变化对误差大小也有影响,但不是绝对的,对于n=5,7,9,11,13,

ε越大,扰动引起的偏差就越大,对于n=15,找不到ε与E的相关性

第三,实际算得的误差远远小于条件数指出的误差上限

第四,当n<10时,微小扰动对范德蒙矩阵的影响较小,但当n>10时,微小

扰动对范德蒙矩阵的影响急剧增加,到了n=15时,病态程度已与希尔伯特阵类似。

本文来源:http://www.myl5520.com/jiaoanxiazai/118608.html

推荐内容