网站大量收购独家精品文档,联系QQ:2885784924

太原理工大学数值实验报告[精品].doc

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

(实验报告的首页) 本科实验报告 课程名称: 计算机数值方法 实验项目: 方程求根、解方程、迭代求解、插值、拟合 实验地点: 逸夫302 专业班级: 学号: 学生姓名: 指导教师: 李志 2013年 04 月 23 日 学生姓名 实验成绩 实验名称 实验一 方程求根 实验目的和要求(必填) (1) 培养理论联系实际的思路,训练综合运用已经学过的理论和实际知识去分析和解决实际问题的能力。 (2) 帮助学生全面消化已学的相关课程内容,深刻理解计算数值方法课程的内涵,培养使用电子计算机进行科学计算和解决问题的能力。 (3) 进行基本技能训练和巩固。使学生得到选择算法、编写程序、分析数值结果、写数值试验报告、课堂讨论等环节的综合训练。 实验内容和原理(必填) 内容:熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。 原理:增值法基本思想是,从初始值x0开始,按规定的一个初始步长h来增值。Xn+1=Xn+h( n=0,1,2,……).在增值的计算过程中可能遇到三种情形: ?(Xn+1)=0,此时Xn+1即为方程的根x*. ?( Xn )和?(Xn+1)同符号,这说明区间[Xn,Xn+1]内无根。 ?(Xn)和?(Xn+1)异号,即有?(Xn)* ?(Xn+1)0 此时,当? (x)在区间[Xn,Xn+1]上连续时,方程?(x)=0在[Xn,Xn+1]一定有根。 二分法:设?(x)在区间[a,b]上连续,且?(a)*?(b)0,则由连续函数性质可知,方程?(x)=0在(a,b)内至少有一实根。 主要仪器设备 笔记本计算机 实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页) Y //二分法方程求根 #include stdafx.h #include iostream #include math.h using namespace std; class equation { public: equation(); double bsolve(); double value(double ); private: double var[10],cof[10]; int k; double low,high,mid,bor; }; /*构造函数,即输入方程,x,y,bor*/ equation::equation() { int i; coutplease input the equation number:endl; cink; coutPlease input the var and cof: endl; for(i=0;ik;i++) { cout[; cinvar[i]; cout]; coutx^; cout[; cincof[i]; cout] + ; } coutPlease input the low and high vaulty: endl; coutthe low: ; cinlow; coutthe high: ; cinhigh; coutPlease input the border vaulty: endl; cinbor; } /*二分求解过程*/ double equation::bsolve() { double a=0,b=0,c=0; do { a=value(low); //求出a 的值 b=value(high); //求出b 的值 mid=(low+high)/2; //求中间值 c=value(mid); if(c==0) //若c=0则输出mid return mid; if(c*b0) a=c; else b=c; }while(b-aborb-a-bor);//当所求的x在要求精度范围内时输出x return mid; }; /*求出f(x)的值*/ double equation::value(double x) { int i; double y=0; for(i=0;ik;i++) { y+=var[i]*pow(x,cof[i]); //即f(x)=a[0]*x^[n]+…… } return y; }; void main() { equatio

文档评论(0)

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

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

1亿VIP精品文档

相关文档