下载此文档

课程设计报告--线性方程组求解.doc


文档分类:IT计算机 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
北京化工大学北方学院
课程设计报告
课程名称课程设计
设计题目线性方程组求解
专业、班级计科0701
学号 070202021
姓名张海艳
指导教师刘佩贤
设计时间 ——
2010年 9 月 30 日
引言

测试分析报告是把测试的结果写成文档,并对测试结果进行分析,为纠正软件的缺陷提供依据,也为软件验收和交付打下基础。是软件开发的另一里程碑。及时记录测试阶段的工作过程和工作成果,如实反映测试过程中所解决的各种问题,把集成测试和确认测试的结果以文件形式加以记载,使开发者能在第一时间对遇到的问题做迅速反应。
背景
软件名称:线性方程组求解
具体要求:输入是N(N<256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。

首先将线性方程组做成增广矩阵,对增广矩阵进行行变换。
对元素aii,在第i列中,第i行及以下的元素选取绝对值最大的元素,将该元素最大的行与第i行交换,然后采用高斯消元法将新得到的aii消去第i行以下的元素。一次进行直到ann。从而得到上三角矩阵。再对得到的上三角矩阵进行回代操作,即可以得到方程组的解。
正文
(1)设计部分
该软件用于求解线性方程组的解。
执行过程:
首先执行main()(主函数),输入待求解方程组的增广矩阵的行数,接着输入增广矩阵。
i. 调用uptrbk(double *A,int N)(上三角变换函数), 在此函数中又调用了两个函数:FindMax(int p,int N,double *A)和 ExchangeRow(int p,int j,double *A,int N)。
ii. FindMax()函数用于找出列向量中绝对值最大项的标号,ExchangeRow()用于交换两行。
iii. uptrbk()函数将矩阵行数N、增广矩阵指针A、行号p传给FindMax()函数,找出绝对值最大项的标号;
iiii. 接着将绝对值最大项的标号传给ExchangeRow()函数, 最终将绝对值最大的那行换到第一行。
最后执行回代函数,求出方程组的解。
源代码:
#include<>
#include<>
#include<>
//在列向量中寻找绝对值最大的项,并返回该项的标号
int FindMax(int p,int N,double *A)
{
int i=0,j=0;
double max=;
for(i=p;i<N;i++)
{
if(fabs(A[i*(N+1)+p])>max)
{
j=i;
max=fabs(A[i*(N+1)+p]);
}
}
return j;
}
//交换矩阵中的两行
void ExchangeRow(int p,int j,double *A,int N)
{
int i=0;
double C=;
for(i=0;i<N+1;i++)
{
C=A[p*(N+1)+i];
A[p*(N+1)+i]=A[j*(N+1)+i];
A[j*(N+1)+i]=C;
}
}
//上三角变换,A为增广矩阵的指针,N为矩阵的行数。
void uptrbk(double *A,int N)
{
int p=0,k=0,q=0,j=0;
double m=;
for(p=0;p<N-1;p++)
{
//找出该列最大项的标号
j=FindMax(p,N,A);
//交换p行和j行
ExchangeRow(p,j,A,N);
if(A[p*(N+1)+p]==0)
{
printf("矩阵是一个奇异矩阵,没有唯一解!");
break;
}
//消去P元素以下的p列内容。
for(k=p+1;k<N;k++)
{
m=A[k*(N+1)+p]/A[p*(N+1)+p];
for(q=p;q<N+1;q++)
A[k*(N+1)+q]=A[k*(N+1)+q]-m*A[p*(N+1)+q];
}

}
printf("\n增广矩阵高斯列主元消去后的矩阵为:\n");
for(j=0;j<N*(N+1);j++)
{
if(j%(N+1)==0)
printf("\n");
printf("%lf\t",A[j]);
}
}
//下面是回代函数
double* backsub(double *A,int N)
{
double* X

课程设计报告--线性方程组求解 来自淘豆网m.daumloan.com转载请标明出处.

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