首页 计算机实习任务报告

计算机实习任务报告

举报
开通vip

计算机实习任务报告计算机实习任务报告 C语言编程计算实习报告 学号: 姓名: 班级: 专业: 2011年12月23 一、实习目的 通过16学时的计算机实习(C语言编程计算),掌握一种技能。 二、实习课题 31、用牛顿迭代法求在附近的实根,取四位有f(x),x,3x,1,0x,20 效数字。 、用高斯消去法求解下述线性方程组: 2 2x,x,x,4123 3x,4x,2x,11123 3x,2x,4x,11123 三、算法分析 ?、牛顿迭代法 设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f...

计算机实习任务报告
计算机实习任务报告 C语言编程计算实习报告 学号: 姓名: 班级: 专业: 2011年12月23 一、实习目的 通过16学时的计算机实习(C语言编程计算),掌握一种技能。 二、实习课 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 31、用牛顿迭代法求在附近的实根,取四位有f(x),x,3x,1,0x,20 效数字。 、用高斯消去法求解下述线性方程组: 2 2x,x,x,4123 3x,4x,2x,11123 3x,2x,4x,11123 三、算法分析 ?、牛顿迭代法 设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))作曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))作曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n),f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。 在程序中利用该迭代公式采用控制循环迭代次数得出方程的解。 ?、高斯消去法 消元过程如下: 1.定出每列的最后一个非0的数,将每行的数字除以该数,使得每行的第一 个数成为1; 2.将每行的数字减去第一行的第一个数的某个倍数。 重复上述两个步骤直至增广矩阵变成一个行梯阵式,再用代入法就可以求得这个方程组的解。 在程序中用一维数组分别存储系数矩阵,常数项矩阵。 3高斯消元法的算法复杂度是O(n);这就是说,如果系数矩阵的是n × n, 3那么高斯消元法所需要的计算量大约与n成比例。对于较大的线性方程组,一般不会直接使用高斯消去法,而采用相应的迭代加速法。 四、程序流程图 牛顿迭代法: 开始 输入&x0,maxcyc,precision 0=>k Y k>maxcyc或 f’(x0)=0? 输出“迭代失败” N x0-f(x0)/f’(x0)=>x1 结束 输出根x1 Y |x1-x0| x0,k+1=>k 高斯消元法: 开始 3=>n,&pA,&pB,0=>k pA[k*n+k]=>akk Y pB[n-1]/pA[(n-1)*n+(n-1)]=> pX[n-1] akk=0? n-2=>k N pB[k]=>temp,k+1=>j k+1=>i,j temp-(pA[k* n + j] * pX[j])=> temp pA[i*n+k]/akk=>mik j+1=>j pA[i * n + j]=> temp Y temp – mik * pA[k * n + j]=> pA[i * n + j] j temp N j+1=>j temp / pA[k * n + k]=> pX[k] Y k-1=>k j=0? temp - mik * pB[k]=> pB[i] 0=>pA[i * n + k] N i+1=>i 输出根&pX Y ik Y N k < n-1 五、程序运行结果截图 牛顿迭代法结果: 高斯消去法结果: 附:(源程序) 牛顿迭代法源程序Newton.cpp: #include #include double func (double x) { // 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数f(x)=x^3-3*x-1 return x*x*x-3*x-1; } double func1(double x) { //导函数f'(x)=3*x^2-3 return 3*x*x-3.0; } int Newton(double *x,double precision,int macyc) { double x1,x0; int k; x0=*x; for (k=0;k void GuassCommon(double *pA, double *pB, double *pX, int n) { double akk, mik, temp; int k, i, j; for (k = 0; k < n - 1; k++) //化成行阶梯形 { akk = pA[k * n + k]; if (akk < 0.00001 && akk > -0.00001) { printf("\nError: a[k, k] = 0\n"); break; } for (i = k + 1 ; i < n; i++) { mik = pA[i * n + k] / akk; for (j = k + 1; j < n; j++) { temp = pA[i * n + j]; pA[i * n + j] = temp - mik * pA[k * n + j]; temp = pB[i]; } pB[i] = temp - mik * pB[k]; pA[i * n + k] = 0; } } pX[n - 1] = pB[n - 1] / pA[(n - 1) * n + (n - 1)]; for (k = n - 2; k >= 0; k--) //求根 { temp = pB[k]; for (j = k + 1; j < n; j++) { temp =temp- (pA[k * n + j] * pX[j]); } pX[k] = temp / pA[k * n + k]; } } int main() { int i, n; double X[3]; //根矩阵 n = 3; //一个方程的系数个数 double A2[] = { //系数矩阵 2, -1, -1, 3, 4, -2, 3, -2, 4, }; double B1[] = { 4, 11, 11, }; GuassCommon(A2, B1, X, n); for (i = 0; i < n; i++) { printf("X%d = %f\n", i + 1, X[i]); //输出根 } return 0; }
本文档为【计算机实习任务报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_153723
暂无简介~
格式:doc
大小:46KB
软件:Word
页数:8
分类:互联网
上传时间:2017-09-15
浏览量:358