- 2
- 0
- 约4.77千字
- 约 11页
- 2017-10-06 发布于重庆
- 举报
2014级硕士研究生数值分析上机实习报告(答案)
2014级硕士研究生数值分析上机实习 (第一次)
姓名: 学号: 学院:
实习题目:分别用二分法和Newton迭代法求方程的根.
实习目的:掌握两种解法,体会两种解法的收敛速度.
实习要求:用C程序语言编程上机进行计算,精确到8位有效数字.
报告内容:
1. 确定实根的个数以及所在区间.
2. 将最后两次计算结果填入下表(保留8位数字):
方法 二分法 Newton法 3. 实习过程中遇到哪些问题?如何解决?有何心得体会?
4. 两种解法的计算程序(此页写不下时可以加页):
【二分法】
#include stdio.h
#include math.h
float getvalue(float x)
{
return x*x*x+2*x*x+10*x-20;
}
void main()
{
float a=0,b=2,c;
c=(a+b)/2;
while(fabs(getvalue(c))0.00001 fabs(a-b)0.00001){
if(getvalue(c)*getvalue(b)0) a=c;
if(getvalue(a)*getvalue(c)0) b=c;
c=(a+b)/2;
}
printf(%0.7f\n,c);
}
【牛顿迭代法】
#include stdio.h
#include math.h
main()
{float x,f,f1;
x=8; // x的初值可为任意值
do
{f=x*x*x+2*x*x+10*x-20; f1=3*x*x+4*x+10; x=x-f/f1;
}while(fabs(f)0.000001);
printf(x=%f,f=%f\n,x,f);
}
2014级硕士研究生数值分析上机实习 (第二次)
姓名: 学号: 学院:
实习题目:计算8阶三对角矩阵的行列式.
实习目的:掌握计算行列式的方法.
实习要求:首先选择一种算法,然后用C程序语言编程上机进行计算.
报告内容:
1. 简单描述所采用的算法:
2. 计算结果:
3. 实习过程中遇到哪些问题?如何解决?有何心得体会?
4. 写出C语言计算程序(此页写不下时可以加页):
#includestdio.h
#includemath.h
int main()
{
int n,i,j,k,m,l,SwarpNum=0;
double a[10][10],b,temp,result=1;
printf(输入行列式阶数:);
scanf(%d,n);
printf(输入各值:\n);
for(i=0;in;i++){
for(j=0;jn;j++)
scanf(%lf,a[i][j]);
}
for(k=0;kn-1;k++){
if(a[k][k]==0){
for(m=n-1;mk;m--){
if(a[m][k]!=0){
for(l=0;ln;l++){
temp=a[k][l];
a[k][l]=a[m][l];
a[m][l]=temp;
}
SwarpNum++;
break;
}
}
}
for(i=k+1;in;i++){
b=-a[i][k]/a[k][k];
for(j=k;jn;j++)
a[i][j]=a[k][j]*b+a[i][j];
}
printf(\n);
}
for(i=0;in;i++)
for(j=0;jn;j++){
if(i==j)
result*=a[i][j];
}
result=pow(-1,SwarpNum)*result;
printf(result=%f\n\n,result);
return 0;
}
2014级硕士研究生数值分析上机实习 (第三次)
姓名: 学号: 学院:
实习题目:分别用Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组
实习目的:感受两种迭代法的收敛速度.
实习要求:首先构造收敛的Jacobi迭代法和Gauss-Seidel迭代法,然后用C程序语言编程上机进行求解,初始值均取为0,精确到4位小数.
报告内容:
1. 写出收敛的Jacobi迭代法和Gauss-Seidel迭代法:
2. 将最后一次迭代次数 与
原创力文档

文档评论(0)