- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
太原理工大学数值计算实验报告[精品]
实验由本人当时亲自完成
仅供参考,希望可以帮助大家
本科实验报告
课程名称: 计算机数值方法B
实验项目: Gauss消元法,迭代法,方程求根,拉格朗日插值法,幂法,最小二乘法,追赶法
实验地点: 中区ZSA301
专业班级: 0000 学号: 0000000000
学生姓名: 氣宇軒昂
指导教师:
2012 年 13 月 13 日
实验一:Gauss消元法实验
一、实验目的
《数值计算方法》是一门实践性和实用性都很强的课程,学习的目的在于应用。本配合课堂教学实践环节巩固课堂和书本上所学知识加强能力提高启发创新思想。
②
③
④(n=5,10,100,…)
主要仪器设备
1.笔记本电脑;
2.软件vc++6.0;
操作方法与实验步骤(代码)
Guass消元法;
#include Stdio.h
#define N 3
void Gauss_eliminant(double a[N][N+1]) /*建立系数及常数项的二维数组*/
{
double b[N]; /*建立解的一位数组*/
double s; /*计算解系时的变量*/
int i,j,k;
for(k=0;kN;k++) /*消元过程*/
{
for(i=k;iN-1;i++)
{
for(j=N;j=0;j--)
{
a[i+1][j]=a[i+1][j]-a[k][j]*a[i+1][k]/a[k][k];
}
}
}
printf(消元后得到上三角矩阵:);
printf(\n);
for(i=0;iN;i++) /*输出消元后的上三角矩阵*/
{
for(j=0;j=N;j++)
{
printf(%lf ,a[i][j]);
}
printf(\n);
}
printf(回代求得原方程组的解为:);
printf(\n);
for(i=N-1;i=0;i--) /*回代过程*/
{
s=0;
for(j=N-1;ji;j--)
{
s=a[i][j]*b[j]+s;
}
b[i]=(a[i][N]-s)/a[i][i];
}
for(i=0;iN;i++) /*输出解系*/
{
printf(x(%d)=%lf\n,i+1,b[i]);
}
}
main()
{
int i ,j;
double a[N][N+1];
printf(输入系数及常数项矩阵:);
printf(\n);
for(i=0;iN;i++)
{
for(j=0;j=N;j++)
{
scanf(%lf,a[i][j]);
}
}
Gauss_eliminant(a);
getch();
}
实验结果与分析
宏定义的N代表了N维矩阵改变N可以解决n维矩阵;
先给出N=3,解决第一个方程组;
第一步执行如下:
输入矩阵后执行如下:
再给出N=4,解决第三个方程;
1.第一步执行如下:
2,输入矩阵执行如下:
Gauss_列主元消元法;
#include Stdio.h
#define N 2
void Gauss_eliminant(double a[N][N+1]) /*建立系数及常数项的二维数组*/
{
double b[N]; /*建立解的一位数组*/
double s; /*计算解系时的变量*/
int i,j,k,m,n;
for(k=0;kN;k++) /*列主消元过程*/
{
for(m=N-1;m0;m--)
{
for(n=N-m;nm-1;n++)
{
if(a[n][k]a[n+1][k])
{
s=a[n][k];
a[n][k]=a[n+1][k];
a[n+1][k]=s;
}
}
}
for(i=k;iN-1;i++)
{
for(j=N;j=0;j--)
{
a[i+1][j]=a[i+1][j]-a[k][j
文档评论(0)