计算数值方法实验报告__太原理工大学.doc

计算数值方法实验报告__太原理工大学.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算数值方法实验报告__太原理工大学

计算数值方法 实验报告 学院:计算机与软件学院 专业:计算机与科学技术 班级:计算机 学号:1111111111 姓名:某某 太原理工大学学生实验报告 学院名称 计算机科学与技术 专业班级 计算机 学号 1111111111 学生姓名 某某 实验日期 2011-6-13 成绩 课程名称 数值计算方法 实验题目 实验一 二分法 一、课题名称 方程求根:熟悉使用、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:二分法f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度|x*-xn|0.5×10-5 二、目的和意义 (1)了解非线性方程求根的常见方法,如二分法、牛顿法、割线法。 (2)加深对方程求根方法的认识,掌握算法。 (3)会进行误差分析,并能对不同方法进行比较。 三、计算公式 f(x)在区间(x,y)上连续   先找到a、b属于区间(x,y),使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f[(a+b)/2],   现在假设f(a)0,f(b)0,ab ①如果f[(a+b)/2]=0,该点就是零点,   如果f[(a+b)/2]0,则在区间((a+b)/2,b)内有零点,(a+b)/2=a,从①开始继续使用   中点函数值判断。   如果f[(a+b)/2]0,则在区间(a,(a+b)/2)内有零点,(a+b)/2=b,从①开始继续使用   中点函数值判断。   这样就可以不断接近零点。 通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值#include iostream #include cmath using namespace std; double f(double x) { return x*x*x + 4*x*x - 10; } int main() { double t1 = 1,t2 = 2; double t = (t1+t2)/2; while (fabs(f(t)) = 1.0/2/1000) { if(f(t1)*f(t)=0) { t2=t; t=(t1+t2)/2; } else if(f(t)*f(t2)=0) { t1=t; t=(t1+t2)/2; } } couttendl; return 1; } 结果: 五、结果讨论和分析 在编写这个程序的时候我感觉到了在编写的过程中的不易,在编写的过程中我改变初值然后运行,发现在初值的改变对运行时间的影响不大,结果没有影响。 在调试的过程中发现自己还是很粗心,容易犯很简单的错误。在今后的学习中应该做编写程序。 实验地点 综合楼六层606室 指导教师 王峥 学院名称 计算机科学与技术 专业班级 计算机 学号 1111111111 学生姓名 某某 实验日期 2011-6-13 成绩 课程名称 数值计算方法 实验题目 实验二 线性方程组的直接解法 一、课题名称 线性方程组的直接解法 合理利用Gauss消元法、LU分解法、追赶法求解下列方程组: ① ② ③ ④(n=5,10,100………)⑴将原方程组化为三角形方阵的方程组: lik=aik/akk aij= aij- lik* akj k=1,2,…,n-1 i=k+1,k+2, …,n j=k+1,k+2, …,n+1 ⑵由回代过程求得原方程组的解: xn= ann+1/ ann xk=( akn+1-∑akj xj)/ akk (k=n-1,n-2, …,2,1) 五、结构程序设计 #include stdio.h double a[15][15],a0[15][15]; double b[15],b0[15],l[15]; int n; void displayA() { printf(\n); for(int j=1;j=n;j++) { for(int i=1;i=n;i++) printf(a[%d][%d]=%f ,j,i,a[j][i]); printf(b[%d]=%f\n,j,b[j]); } for(int m=1;m=n;m++) printf(l[%d]=%f ,m,l[m]); printf(\n); } int main() { FILE *f; int i,j,k; f=fopen(Gaussdata2.txt,r); fscanf(f,%d,n); for(i=1;i=n;i++) {

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档