您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 迭代初值及公式对迭代收敛速度影响
本科生课程设计报告实习课程数值分析学院名称管理科学学院专业名称学生姓名学生学号指导教师实验地点实验成绩二〇一六年六月填写说明1、专业名称填写为专业全称,有专业方向的用小括号标明;2、格式要求:格式要求:①用A4纸双面打印(封面双面打印)或在A4大小纸上用蓝黑色水笔书写。②打印排版:正文用宋体小四号,1.5倍行距,页边距采取默认形式(上下2.54cm,左右2.54cm,页眉1.5cm,页脚1.75cm)。字符间距为默认值(缩放100%,间距:标准);页码用小五号字底端居中。③具体要求:题目(二号黑体居中);摘要(“摘要”二字用小二号黑体居中,隔行书写摘要的文字部分,小4号宋体);关键词(隔行顶格书写“关键词”三字,提炼3-5个关键词,用分号隔开,小4号黑体);正文部分采用三级标题;第1章××(小二号黑体居中,段前0.5行)1.1×××××小三号黑体×××××(段前、段后0.5行)1.1.1小四号黑体(段前、段后0.5行)参考文献(黑体小二号居中,段前0.5行),参考文献用五号宋体,参照《参考文献著录规则(GB/T7714-2005)》。迭代初值及公式对迭代收敛速度影响摘要迭代收敛速度受到迭代函数和初始迭代值的影响。本实验在于体会在非线性方程求根的迭代法中,迭代函数和初始迭代值的选取对迭代收敛性的影响,sttefensen加速的效果,并试图总结一些规律。关键词:sttenfensen加速;迭代初值;收敛速度1目录第1章前言..............................................................11.1内容及要求....................................................................................................................................11.2研究思路及结构安排.....................................................................................................................1第2章相关理论知识.......................................................22.1迭代法............................................................................................................................................22.2迭代收敛........................................................................................................................................2第3章算法分析...........................................................33.1单一迭代算法步骤及流程图.........................................................................................................3第4章算法实现...........................................................44.1程序总体结构.................................................................................................................................44.2源程序清单....................................................................................................................................54.3程序运行.......................................................................................................................................11第5章结果分析..........................................................14参考文献.................................................................141第1章前言1.1内容及要求体会在非线性方程求根的迭代法中,迭代函数和初始迭代值的选取对迭代收敛性的影响。考虑一个简单的代数方程324100xx,针对这个方程,可以构造多种迭代法,如下列几种迭代格式:①321410nnnnxxxx;②13211(10)2nnxx;③121104nxx;④321241038nnnnnnxxxxxx。要求:(1)取定某个初始值x0,按如上四种迭代格式进行计算,它们的收敛性如何?重复选取不同的初始值,反复实验,分析四种迭代法的收敛性与初值选取的关系。(2)选取第④种迭代格式(Newton迭代法),取不同的初始值进行迭代,结果如何?并分析迭代法对不同的初值是否有差异。(3)对上述四种迭代格式,编制Steffensen迭代程序,选取不同的初始值,输出迭代次数和方程的根,并与(1)、(2)中的结果进行比较。1.2研究思路及结构安排按照题目要求分别编写公式1-4以及他们的steffensen加速公式。在每一次的计算中,通过输入不同的迭代初值,然后进行8个公式的的计算,最后得到每个公式在此迭代初值条件下的表现(得到满足精度要求的近似解的迭代次数)。并且,程序运行过程中通过文件读写将每一次的每个公式的迭代次数都写入到“data.txt”中,对比一目了然。通过对迭代次数的对比分析可以得到较为清晰的结论。2第2章相关理论知识2.1迭代法迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0;(2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0;(3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。2.2迭代收敛具体使用迭代法求根时应注意以下两种可能发生的情况:(1)如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制;(2)方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败3第3章算法分析3.1单一迭代算法步骤及流程图x2=x0;x1=0;b=0;fabs(x1-x2)N?是b++;x1=x2;x2=-pow(x1,3)-4*pow(x1,2)+x1+10;开始结束4第4章算法实现4.1程序总体结构开始inta=0,b=0;doublex0=0,x1=0,x2=0,x3=0,x4=0;scanf(%d,&a);a=2?scanf(%lf,&x0);否printf(计算完毕\n);结束x2=x0;x1=0;b=0;fabs(x1-x2)N?是b++;x1=x2;x2=-pow(x1,3)-4*pow(x1,2)+x1+10;否其他七个公式的相似结构54.2源程序清单#includestdio.h#includemath.h#defineN0.0001voidmain(){inta=0,b=0;//a为选择项,b为计数器doublex0=0,x1=0,x2=0,x3=0,x4=0;FILE*fp,*fq;fp=fopen(data.txt,w);fq=fopen(strenge.txt,w);fprintf(fp,序号初值式一式二式三式四式一+式二+式三+式四+\n);printf(此程序为验证不同的迭代函数和初值对迭代收敛速度的影响而设计\n);printf(以方程x^3+4x^2-10=0为例\n);printf(请选择:\n1.输入初值进行计算2.退出\n);scanf(%d,&a);if(a!=1&&a!=2){printf(错误,没有该选项,请重新选择\n);scanf(%d,&a);}6inti=1;while(a!=2){printf(请输入迭代初值\n);scanf(%lf,&x0);fprintf(fp,%d,i);fprintf(fp,%.2f,x0);printf(进行计算\n);x2=x0;//公式一迭代x1=0;b=0;while(fabs(x1-x2)N){b++;x1=x2;x2=-pow(x1,3)-4*pow(x1,2)+x1+10;}fprintf(fp,%.2f,b);printf(经过迭代公式一%d次迭代得到近似解%6.5f\n,b,x2);x2=x0;//公式二迭代x1=0;b=0;while(fabs(x1-x2)N){b++;7x1=x2;x2=0.5*pow((10-x1*x1*x1),0.5);}fprintf(fp,%d,b);printf(经过迭代公式二%d次迭代得到近似解%6.3f\n,b,x2);x1=x0;//公式三迭代x1=0;b=0;while(fabs(x1-x2)N){b++;x1=x2;x2=pow(10/(4+x1),0.5);}fprintf(fp,%d,b);printf(经过迭代公式三%d次迭代得到近似解%6.3f\n,b,x2);x2=x0;//公式四迭代x1=0;b=0;while(fabs(x1-x2)N){b++;x1=x2;x2=x1-((x1*x1*x1+4*x1*x1-10)/(3*x1*x1+8*x1));}8fprintf(fp,%d,b);printf(经过迭代公式四%d次迭代得到近似解%6.3f\n,b,x2);x4=x0;//公式一迭代stffensen加速x1=0;b=0;while(fabs(x1-x4)N){b++;x1=x4;x2=-pow(x1,3)-4*pow(x1,2)+x1+10;x3=-pow(x2,3)-4*pow(x2,2)+x2+10;x4=x1-(pow(x2-x1,2)/(x3-2*x2+x1));printf(经过迭代公式一stffensen加速%d次迭代得到近似解%6.3f\n,b,x4);fprintf(fq,%d%.3f\n,b,x4);}fprintf(fp,%d,b);printf(经过迭代公式一stffensen加速%d次迭代得到近似解%6.3f\n,b,x4);x4=x0;//公式二迭代stffensen加速x1=0;b=0;while(fabs(x1-x4)N){9b++;x1=x4;x2=0.5*pow((10-x1*x1*x1),0.5);x3=0.5*pow((10-x2*x2*x2),0.5);x4=x1-(pow(x2-x1,2)/(x3-2*x2+x1));}fprintf(fp,%d,b);printf(经过迭代公式二stffensen加速%d次迭代得到近似解%6.3f\n,b,x4);x4=x0;//公式三迭代stffens
本文标题:迭代初值及公式对迭代收敛速度影响
链接地址:https://www.777doc.com/doc-2003668 .html