- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学与计算科学学院
实 验 报 告
实验项目名称 直接法解线性方程组
所属课程名称 数值方法A
实 验 类 型 验证型
实 验 日 期 2014.11.28
班 级 信计12-
学 号 201253100
姓 名
成 绩
一、实验概述: 【实验目的】
1.掌握用C语言编程实现追赶法求解三对角线性方程组;
2.掌握运用高斯列主元消去法解线性方程组;
3.加深对解线性方程组的直接法——高斯列主消元法和LU分解法的构造过程的理解;
4.熟悉并掌握各种方法的适用对象及优缺点,学会针对不同问题选择不同方法;
5.培养使用电子计算机进行科学计算和解决问题的能力。
【实验原理】
1.追赶法原理
2.高斯列主元消去法
【实验环境】
1.硬件环境
2.软件环境
(1)
(2)VC++ 6.0
二、实验内容: 【实验过程】(实验步骤)
1.实验步骤
1)深入了解解题过程并依次写出解题算法;
2)依照算法用C语言编写解题程序;
3)上机时将写好的程序输入到VC++中并调试运行得出方程的解;
4)比较几种方法之间的联系与区别。
2.1追赶法
根据以上的实验原理,在VC++编辑框中输入源程序:
由原理可知:b[1]=2,c[1]=-1,f[1]=1
a[2]=-1,b[2]=2,c[2]=-1,f[2]=0
a[3]=-1,b[3]=2,c[3]=-1,f[3]=0
a[4]=-1,b[4]=2,c[4]=-1,f[4]=0
a[5]=-1,b[5]=2 ,f[5]=0
将上述系数逐个输入运行框, 并经过多次调试运行,最终运行出结果如下:
2.1 Gauss消元法
1)数据输入
main(void)
{
float A[4][4]={{0.4096,0.1234,0.3678,0.2943},
{0.2246,0.3872,0.4015,0.1129},
{0.3645,0.1920,0.3781,0.0643},
{0.1784,0.4002,0.2786,0.3927}};
float b[4]={0.4043,0.1550,0.4240,-0.2557};
float x[4]={0};
float Aik,S;
int i,j,k;
int size=4;
printf(A[][]\n);
for(i=0;isize;i++)
{
for(j=0;jsize;j++)
printf(%f ,A[i][j]);
printf(\n);
}
printf(b[]\n);
for(i=0;isize;i++)
printf(%f ,b[i]);
printf(\n\n);
2)消去过程
//消去过程
for(k=0;ksize-1;k++)
{
if(!A[k][k])
return -1;
for(i=k+1;isize;i++)
{
Aik=A[i][k]/A[k][k];
for(j=k;jsize;j++)
{
A[i][j]=A[i][j]-Aik*A[k][j];
}
b[i]=b[i]-Aik*b[k];
}
}
//消去的结果
printf(A[]\n);
for(i=0;isize;i++)
{
for(j=0;jsize;j++)
printf(%f ,A[i][j]);
printf(\n);
}
printf(b[]\n);
for(i=0;isize;i++)
printf(%f ,b[i]);
printf(\n\n);
3)回代过程
//回代过程
x[size-1]=b[size-1]/A[size-1][size-1];
for(k=size-2;k=0;k--)
{
S=b[k];
for(j=k+1;jsize;j++)
{
S=S-A[k][j]*x[j];
}
x[k]=S/A[k][k];
}
4)结果输出
//solution
printf(The solution x[]=\n)
文档评论(0)