用高斯列主元消元法解线性方程组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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函数