实验4求解非线性方程组的高斯消去法 1、实验目的 1)掌握高斯消去法的编程,通过实例验证选主元高斯消去法的优点: 2)掌握针对三对角矩阵的特殊的高斯消去法:追赶法。 2、实验内容 I)编制M文件形式的MATLAB自定义函数,实现列选主元与全选主元三种高 斯消元法,使用for循环和MATLAB的向量运算来实现两种算法的不同版本。 编写的函数通过参数传递包括系数矩阵和右端的常数向量的输入参数,输出向量 形式的解,要求能够适应不同的方程组规模。 2)使用MATLAB内置函数magic()创建一个nXn阶的幻方矩阵(注意这里的 n要取奇数),并提取下三角部分作为待求解的线性方程组Ax=B的系数矩阵A。 创建由1组成的维列向量作为线性方程组右侧的常数向量。 3)使用ic/1oc对比列选主元与全选主元高斯消元法的for循环版本和向量运算 版本在不同规模算例上计算效率的差异。 4)对比两种算法得到的数值解的精确度。对于数值解X,可以通过回带计算方 程左右两边的差值向量的范数4?-B吲来衡量数值解的精度。 3、实验思考 在MATLAB中,fOr循环和向量运算对算法的效率有哪些影响? 4、实验习题 1)一个油漆公司将一些不受欢迎的油漆颜色加以混合,得到受欢迎的油漆颜色。 每种油漆都含有四种基本的色素。下表列出了四种不受欢迎的油漆颜色的组成: 色素成分 油漆编号 A B D
实验 4 求解非线性方程组的高斯消去法 1、实验目的 1)掌握高斯消去法的编程,通过实例验证选主元高斯消去法的优点; 2)掌握针对三对角矩阵的特殊的高斯消去法:追赶法。 2、实验内容 1)编制 M 文件形式的 MATLAB 自定义函数,实现列选主元与全选主元三种高 斯消元法,使用 for 循环和 MATLAB 的向量运算来实现两种算法的不同版本。 编写的函数通过参数传递包括系数矩阵和右端的常数向量的输入参数,输出向量 形式的解,要求能够适应不同的方程组规模。 2)使用 MATLAB 内置函数 magic(n)创建一个 n×n 阶的幻方矩阵(注意这里的 n要取奇数),并提取下三角部分作为待求解的线性方程组 Ax=B的系数矩阵A。 创建由 1 组成的 n 维列向量作为线性方程组右侧的常数向量。 3)使用 tic/toc 对比列选主元与全选主元高斯消元法的 for 循环版本和向量运算 版本在不同规模算例上计算效率的差异。 4)对比两种算法得到的数值解的精确度。对于数值解 X ~ ,可以通过回带计算方 程左右两边的差值向量的范数 AX − B ~ 来衡量数值解的精度。 3、实验思考 在 MATLAB 中,for 循环和向量运算对算法的效率有哪些影响? 4、实验习题 1)一个油漆公司将一些不受欢迎的油漆颜色加以混合,得到受欢迎的油漆颜色。 每种油漆都含有四种基本的色素。下表列出了四种不受欢迎的油漆颜色的组成: 油漆编号 色素成分 A B C D
80 0 16 4 2 0 80 3 30 10 60 0 4 10 10 72 8 期望得到的颜色是40%的色素A,27%的色素B,31%的色素C和2%的色素 D。要得到一升这种颜色的油漆,需要表中四种颜料各多少? 2)在一些实际问题中,例如求解常微分方程边值问题、求解热传导方程、船体 数学放样中构造三次样条函数的过程中,都会要求解系数矩阵为对角占优的三 对角线方程组。方程组的形式如下: 「bc x. d d C ba-2 a bn-1Lxm-J d 求解三对角线线性代数方程组,本质上还是使用高斯消去法。但由于系数矩 阵中的大部分元素为0,因此,在使用高斯消去法的过程中,只需要对三对 角线上的元素进行运算,这样就可以大大减少计算工作量。这种方法叫追赶 法,主要有两个步骤:第一步是归一化与消去的过程,也称为“追”的过程。 这一步的作用是将主对角线上的元素变为1,而左下次对角线上的元素变成0。 第二步是回代过程,也称为“赶”的过程。这一步的作用是求出方程组的解 编写程序实现“追赶法”,并用该程序求解下面的方程组。 X1+2x2 =7 2x+3x-x =9 4x+2x3+3x4=10 2x3-4x4=12
1 80 0 16 4 2 0 80 20 0 3 30 10 60 0 4 10 10 72 8 期望得到的颜色是 40%的色素 A,27%的色素 B,31%的色素 C 和 2%的色素 D。要得到一升这种颜色的油漆,需要表中四种颜料各多少? 2)在一些实际问题中,例如求解常微分方程边值问题、求解热传导方程、船体 数学放样中构造三次样条函数的过程中,都会要求解系数矩阵为对角占优的三 对角线方程组。方程组的形式如下: 1 1 1 1 2 2 2 2 2 3 1 2 2 2 2 1 1 1 1 n n n n n n n n n n b c x d a b c x d c a b c x d a b x d − − − − − − − − − − = 求解三对角线线性代数方程组,本质上还是使用高斯消去法。但由于系数矩 阵中的大部分元素为 0,因此,在使用高斯消去法的过程中,只需要对三对 角线上的元素进行运算,这样就可以大大减少计算工作量。这种方法叫追赶 法,主要有两个步骤:第一步是归一化与消去的过程,也称为“追”的过程。 这一步的作用是将主对角线上的元素变为 1,而左下次对角线上的元素变成 0。 第二步是回代过程,也称为“赶”的过程。这一步的作用是求出方程组的解。 编写程序实现“追赶法”,并用该程序求解下面的方程组。 1 2 1 2 3 2 3 4 3 4 2 7 2 3 9 4 2 3 10 2 4 12 x x x x x x x x x x + = + − = + + = − =