欢迎来到天天文库
浏览记录
ID:58295315
大小:319.06 KB
页数:11页
时间:2020-04-29
《C 语言程序设计.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、常熟理工学院课程设计(报告)计算机课程设计报告题目C语言程序设计系别物理与电子工程学院年级二年级专业光电信息班级光电101学号050310129学生姓名张强指导教师徐健职称讲师设计时间2012.6.24~7.241常熟理工学院课程设计(报告)目录一题目要求……………………………………………………………………….2二总体设计…………………………………………………………………………3三数据结构设计……………………………………………………………4四运行结果…………………………………………………………………7五体会……………
2、…………………………………………………………7六参考文献………………………………………………………………………8七成绩评定………………………………………………………………………2常熟理工学院课程设计(报告)一题目要求编制程序,用牛顿迭代法求解方程x^3-x^2-1=0的一个实根。要求:设计算法,分析求解精度。二总体设计牛顿迭代法是一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x
3、)=0的根。牛顿迭代法是求方程根的重要方法之一。本题主要是求非线性方程的根,而解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数f(x)=f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2!+…取其线性部分,作为非线性方程f(x)=0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)=0设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0)这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/
4、f'(x(n))。利用迭代算法解决问题,需要做好以下三个方面的工作:确定迭代变量、建立迭代关系式和对迭代过程进行控制。开始Y输入x0,dj,maxcycfunc1(xN0)==0.0x1=x0-func(x0无根)/func1(x0)fabs(x1-x0)5、6、fabs(func(x1))x=1Y#include#includedoublefunc(doublex){returnx*x*x7、-x*x-1.0;//函数}doublefunc1(doublex)//导函数{return3*x*x-2*x;}intNewton(double*x,doublejd,intmaxcyc)迭代次数{doublex1,x0;4常熟理工学院课程设计(报告)intk;x0=*x;for(k=0;k8、行牛顿迭代计算if(fabs(x1-x0)9、10、fabs(func(x1))11、f",&x);printf("inputthemaxtimes:");scanf("%d",&maxcyc);printf("inputthejd:");scanf("%lf",&jd);if(Newton(&x,jd,maxcyc)==1)若函数返回值为1printf("approximatesolution:%lf",x);else//若函数返回值为0printf("die_daiisfailure");getch();return0;}6常熟理工学院课程设计(报告)四运行结果7常熟理工学院课程设计(报告12、)五体会忙碌了一个多星期,在大家的共同帮助下,我总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎
5、
6、fabs(func(x1))x=1Y#include#includedoublefunc(doublex){returnx*x*x
7、-x*x-1.0;//函数}doublefunc1(doublex)//导函数{return3*x*x-2*x;}intNewton(double*x,doublejd,intmaxcyc)迭代次数{doublex1,x0;4常熟理工学院课程设计(报告)intk;x0=*x;for(k=0;k8、行牛顿迭代计算if(fabs(x1-x0)9、10、fabs(func(x1))11、f",&x);printf("inputthemaxtimes:");scanf("%d",&maxcyc);printf("inputthejd:");scanf("%lf",&jd);if(Newton(&x,jd,maxcyc)==1)若函数返回值为1printf("approximatesolution:%lf",x);else//若函数返回值为0printf("die_daiisfailure");getch();return0;}6常熟理工学院课程设计(报告)四运行结果7常熟理工学院课程设计(报告12、)五体会忙碌了一个多星期,在大家的共同帮助下,我总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎
8、行牛顿迭代计算if(fabs(x1-x0)9、10、fabs(func(x1))11、f",&x);printf("inputthemaxtimes:");scanf("%d",&maxcyc);printf("inputthejd:");scanf("%lf",&jd);if(Newton(&x,jd,maxcyc)==1)若函数返回值为1printf("approximatesolution:%lf",x);else//若函数返回值为0printf("die_daiisfailure");getch();return0;}6常熟理工学院课程设计(报告)四运行结果7常熟理工学院课程设计(报告12、)五体会忙碌了一个多星期,在大家的共同帮助下,我总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎
9、
10、fabs(func(x1))11、f",&x);printf("inputthemaxtimes:");scanf("%d",&maxcyc);printf("inputthejd:");scanf("%lf",&jd);if(Newton(&x,jd,maxcyc)==1)若函数返回值为1printf("approximatesolution:%lf",x);else//若函数返回值为0printf("die_daiisfailure");getch();return0;}6常熟理工学院课程设计(报告)四运行结果7常熟理工学院课程设计(报告12、)五体会忙碌了一个多星期,在大家的共同帮助下,我总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎
11、f",&x);printf("inputthemaxtimes:");scanf("%d",&maxcyc);printf("inputthejd:");scanf("%lf",&jd);if(Newton(&x,jd,maxcyc)==1)若函数返回值为1printf("approximatesolution:%lf",x);else//若函数返回值为0printf("die_daiisfailure");getch();return0;}6常熟理工学院课程设计(报告)四运行结果7常熟理工学院课程设计(报告
12、)五体会忙碌了一个多星期,在大家的共同帮助下,我总算将此程序设计出来。尽管不是自己独立完成,但仍然很高兴,因为在设计的过程中,让我了解到要设计一个大型程序,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程艰辛,但只要你持之以恒,成功指日可待。另外平时扎实的基础也很关键,因为如果你平时学得就不怎
此文档下载收益归作者所有