《熟悉用二分法-迭代法-牛顿法和弦截法求解非线性方程.docx》由会员分享,可在线阅读,更多相关《熟悉用二分法-迭代法-牛顿法和弦截法求解非线性方程.docx(5页珍藏版)》请在课桌文档上搜索。
1、人荐例工大殍实验报告学院(系)名称:计算机与通信工程姓名赵云鹏学号20091931专业计算机科学与技术班级09-1实验工程实验一方程求根课程名称数值计算方法课程代码实验时间20H年5月26日实验地点#7-215批改意见:实验目的:熟悉用二分法,迭代法,牛顿法和弦截法求解非线性方程。实验环境:硬件环境:IBM-PC或兼容机成绩软件环境:WindOWS操作系统编程语言:C语言实验内容:1、用二分法求方程x2-l=0的正根,要求准确到小数点后第一位2用迭代法和牛顿法求解方程x=e-在x=0.5附近的一个根,要求精确到小数点后三位3用双点弦截法求方程x3+3x2-x-9=0在区间1,2内的一个实根,精
2、确到五位有效数字。教师签字:实验步骤:二分法I迭代法:牛顿法:双点弦截法:用二分法求方程x2*l=0的正根,要求准确到小数点后第一位includeinclude#defineADJST10.01#defineADJST20.001#defineEX0.000001#defineINF999999999.99doublefuncl(doublex)二分法求的方程return(x*-l);doublefunc2_l(doublex)迭代法的方程returnexp(-);doubleresl(doublea,doubleb,double(*funl)(doublex)二分法doublefa=funl
3、(a);doublefb=funl(b);doublefmid=funl(a+b)2);while(fabs(b-a)=ADJUSTl)if(fabs(fmid-Oa)EX)returnfmid;elseif(fmid*faO)(b=(a+b)2;fa=funl(a);fb=funl(b);fmid=funl(a+b)2);elseif(fmid*fbO)(a=(a+b)2;fa=funl(a);fb=funl(b);fmid=funl(a+b)2);)return(a+b)2;)intmain()(printf(,%.2fn,esl(0,100,fund);printf(,%.2func2-
4、l(-l);return0;)用迭代法和牛顿法求解方程x=e-x在x=05附近的一个根,要求精确到小数点后三位#includeinclude#defineADJST10.01#defineADJUST20.001#defineEX0.000001#defineINF999999999.99doublefunc2_l(doublex)迭代法的方程(returnexp(-);doubleres2(doublex,doublee,intredouble(*funMdOUbIeX)迭代法,迭代失败标志,输出Failb并返回INF(intk=l;double1;xl=fun(x);while(k!=n)
5、(if(fabs(xl-x)e)returnxl;x=xl;xl=fun(x);k+;if(k=n)printf(Fail!n);returnINF;intmain()(printf(%3n,res2(0.5,0.001z100,func2-l)q2.1printf(%.3n,func2-l(0.567)fortestreturnO;)用双点弦截法求方程x3+3x2-x-9=0在区间1,2内的一个实根,精确到五位有效数字#includeinclude#defineADJST10.01#defineADJST20.001#defineEX0.000001#defineINF999999999.9
6、9doubledfunc2_2(doublex)牛顿法方程导数(return(0-exp(-)-l);)doublefunc2_2(doublex)牛顿法方程(returnexp(-)-;)doubleres3(doublexO,doubleejntn,double(*fun)(doublex),double(*dfun)(doublex)牛顿迭代法,奇异标志为返回INF,失败标志为返回INF,并输出Fail!(intk=l;double1;if(fabs(dfun(xO)-O)EX)returnINF;xl=x-fun(x)dfun(x);while(k!=n)(if(fabs(xl-x)e)return1;0=l;xl=-fun(x)dfun(x);if(k=n)printf(Fail!n);returnINF;,0ujn;aj!(亿一。UnJPz-ZnunjooiioooGO陀Sarwud)()ueiui