下载此文档

消元法实验报告.doc


文档分类:高等教育 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
西京学院数学软件实验任务书
课程名称
数学软件实验
班级
***
学号
***
姓名
***
实验课题
线性方程组高斯消去法,高斯列主元消去法,高斯全主元消去法
实验目的
熟悉线性代数方程组高斯消去法,高斯列主元消去法,高斯全主元消去法
实验要求
运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成
实验内容
线性方程组高斯消去法
线性方程组高斯列主元消去法
线性方程组高斯全主元消去法
成绩
教师
1. 实验目的
掌握高斯消去法的基本思路和迭代步骤;
熟悉线性代数方程组高斯消去法,高斯列主元消去法,高斯
全主元消去法;
培养编程与上机调试能力。
算法描述 注:本实验以3行4列的增广矩阵为例
1. 高斯消去法基本思路
设有方程组A*x=b,设是可逆矩阵。高斯消去法的基本思想就是将矩阵的初等行变换作用于方程组的增广矩阵,将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组。
2. 高斯顺序消去法计算步骤
将方程组用增广矩阵B={A:b}表示。
消元过程
(1) a[0][0]!=0.
(2)如果a[0][0]=0,则矩阵奇异,程序结束。
(3)消元 每一行都先与第一行消元 通式为:
a[i][j]=a[i][j]+a[k][j]*(-a[i][k]/a[k][k])
2. 回代过程
(1) 若a[k][k]=0,则矩阵奇异,方程组解不唯一,程序结束;
(2) 从下往上一步步回代 通式为:
a[i][3]=a[i][3]-a[i][j]*x[j]
x[i]=a[i][3]/a[i][i]

将方程组用增广矩阵B={A:b}表示
第i次选出i列中最大的行 与第i行交换 循环同时进行顺序消元过程
回代过程与顺序法相同

将方程组用增广矩阵B={A:b}表示
找出所有未知量系数的最大元素 记下最大元素所在的行与列
将最大元素所在的行换到第i行
将最大元素所在的列换到第i列
记下列的变换
回代过程与顺序法相同
将列变换交换回来
输出结果
3 实验内容
解方程组
x1+x2+x3=6
x2-x3=5
2x1-2x2+x3
4 实验步骤
C语言代码

#include""
void main()
{
int i,j,k,s,x[3],a[3][4];
//input matrix
printf("请注意输入的增广矩阵A为3行4列\n");
for(i=0;i<3;i++)
{
printf("第%d行\n",i+1);
for(j=0;j<4;j++)
{
// printf("%d :",j+1);
scanf("%d",&a[i][j]);
}
// printf("\n");
}
//output
printf("\n线性方程组的增广矩阵A为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%-5d",a[i][j]);
printf("\n");
}
// gs
for(k=0;k<2;k++)
{
for(i=k+1;i<3;i++)
{
s=-a[i][k]/a[k][k];
for(j=k;j<4;j++)
{
a[i][j]=a[i][j]+a[k][j]*s;
}
}
}
printf("\n");
//out
printf("\n线性方程组的增广矩阵经过高斯消元得到的矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%-5d",a[i][j]);
printf("\n");
}
//solution
printf("\n线性方程组的解为:\n");
x[2]=a[2][3]/a[2][2];
for(i=3-2;i>=0;i--)
{
if(a[i][i]!=0)
{for(j=i+1;j<3;j++)
{
a[i][3]=a[i][3]-a[i][j]*x[j];
}
x[i]=a[i][3]/a[i][i];
}
else printf("\n方程组解不唯一")

消元法实验报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人1542605778
  • 文件大小210 KB
  • 时间2021-10-31