logo资料库

数值分析中的各种公式的c代码(太长,详细见资源描述).doc

第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
资料共32页,剩余部分请下载后查看
二分法
2.2 算法步骤
2.3 程序流程图
3 实验结果分析
2.2 算法步骤
2.3 程序流程图
3 实验结果分析
二分法 2.2 算法步骤 步骤 1: 准备 计算 f(x)在有根区间[a,b]端点处的值 f(a),f(b). 步骤 2: 二分 计算 f(x)在区间中点 (a+b)/2 处的值 f((a+b)/2). 步骤 3: 判断 若 f((a+b)/2)=0,则(a+b)/2 即是根,计算过程结束,否则检验; 若 f((a+b)/2)f(a)<0,则以(a+b)/2 代替 b,否则以(a+b)/2 代替 a. 反复执行步骤 2 和步骤 3,直到区间[a,b]的长度小于允许误差 e,此时中点(a+b)/2 即为所 求近似根。 2.3 程序流程图
开始 a,b,e k=0 x0=(a+b)/2 f (a)f(x0)=c N Y c<0 Y c=0 x0=b 输出 x0,k x0=b STOP N k+1=k b-a<=e Y 输出 x0,k STOP
3 实验结果分析 #include"stdio.h" void main() { float a,b,e,x,c; int k=0,n=1; scanf("%f,%f,%f",&a,&b,&e); while(n==1) { x=(a+b)/2;c=(x*x*x-x-1)*(a*a*a-a-1); if(c<0) { b=x; if(b-a<=e) { printf("%f,%d\n",x,k); break;} else k++;} else
{ if(c==0) { printf("%f,%d\n",x,k); break;} else { a=x; if(b-a<=e) { printf("%f,%d\n",x,k); break;} else k++; }}}} 高斯塞德尔迭代法求方程组解 高斯主元素消去法求方程组解 2.2 算法步骤 高斯塞德尔迭代法: 步骤 1:给定初值 )0( x 1 , x )0( 2 ,..., )0( nx 1 ,精度,最大容许迭代次数 M,令 k=1。 x )1( i  ( x )1( i  xa ij )0( j ). a ii n  1  0  j j )0( i 步骤 2:对 i=1,2,…,n 依此计算 x e i x  )1( i )1( x i  x  )0( i 步骤 3:求出 e= }{max1 e i ni  ,若 e<,则输出 )0( ix (i=1,2,..,n ),停止计算。否则执行步 步骤 4:若 k
步骤 3:如果 kika , =0,则 det  0,计算停止。 步骤 4:若 ik  ,转步骤 5,否则换行: k a kj  a ik (,, j j  , kk  ,...1 ), bn k  b ik , det  det 步骤 5:计算乘数 ikm , a ik  m ik a ik / a kk (i=k_1,…,n) a ij b i 步骤 6:消元计算 步骤 7:det kka det; ama  ij ik kj (, ibmb  i ik i ,(, i j k  k  ,...,1 n ) ,...,1 ) n 步骤 8:若 nna ,0  det 0 计算停止。否则 det nna det b n  / ab n nn  a ( ij 步骤 9:回代求解 b i 2.3 程序流程图 n  ) aba ij 1 i  j j (i=n-1,…,1) ii
高斯塞德尔迭代法: 开始 输 入 ija , ib , ix 及 k=1,M,1 0->e i=1,n,1 ( b i i 1   j 1  xa ij j  n  xa ij 1 i  j /) a ij j  , xx i i  t y xi  t e xi  t e i e< k y n 输 出 迭 代 失 败 结束 输出 , 2 xx 1 ,..., nx
高斯主元素消去法: 开始 输入系数矩阵 A 常数项 b 及 det<-1 k=1,n-1,1 调选列主元子程序 i=k+1,n,1 a ik  a ij a ik / a kk j=k+1,n,1 a ik  a ij a ik / a kj j b i  b i ba ik k i det kka det k ① 消 元 过 程
① b n / ab n m i=n-1,1,-1 S<-0 j=i+1,n,1 s  s ijba j j ib ( ib -s)/ ija i det nna det 输出 b 及 det 结束 3 实验结果分析 高斯塞德尔迭代法: 回 代 过 程
分享到:
收藏