数值方法实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析实验报告

实验一 Gauss 消兀法 姓名:杨 玲

实验二 列主元消元法 学号: 2008115010147

实验三 三角分解 院系:计算机科学与技术学院

实验一 Gauss 消元法

任课教师:李国屏 学 号: 2008115010147 姓 名:杨 玲 ※ 题目描述 用Gauss 消元法解n 阶线性代数方程组: 其基本做法是把上述方程组通过消元转化为一个等价的三角形方程组, 然后再进行回代就可 以求出方程组的解。

要求显示出每一大步消元后的系数矩阵和常数项,最后显示出方程组的解。 ※ 算法分析

( 1) 算法思想:

用Gauss 消元法把上述方程组的系数矩阵化为上三角矩阵的过程称为消元过程, 消元过

程中的算法设计为:

for(t=i;t

{

w=a[t+1][i]/a[i][i]; for(j=i;j<=n;j++)

{

a[t+1][j]=a[t+1][j]-a[i][j]*w;

}

b[t+1]=b[t+1]-b[i]*w;

}

这样就有了等价的上三角形方程组,如果最后一个方程的系数,则可以解出,然后进行 回代就可以求出方程的解。其中回代过程的计算公式可以归纳为: 2) 具体程序设计: for(i=1;i<=n;i++)

{

if(a[i][i]!=0) for(t=i;t

{

w=a[t+1][i]/a[i][i];

课题名称:Guess 消元法

专业班级:计算机科学与技术

//具体的Gauss 消元算法

for(j=i;j<=n;j++)

{

a[t+1][j]=a[t+1][j]-a[i][j]*w;

}

b[t+1]=b[t+1]-b[i]*w;

}

for(i=n-1;i>=0;i--) // 回代过程

{

v=0;

for(j=i+1;j<=n;j++)

v=a[i][j]*x[j]+v; x[i]=(b[i]-v)/a[i][i];

}

※ 程序说明:

本程序在C++ 环境中编译运行并且通过测试,通过提示语句输入相应的系数矩阵和常数项。

※ 程序代码

#include #include

const int N=100;

using namespace std;

int main()

{

int n,i,j,k,m,h,t;

double a[N][N],b[N],x[N],w,v; cout<<" 请输入矩阵的阶数:"<

while(cin>>n)

{

coutvv"请输入系数矩阵:"<

for(i=1;i<=n;i++)

for(j=1;j<=n;j++) cin>>a[i][j];

cout«"请输入常数项:"<

for(i=1;i<=n;i++)

cin>>b[i];

cout<<" ******************************、' <

coutvv"您所要求解的方程组为:"<

for(i=1;i<=n;i++)

{

int t=1;

for(j=1;jv=n;j++)

{

coutvv"("vva[i][j]vv"X"vvt++vv")";

if(j!=n)

coutvv"+";

}

cout<<"="<

k=1;

for(i=1;i<=n;i++)

{

if(a[i][i]!=0) for(t=i;t

{

w=a[t+1][i]/a[i][i]; for(j=i;j<=n;j++)

{

a[t+1][j]=a[t+1][j]-a[i][j]*w;

}

b[t+1]=b[t+1]-b[i]*w;

}

cout«"第"vvkvv"个系数矩阵A("v

for(m=1;m<=n;m++)

{

for(h=1;h<=n;h++)

{

cout<

}

cout<

}

coutvv"第"vvkvv"个常数项 b("vvkvv")为:"vvendl; for(m=1;m<=n;m++)

coutvvsetiosflags(ios::left)vvsetw(15)vvb[m]; coutvvendl;

k++;

}

for(i=1;ivN;i++)

x[i]=0;

for(i=n-1;i>=0;i--)

{

v=0;

coutvv" ******************************、' vvendl; cout<<" ******************************、' <

{

cout<<" 该方程组无解 !"<

return 0;

//若输入的 a[i][i]=0 ,无解

cout<<" ******************************、' <

//回代过程

相关文档
最新文档