版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE郑州轻工业学院《数值分析》课程设计报告题目:非线性方程求解姓名:赵尉尉院(系):数学与信息科学系专业班级:信科10-01学号:541010010155指导教师:汪远征时间:2013年1月07日至2013年1月14日II摘要本文运用C语言分别编制了用一般迭代法、牛顿法、弦截法求解方程的计算机程序,该程序可以控制运算精度,并可以计算任意一元3次函数。成功运行并计算出了符合要求的计算结果,并就计算结果分析它们的特点。目录摘要 I目录 II1理论基础 1简单迭代法 1牛顿法 1弦截法 22 算法分析 32.1功能分析 32.2算法分析 3简单迭代法 3牛顿法 4弦截法 43程序设计 53.1选单和主窗口设计 5输入精度及函数的界面 5主选择界面 5主选择界面代码 53.2模块设计 6程序源代码 64总结 105参考文献 11PAGE111理论基础简单迭代法:首先将方程化为一个与他同解的方程 (1)其中为x的连续函数。即如果数使,则也有;反之,若,则也有.任取一个初始值,代入(1)的右端,得到,将代入(1)右端得,以此类推,得到一个数列其一般表示形式为 (2)(2)式即为求解非线性方程的简单迭代法,称为迭代函数,称为第k步的迭代值或简称迭代值。如果由迭代格式产生的数列收敛于,则就是方程(1)的根,既有牛顿法:用迭代法解非线性方程时,不管非线性方程的形式如何,总可以构造作为方程求解的迭代函数。因为而且在根附近越小,其局部收敛速度越快,故可令若(即不是的重根),则故可取,带入,可得.设方程的根为,且,则迭代法至少是平方收敛,并称为Newton迭代法。弦截法:由于Newton法带有的导数,使用起来不太方便。为了不求导数,可用导数的近似式代替。因为将它代入中,得上式即为弦截法。算法分析2.1功能分析本文运用C语言分别编制了用一般迭代法、牛顿法、弦截法求解方程的计算机程序,该程序可以控制运算精度,并可以计算任意一元3次函数。最后能够成功运行并计算出了符合要求的计算结果。2.2算法分析简单迭代法:初始值初始值输出结果NY牛顿法:初始值初始值输出结果NY弦截法:初始值初始值输出结果NY3程序设计3.1选单和主窗口设计输入精度及函数的界面:主选择界面:主选择界面代码:/*主界面*/ printf("============================\n"); printf("===请选择运算方法===\n"); printf("===1.简单迭代法===\n"); printf("===2.牛顿法===\n"); printf("===3.弦截法===\n"); printf("============================\n");3.2模块设计程序源代码:#include"stdio.h"#include"math.h"#include"windows.h"doublee; //精度doublex0,x1,x2;doublea,b,c,d; //函数ax^3+bx^2+cx+d=0intcount=1;doublef(doublex) //函数f(x){ return(a*x*x*x+b*x*x+c*x+d); }doublefd(doublex) //函数f(x)的微分{ return(3*a*x*x+2*b*x+c); }doublejddd(doublex) //简单迭代法{ x=(-b*x*x-c*x-d)/a; returnpow(x,1.0/3);}intfsimple(){ /* *简单迭代法算法 *调用函数jddd() */ printf("简单迭代法\n请输入一个初值x0:\n"); scanf("%lf",&x0); x1=jddd(x0); //简单迭代的等价迭代式 while((x1-x0)>e||(x0-x1)>e) { count+=1; x0=x1; x1=jddd(x0); } printf("方程的根为:%f",x1); printf("迭代的次数为:%d\n",count); return0;}intfnewt(){ /* *牛顿法算法 *调用函数f()及fd() */ count=1; printf("牛顿法\n请输入一个初值x0:\n"); scanf("%lf",&x0); x1=x0-f(x0)/fd(x0); //牛顿迭代式 while((x1-x0)>e||(x0-x1)>e) { count+=1; x0=x1; x1=x0-f(x0)/fd(x0); } printf("方程的根为:%f",x1); printf("迭代的次数为:%d\n",count); return0;}intfcut(){ /* *弦截法算法 *调用函数f() */ count=1; printf("弦截法\n请输入两个初值x0,x1:(用逗号隔开)\n"); scanf("%lf,%lf",&x0,&x1); x2=x1-(x1-x0)*f(x1)/(f(x1)-f(x0)); //弦截法迭代式 while((x1-x0)>e||(x0-x1)>e) { count+=1; x0=x1; x1=x2; x2=x1-(x1-x0)*f(x1)/(f(x1)-f(x0)); } printf("方程的根为:%f",x2); printf("迭代的次数为:%d\n",count); return0;}intmain(){ intoperat=0; /*输入函数及精度要求*/ printf("===请输入函数及精度要求===\n"); printf("输入精度:(如0.00001)\n"); scanf("%lf",&e); printf("输入函数ax^3+bx^2+cx+d=0的系数a,b,c,d:(如2,0,-1,-1)\n"); scanf("%lf,%lf,%lf,%lf",&a,&b,&c,&d); system("cls"); while(1) { /*主界面*/ printf("============================\n"); printf("===请选择运算方法===\n"); printf("===1.简单迭代法===\n"); printf("===2.牛顿法===\n"); printf("===3.弦截法===\n"); printf("============================\n"); reinput: scanf("%d",&operat); /*判断操作*/ switch(operat) { case1: fsimple(); break; //简单迭代法 case2: fnewt(); break; //牛顿法 case3: fcut(); break; //弦截法 default: //参数有误 printf("输入的参数有误!请从新输入:"); gotoreinput; } printf("按任意键继续……"); getchar(); getchar(); system("cls"); } retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新疆铁门关市优牧草业有限公司招聘23人备考题库含答案详解(培优)
- 浙江国企招聘-2025温州市城市建设发展集团有限公司面向社会招聘工作人员21人备考题库含答案详解(研优卷)
- 2025都邦财产保险股份有限公司兴安盟中心支公司招聘8人备考题库附答案详解(综合题)
- 中国铁路人才招聘网2026招聘备考题库及答案详解(易错题)
- 9 犟龟 公开课一等奖创新教案
- 钱塘社工面试题库及答案
- (完整)建筑工程中级职称考试《专业基础知识》试题库及答案
- 平阴社工面试题库及答案
- 宁安市事业编面试题目及答案
- 南充市公务员面试题型及答案
- 视频监控系统运维服务投标方案
- 高考语文复习议论文主体段落“五层结构法”写作指导课件
- 2025内蒙古民族幼儿师范高等专科学校辅导员考试题库
- 教育机构授权委托书范文
- 《室内照明的特点》课件
- 景区保洁员培训
- 2024年加氢站技术规范
- 大学生职业生涯规划与就业指导知到智慧树章节测试课后答案2024年秋南昌大学
- 小儿气管异物的急救与护理-课件
- 《义务教育数学课程标准(2022年版)》初中内容解读
- “中华老字号”申报书
评论
0/150
提交评论