非线性方程的加速求根算法.doc_第1页
非线性方程的加速求根算法.doc_第2页
非线性方程的加速求根算法.doc_第3页
非线性方程的加速求根算法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1实验目的1) 通过创新算法加深对非线性方程求根方法的了解;2) 通过用C语言求解例题加强对编程语言的掌握。2 实验内容通过二分法寻找非线性方程的优化初始根,再用迭代法求解满足精度的解。将两种方法结合以加快对非线性方程组的求根速度。3实验步骤1) 判断根的存在性此步可利用作图法或其他基本方法进行求解。2) 利用二分法确定根的初始近似值给定区间a,b,并设与符号相反,取为根的容许误差,为的容许误差。令;如果,则输出c,结束;否则执行;如果,则令;否则令,重复 。3) 利用迭代法求非线性方程的精确解将方程化为一个同解的方程,给定一个初始值。代人右端可算得一个。再将代入右端,又可得。如此继续下去,会得到一个序列,其中,称为迭代序列,称为迭代函数。4例题解析及结果分析1)例题例题:说明方程在区间内有惟一根。,并选用适当的迭代法求 (精确至3位有效数)。解: ,故函数单调增加,因此,该方程在(1,2)间存在唯一的实根,取迭代函数,此时可以借用二分法选择较好的迭代初始值,初始根可较粗略,假设选择0.05,调用二分法后选择的结果是1.83,对于初值,运用迭代法求该非线性方程的满足精度根。其程序为:#include#include#include#define f(x) sqrt(4-log(x)#define e 0.0005void main()int i;double x1,x0;printf(Please input x0:n);scanf(%lf,&x0);for(i=1;i=1000;i+)x1=f(x0);printf(x%d=%-14.5fn,i,x1);if(fabs(x1-x0)e)break;elsex0=x1;printf(x=%-14.5lfn,x1);getch();结果为:由于I,此时只需要迭代3次就得到所要的结果,故将作为近似值,已精确到了3位有效数字。附二分法程序:#include#include#define f(x) sqrt(4-log(x)#define e 0.05#define MAX 500main()double a=1.0,b=2.0,m;for(int i=1;i=MAX;i+)m=(a+b)/2;if(f(a)*f(m)0)b=m;elsea=m;printf(第%d次 The root is %d=%fn,i,(a+b)/2);if(fabs(b-a)e)break;2)结果分析区间二分法收敛比较慢,在实际计算中,区间二分法常用来求比较好的含根区间和初始近

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论