本科实验报告
课程名称:计算机数值方法
实验项目:计算机数值方法实验
实验地点: 506 专业班级:学号:
学生姓名:
指导教师:
2012 年 6 月 20 日
太原理工大学学生实验报告
b=c;
printf("%f\n",b);
}
printf("X的值为:%f\n",c);
}
五、实验结果与分析
二分法割线法分析:
由程序知,使用二分法和割线法均能计算出方程的根,但利用割线法要比二分法计算的次数少,并且能够较早的达到精度要求。
相比之下,割线法程序代码量较少,精简明了。
六、讨论、心得
本次数值计算方法程序设计实验从习题练习中跳脱出来,直接面对实用性较强的程序代码编写。效果很好,不仅加深对二分法、割线法的理解,还加强了实际用运能力。将理论知识成功地转化成实践结果。
实验地点北区多学科综合楼4506指导教师
太原理工大学学生实验报告
x[i] = y[i];
for(j=i+1;j<=n;++j)
{
x[i]-=u[i][j]*x[j];
}
x[i]/= u[i][i];
}
for(i=1;i<=n;++i)
{
printf("%\n",x[i]);
}
return 0;
}
五、实验结果与分析
完全主元素消元法:
列主元素消元法:
LU分解法:
分析:
对于两种高斯解方程,完全主元素跟列主元素都是先消元、再回代,由程序段可以发现,始终消去对角线下方的元素。即,为了节约内存及时效,可以不必计算出主元素下方数据。
列主元素消元法的算法设计上优于完全主元素消元法,它只需依次按列选主元素然后换行使之变到主元素位置,再进行消元即可。
列主元素消元法的耗时比完全主元素法少很多,常采用之。
对于LU分解法,分解矩阵为单位下三角阵L与上三角阵U的乘积,然后解方程组Ly=b,回代,解方程组Ux=y。其中的L为n阶单位下三角阵、U为上三角阵.
六、讨论、心得
本次试验中,感觉是最难的一次,完全主元素消元法程序编写过程相对来说花了好长时间。纠正各种语法、算法、思路错误。最后勉强成功,但还是有几处警告,不得解决之法。感到程序学习的不足,再加之对高斯的不甚了解。编写过程很是痛苦。
查阅各种内外部资料,这点有利有弊。突然觉得,应该再把数据结构之类的重新学习一下才行。以后多花时间在编程吧,重在理解。
必须反省一下自己的C、C++学习了,还是得多加练习,平时必须养成一种好的算法思维习惯。
实验地点北区多学科综合楼4506指导教师
太原理工大学学生实验报告
学院名称计算机科学与技术专业班级学号
学生姓名实验日期成绩
课程名称数值计算方法实验题目实验三线性方程组的迭代解法一、实验目的和要求
使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。
二、主要设备
PC,Windows操作系统,VC++编程平台;
三、实验内容和原理
设线性方程组 A x=b
的系数矩阵A可逆,且主对角元素a11,a22,…,a nn均不为零,令
D=diag(a11,a22,…,a nn)
并将A分解成 A=(A-D)+D
从而线性方程组可写成 D x=(D-A)x+b
则有迭代公式
x(k+1)=B1x(k)+f1
其中,B1=I-D-1A,f1=D-1b。各自详细流程图如下所示:
雅克比迭代:
分析:
使用高斯-赛德尔和雅克比迭代都可以求出方程组的解,但是利用高斯-赛德尔迭代法所需的迭代次数比雅克比迭代少,能够更早的达到精度要求。
从程序中可以看出,雅克比定义的sum只有一个,而高斯赛德尔需要两个。时效性上后者要好些。
六、讨论、心得
这次试验算是比较成功,要归功于授课时候的认真听讲。程序编写之前,对书本的理论知识进行了进一步的探索。预习准备工作很彻底,自然随后的一切也都很顺利。
实验地点北区多学科综合楼4506指导教师
太原理工大学学生实验报告
V[i]=temp;
}
for(i=0;i U[i]=V[i]/maxvalue(V,N); if(k==1)r1=maxvalue(V,N); else r2=maxvalue(V,N); if(fabs(r2-r1) } printf("迭代次数:\t%d\n",k); printf("矩阵的特征值:\t%f\n",r2); printf("("); for(i=0;i printf("%f\t",U[i]); printf(")\n"); } int main() { float A[N][N]={{2,-1,0},{-1,2,-1},{0,-1,2}} ; matrix(A[0]); } 五、实验结果与分析 分析: 采用幂方法求解矩阵的最大特征值以及特征向量,其最大优点是计算简单,容易在计算机上实现,对稀疏矩阵较为适合。 但有时收敛速度很慢,时效性较差。 六、讨论、心得 程序编写时详细分析了书上的求解过程,但最终结果还是有所出入。课本的迭代次数只用7次,而程序运行之后显示为12次。不明白那里原因。推测是由于精确位数的不同导致。最后在程序中更改了一下,验证得之。 实验地点北区多学科综合楼4506指导教师