logo资料库

数值分析实验报告 数值分析实验报告.doc

第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
资料共27页,剩余部分请下载后查看
实验一
实验二
实验三
实验四
实验六
实验七
中南林业科技大学 中南林业科技大学 《数值分析》 实实 验验 报报 告告 册册 姓名: 学号: 专业: 计算机科学与技术 年级: 计算机科学学院 计算机应用教研室 2008 年 春季 学期
目目 录录 实验二………………………………………………………………1 实验二………………………………………………………………5 实验三………………………………………………………………9 实验四……………………………………………………………14 实验五……………………………………………………………16 实验六……………………………………………………………19 实验七……………………………………………………………23 第 II页
实验一 一、课题名称 非线性方程数值解法 二、目的和意义 1、通过实验进一步了解方程求根的算法; 2、认识选择计算格式的重要性; 3、掌握迭代算法和精度控制; 4、明确迭代收敛性于初值选取的关系。 二、问题的提出 设方程 f(x)= 3x -3x-1=0 有三个实根 * 1x =1.8793, x * 2 =-0.34727, x * 3 =-153209, 现采用下面六种不同计算格式,求 f(x)=0 的根 x * 1 或者 x * 2 1、x= 2、x= 3 1 x  2 x 13 x 3 3、x= 3 4、x= 5、x= 3  1 3 x 1 2 x 3 1 x 6、x=x- 1 ( 3 3 x  2 x 3 x  1  1 ) 计算公式 将方程 f(x)=0, 将它化为一个与它同解的方程 x=(x) 其中,(x)为 x 的连续函数,即如果数 x * 使 f(x * )=0,则也有 x * =( x * );反之,若 x * =( x * ), 则也有 f(x * )=0,称(x)为迭代函数。 任取一个初值 x 0 ,带入上述公式的右端,得到 第 1页
x 1= (x 0 ) 再利用递推公式 x 1k =(x k ),k=0,1,2, …… ,根据预先设定的精度>0,只要某个 k 满 足| x k - x 1k |<,然后结束计算并取 x *  x k 。 四、结构程序设计 #include #include #include float fa(float x); float dd(float a); main() { float x,x0; clrscr(); printf("input x0="); scanf("%f",&x0); x=dd(x0); printf("The root of f(x)=0 is x=%f \n",x); getch(); return(x); } float dd(float a) { float x,x0,e; int i,k,N,n=0; printf("input runtimeN="); scanf("%d",&N); printf("input e="); scanf("%f",&e); x0=a; printf("x0=%f\n",x0); for (i=1;i>0;i++) { x=fa(x0); printf("x(%d)=%f\n",i,x); n=n+1; if(fabs(x-x0)
} else { if(n
15 3 10 3 2 -0.347296 1.879385 -0.347296 1.879385 1.879385 迭 代 次 数 收 敛 数 如果收敛的话,分别带入 * 3 =-153209,精度精度 =0.000005,收敛的话收敛数和迭代次数如上表。在试验中还可以限制它的迭 代次数,没限制和限制的运行结果如下: 1x =1.8793, x * 2 =-0.34727, x * [指导教师批改意见] 第 4页
实验二 一、课题名称 解线性方程组的直接方法 二、目的和意义 1、通过该实验课程,体会模块化结构程序设计方法的优点; 2、运用所学的计算方法,解决各类线性方程组的直接算法; 3、提高分析和解决问题的能力; 4、通过对三角线性方程组的解法,体会稀疏线性方程组解法的特点。 二、问题的提出 -3 -1 2 -5 -3 6 -2 -1 2 5 -2 1 6 -1 -8 7 -1 3 给出以下线性方程组,用高斯顺序消去法求解。 2 4 6 8 3 4 -1 0 6 -4 2 1 8 6 0 -4 2 16 10 -11 -9 17 4 -7 13 0 0 0 0 0 1 3 4 9 3 2 5 -3 0 1 2 2 12 4 -1 3 1 5 2 3 7 7 2 34 9 -3 -24 0 0 1 0 0 -1 1 -1 3 -3 6 2 3 5 -1 2 0 2 -8 6 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 2 -1 8 6 0 = 5 12 3 2 3 46 13 38 19 -21 三、计算公式 ≠0,对 k=1,2,……,n-1 计算。 ) ( kk (1)消元过程: 设a k  m   ik   ( k a  ij  ( b  i )( k a ik )( k a kk )( k a  ij )( k b  i k  i , j )1  )1  k )( k am  ik kj )( k bm  ik k ,1 ,2 k  (2)回代过程: , n 第 5页
x n  )( n b n )( n a nn  )( i b i x i          i  n n j  )( i xa ij 1 j i  )( i a ii ,1 n  ,2 1, 四、结构程序设计 Gauss.dat 10 4 2 -3 -1 2 1 0 0 0 0 8 6 -5 -3 6 5 0 1 0 0 4 2 -2 -1 3 2 -1 0 3 1 0 -2 1 5 -1 3 -1 1 9 4 -4 2 6 -1 6 7 -3 3 2 3 8 6 -8 5 7 17 2 6 -3 5 0 2 -1 3 -4 2 5 3 0 1 16 10 -11 -9 17 34 2 -1 2 2 4 6 2 -7 13 9 2 0 12 4 0 0 -1 8 -3 -24 -8 6 3 -1 Gauss.c #include main() { FILE *f; double a[15][15]; double b[15]; float r,s; double x[15]; int i,j,k,n; f=fopen("gauss.dat","r"); fscanf(f,"%d",&n); for(i=0;i
分享到:
收藏