C13 100429 求线性代数方程的解(高斯消去法)_高斯法解线性方程组

2020-02-28 其他范文 下载本文

C13 100429 求线性代数方程的解(高斯消去法)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“高斯法解线性方程组”。

编号:13 河北工业大学计算机软件技术基础(VC)课程设计报告

学院 机械学院 班级 机设104 姓名王杰学号 100429 成绩 __

一、题目:

求线性代数方程组的解(高斯消去法)

二、设计思路

1、总体设计

1)分析程序的功能

通过高斯消去法求解中小规模线性方程组(即阶数不要太高,例如不超过1000)的解 2)系统总体结构:设计程序的组成模块,简述各模块功能 a.输入:方程组系数矩阵和常数矩阵的输入函数 b.消元和回代:高斯消去法的算法函数 c.输出:输出方程组的解函数

2、各功能模块的设计:说明各功能模块的实现方法 a.执行主函数调用输入函数,输入系数矩阵和常数矩阵 b.输入后主函数调用算法矩阵进行验证解情况和消元 c.消元后主函数调用回代函数计算方程组的解 d.计算后主函数调用输出函数输出方程组的解

3、设计中的主要困难及解决方案

在这部分论述设计中遇到的主要困难及解决方案。困难:

函数的消元和回代的算法的处理 解决方案:

消元过程中采用列主元消去法,为使方程组的解具有较小的误差计算,必须是系数矩阵主对角线上的元素的绝对值为最大。可单独用一个函数来完成。

4、你所设计的程序最终完成的功能 1)说明你编制的程序能完成的功能 求解线性代数方程组的解,阶数不太高的 2)准备的测试数据及运行结果 数据一:有解的情况 方程组的阶数:3 系数矩阵:3 2 1 1 1 1 2 3-1 常数矩阵:14 10 1 方程组的解:x1=1 X2=2 X3=7 数据二:无解的情况

编号:13 方程组的阶数:3 系数矩阵:1 1 1 1 1 1 1 1 1 常数矩阵:1 1 1 方程无解

三、程序清单

1、vc++.cpp文件清单 #include #include #include“tiger.h” void main()//主函数的定义 {

double a[s][s],b[s],x[s];//变量数组的定义 int n;cout>n;shuru(a,b,n);//调用函数输入

xiaoyuan(a,b,n);//调用函数消元

huidai(a,b,x,n);//调用函数回带

} shuchu(x,n,a);//调用函数输出

2、tiger.h文件清单

const int s=100;void shuru(double a[s][s],double b[s],int n);//函数输入原型声明

void xiaoyuan(double a[s][s],double b[s],int n);//函数消元原型声明

void huidai(double a[s][s],double b[s],double x[s],int n);//函数回带原型声明 void shuchu(double x[s],int n,double a[s][s]);//函数输出原型声明

3、shuru.cpp文件清单 #include #include void shuru(double a[100][100],double b[100],int n)//函数输入的定义 {

int i,j;cout

j=0;while(j>a[i][j];//输入矩阵到系数矩阵 j++;

编号:13

} i++;} cout

} 4.xiaoyuan.cpp文件清单 #include #include void xiaoyuan(double a[100][100],double b[100],int n)//函数消元的定义 {

int i,j,l;double p,q,max;for(l=0;l

max=fabs(a[i][l]);j=i;//J是max所在的行

} cin>>b[i];//输入矩阵到常数矩阵 i++;{

} for(i=l;i

p=a[l][i];a[l][i]=a[j][i];a[j][i]=p;} p=b[l];//交换常数行 b[l]=b[j];b[j]=p;for(i=l+1;i

q=a[i][l]/a[l][l];for(j=1;j

编号:13 } } } 5.huidai.cpp文件清单 include #include void huidai(double a[100][100],double b[100],double x[100],int n)//函数回代的定义 { double p;int i,j;x[n-1]=b[n-1]/a[n-1][n-1];i=n-2;while(i>=0){

p=0;

j=i+1;

while(j

{

p+=a[i][j]*x[j];

x[i]=(b[i]-p)/a[i][i];

j++;

}

i--;} } 6.shuchu.cpp文件清单

#include #include void shuchu(double x[100],int n,double a[100][100])//{ int i;if(a[n-1][n-1]==0)

cout

else

{

cout

i=0;

while(i

{

cout

i++;

} }

函数输出的定义 编号:13 }

四、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价

学会了用高斯消去法求线性代数方程的解,学会了使用多文件的形式

2、对课题提出更完善的方案

高斯消去法的程序求线性代数方程的解的过程过于繁琐,可以选择更简单的程序例如克拉默法则

五、收获及心得体会

1、通过本次课程设计,自己在哪些方面的能力有所提高。

通过本次课程设计,自己对函数的理解更明了。还有c++中对于多文件的使用方面。能够通过自己所学的知识来解决问题是很好的事,而且在解决问题的同时也提高了自己的能力。

2、收获和心得体会

以后要更用心的去学习

《C13 100429 求线性代数方程的解(高斯消去法).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
C13 100429 求线性代数方程的解(高斯消去法)
点击下载文档
相关专题 高斯法解线性方程组 代数方程 线性 高斯 高斯法解线性方程组 代数方程 线性 高斯
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文