用高斯列主元消元法解线性方程组

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用C语言编写软件完成以下任务:

请用高斯列主元消元法解下列线性方程组:

方法说明(以4阶为例):

第1步消元——在增广矩阵(A,b)第一列中找到绝对值最大的元素,将其所在行与第一行交换,再对(A,b)做初等行变换使原方程组转化为如下形式:

第2步消元——在增广矩阵(A,b)中的第二列中(从第二行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b)做初等行变换使原方程组转化为:

第3步消元——在增广矩阵(A,b)中的第三列中(从第三行开始)找到绝对值最大的元素,将其所在行与第二行交换,再对(A,b)做初等行变换使原方程组转化为:

按x4x3 x2 x1的顺序回代求解出方程组的解

总体流程图(一)

定义数组x[NUMBER],变量r,k,i,j,celect 判断celect是否等于esc

是否

i = 1 i <= n

输入系数和向量

j = 1 j <= n+1

将输入的数据存入A[i][j]中

退 j ++

i ++

k = 1 k <= n-1

调用mymax函数比较系数大小

判断ark是否等于零

是否

判断f是否不等于k

是否

此方程组不合法

调用change 不执行

函数

i = k+1 i <= n

j = k+1 j <= n+1

j ++

k ++

x[n]=A[n][n+1]/A[n][n] k = n-1 k >=1

j = k+1 j <= n

me = me + A[k][j] * x[j]

j ++

k --

输出结果

调用message函数

A[i][j] = A[i][j] – A[k][j] * A[i][k] / A[k][k]

出 j ++

k ++

x[u] = A[n][n+1] / A[n][n]求解最后一个方程组的解

k = n - 1 k >= 1

j = k + 1 j <= n

p1= p1 + A[k][j] * x[j]

j ++ k --

输出线性方程组的结果

调用message函数

相关文档
最新文档