




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年大学统计学期末考试:统计学数据可视化方法与试题
- 2025年教师资格证面试结构化试题与备考试卷
- 2025年医保知识考试题库:医保信息化平台操作数据分析试题
- 2025年乡村医生农村急救技能操作考试题库:案例分析题解析
- 2025年电工中级职业技能考试真题模拟卷(电力系统调度与通信创新优化技术)
- 2025年中学教师资格考试《综合素质》教学反思与模拟试题库(含答案解析)
- 难忘的生日派对写人记事6篇范文
- 小学二年级书法教育教学计划范例
- 标准化市场调研与分析模板
- 辽宁省中考试卷语文试题详解
- 2024年南昌市公安局东湖分局招聘警务辅助人员考试真题
- 4.1 认识厘米 课件 人教版数学二年级上册
- 人身意外险理赔细则手册
- 高三试卷:2025届浙江省新阵地联盟高三10月联考历史试题
- 2025公务员考试时事政治题库(含答案)
- 2025年度云南省成人高考专升本《教育理论》高频考题库汇编及答案
- 保温人员安全培训课件
- 本科教学审核评估汇报
- 《直线方程的两点式》教学设计
- 01 华为采购管理架构(20P)
- 望洞庭教学课件
评论
0/150
提交评论