实验4解线性方程组的直接法_第1页
实验4解线性方程组的直接法_第2页
实验4解线性方程组的直接法_第3页
实验4解线性方程组的直接法_第4页
实验4解线性方程组的直接法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 西华数学与计算机学院上机实践报告课程名称:数值计算方法B年级:2009级上机实践成绩:指导教师:严常龙姓名: 上机实践名称:解线性方程组的直接法学号:上机实践日期:2011.12.2上机实践编号:4上机实践时间:8:009:40一、目的1通过本实验,加深对解线性方程组的直接法高斯列主消元法和LU分解法的构造过程的理解;2能将各种方法的算法描述正确地改编为程序并上机实现;3熟悉并掌握各种方法的适用对象及优缺点,学会针对不同问题选择不同方法。二、内容与设计思想自选线性方程组,编制一个程序,分别用高斯列主元消元法和LU分解法求解。然后完成作业:分别用高斯列主元消元法和LU

2、分解法求解下面的方程组(以下方程组供选择)。三、使用环境操作系统:windows xp软件平台:vc+ 6.0四、核心代码及调试过程 #include#include#includevoid main()int i,j,k,p,N;float a5051,t,x50;float max,temp;printf(n请输入方程未知数的个数N:);scanf(%d,&N); printf(n请输入方程的增广矩阵的数据,数据之间按回车键隔开!n);for(i=0;iN;i+)printf(请输入第%d行的%d个数据:n,i+1,N+1);for(j=0;jN+1;j+)scanf(%f,&aij);p

3、rintf(n);printf(n增广矩阵的初始数值:n); for(i=0;iN;i+)for(j=0;jN+1;j+)printf(%f ,aij);printf(n);for(k=0;k=0)max=akk;elsemax=akk;for(i=k;iN;i+)if(maxaik)|(max=0)max=aik;elsemax=-aik;for(i=k;iN;i+)if(max=aik)|(max=-aik)p=i;break;for(j=0;jN+1;j+)temp=apj;apj=akj;akj=temp;/*选主列的元。for(i=k+1;iN;i+)t=(aik/akk);for(

4、j=k;jN+1;j+) aij=aij-t*akj;printf(n增广矩阵系数上三角形化得到的矩阵:n);for(i=0;iN;i+)for(j=0;j=0;k-)for(i=k-1;i=0;i-)t=(aik/akk);for(j=0;jN+1;j+) aij=aij-t*akj;printf(n增广矩阵的系数对角线化得到的矩阵:n);for(i=0;iN;i+)for(j=0;jN+1;j+)printf(%f ,aij);printf(n);printf(该方程的解为:n);for(k=0;kN;k+)xk=akN/akk;printf( x%d=%fn,k+1,xk);2.L-U分

5、解法:/* (L-U)分解法求解线性方程组。 #include#include#includefloat a5051,x50,u5051;void main()int i,j,k,p,N;float sum,t;printf(n请输入方程未知数的个数N:);scanf(%d,&N);/*输入矩阵a的数据。printf(n请输入方程系数矩阵 a 的数据,数据之间按回车键隔开!n);for(i=0;iN;i+)printf(请输入第%d行的%d个数据:n,i+1,N);for(j=0;jN+1;j+)scanf(%f,&aij);printf(n);/*输出矩阵a的数据。printf(n系数矩阵

6、a 的初始数值:n);for(i=0;iN;i+)for(j=0;jN+1;j+)printf(%f ,aij);printf(n);/*进行变换计算。for(j=1;jN;j+)aj0=aj0/a00; for(k=1;kN;k+)for(j=k;jN+1;j+) /从第2行起,先进行行变换。sum=0;for(p=0;pk;p+)sum=sum+akp*apj;akj=akj-sum;t=akk;for(j=k+1;j=N;j+) /从第2列起,进行列变换。sum=0;for(p=0;pk;p+)sum=sum+ajp*apk;ajk=(ajk-sum)/t;/* for(i=0;iN;i

7、+) /把a中对应数据赋值给矩阵u。 for(j=0;jN+1;j+) if(ji) uij=0; else uij=aij; printf(n系数矩阵 u 的初始数值:n);for(i=0;iN;i+)for(j=0;j=0;k-) /把矩阵u对角化。for(i=k-1;i=0;i-)t=(uik/ukk);for(j=0;jN+1;j+)uij=uij-t*ukj; for(k=0;kN;k+) /求出矩阵X并输出。xk=ukN/ukk;printf( x%d=%fn,k+1,xk);五、总结通过本次上机实验,我掌握了高斯列主元消元法和LU分解法求解线性方程组。编程序实现这两种解线性方程组的方法,就要先熟悉具体的操作步骤,逻辑思路要清

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论