一、问题描述:
二、设计思路:
1,在1附件任意取一个实数作为x1的初值,例如取x=1.5
(资料图)
2,把x=1.5带入方程,算出f函数和f函数的导数fd的值
3,利用公式h=f/fd 求出增量
4,用牛顿迭代公式计算下一个x的值 x=x1-h
5,用新产生的x替换调原来的x1,为下一次迭代做好准备
6,如果|x-x1|>=1e-5,则返回第3步,否则转到第7步
7,所求x就是方程的根,直接输出
三、程序流程图:
四、代码实现:
#include#include int main(){ float a,b,c,d;//定义四个系数 float x;//x代表求的的方程根 float solution(float a,float b,float c,float d); scanf("%f%f%f%f",&a,&b,&c,&d); x=solution(a,b,c,d);//传参a,b,c,d进函数 printf("所求方程的根为x=%f",x); return 0;}float solution(float a,float b,float c,float d) { float x1,x=1.5,f,fd,h;//先取一个x的值来带入 while(fabs(x-x1)>=1e-5) { x1=x;//用所求得的x代替x1原来的值,用新产生的x替换原来的x1,为下一次迭代做准备 f=a*x1*x1*x1+b*x1*x1+c*x1+d;//代表f函数的值 fd=3*a*x1*x1+2*b*x+c;//代表f函数求导后的值 h=f/fd;//计算增量 x=x1-h;//牛顿迭代公式 } return x; }
五、总结:
编写程序时要注意的一点是判定|x-xo|>=1e-5,许多初学者认为判定条件应该是|x-xo|<1e-5,从牛顿迭代法的原理可以看出,迭代的实质就是越来越接近方程根的精确值,最初给x所赋初值与根的精确值是相差很多了,正是因为这个我们才需要不断地进行迭代,也就是程序中循环体的功能。在经过一番迭代之后所求得的值之间的差别也越来越小,直到求得的某两个值的差的绝对值在某个范围之内时,便可结束迭代。若我们把判定条件改为|x-xo| 还是很有难度的一道题,多学多练,把复杂的步骤用变量一个一个表示出来要好做些
天眼查App显示,近日,重庆歌尔智行科技有限责任公司成立,法定代表人为张金国,注册资本1000万人民币,经营范围包括汽车零部件研发、智能车载
【上海有色网铜现货平均成交升贴水较前一交易日下跌5元至升水80元 吨】4月19日,上海有色网铜现货平均成交升贴水较前一交易日下跌5元,至升水8
绿意冉冉,牡丹破萼。春一寸一寸繁盛,4月10日,在人间最美的四月天,无锡市育英实验小学三年级综合实践活动如约而至。在花星球里,孩子们用眼
致远互联(688369):V8进入收获期,2023年期待业绩高弹性复苏。新闻资讯提供最新、最及时的新闻服务。包括:个股新闻、股票资讯、公司公告等
据广东证监局网站近日公布的行政处罚决定书〔2023〕9号显示,曾任广东创世纪智能装备集团股份有限公司董事会秘书周某超因内幕交易“创世纪”股
1、歌曲:神州侠侣歌手:徐乃麟专辑:《神州侠侣》主题曲女:你象奔放的春江温馨似朝阳悠悠地深
北京时间2023年4月18日,据多家外媒报道,全球最大的运动鞋代工企业中国台湾宝成集团计划投资230 2亿卢比(约合19 32亿元人民币)在印度当地建
A股异动|国际医学午后跌超7%一季度净亏损7474 05万元:国际医学(000516 SZ)高开低走,午后跌超7%报10 28元,总市值247亿元。公司昨晚公告
港股异动|普拉达涨7%续刷阶段高价近5个交易日累涨15%市值超1600亿港元:港股零售股继续活跃,其中普拉达(1913 HK)盘中涨约7%,近5个交易日累计涨幅
小伙伴们,你们好,今天小夏来聊聊一篇关于高边坡黄土的损伤扰动机理及滑坡灾害应急对策,关于高边坡黄土的损伤扰动机理及滑坡灾
X 关闭
牛顿迭代法求方程根
香港经纪人指数CSI(住宅售价)连跌6周_今日热议
今头条!2012年姜gary事件(gary事件)
央行公开市场净回笼量150亿元,2只债券取消发行|债市纵览
直击股东大会 | 维维股份收购“维维”系列商标 是去年净利下滑主因之一
薛平贵和薛仁贵是什么关系_薛平贵和薛仁贵关系是什么
X 关闭