中易网

用牛顿迭代法求下列方程在1.5附近的根:2x3-4x2+3x-6=0。

答案:3  悬赏:0  
解决时间 2021-03-14 19:09
#include "math.h"
main()
{float x,x0,f,f1; x=1.5;
do{x0=x;
f=2*x0*x0*x0-4*x0*x0+3*x0-6;
f1=6*x0*x0-8*x0+3;
x=x0-f/f1; }while(fabs(x-x0)>=1e-5);
printf ("%f\n",x); }

想请教下这一步: f1=6*x0*x0-8*x0+3; 是怎么来的 麻烦详细点 谢谢
最佳答案
牛顿迭代法的步骤大概是这样的:首先给定一个初始值x0,用它来进行迭代。迭代的方法就是在点(x0,f(x0))处做曲线的切线,与横轴得到一个交点(x1,0),x1就是第一次迭代的结果,也就是方程解的一个近似。要想更靠近实际解就要继续迭代,再在点(x1,f(x1))上做切线,与横轴又会得到一个交点,然后重复这个步骤,直到达到满意的精度为止。你说的这个式子就是对式求导得到的
全部回答
#include #include #include #define n 100 #define ps 1e-5//定义精度 #define ta 1e-5//定义精度 float newton(float (*f)(float),float(*f1)(float),float x0 ) { float x1,d=0; int k=0; do { x1= x0-f(x0)/f1(x0); d=(fabs(x1)<1?x1-x0:(x1-x0)/x1); x0=x1; printf("x(%d)=%f\n",k,x0); } while((fabs(d))>ps&&fabs(f(x1))>ta) ; return x1; } float f(float x) { return 2*x*x*x-4*x*x+3*x-6; } float f1(float x) { return 6*x*x+8*x+3; }//对方程求导 void main() { float f(float); float f1(float); float x0,y0; printf("input x0: ");//输入x0为1.5即求1.5附近的根 scanf("%f",&x0); printf("x(0)=%f\n",x0); y0=newton(f,f1,x0); printf("\nthe root is x=%f\n",y0); getch(); }
这个是函数求导。如: 原函数 y=x^n 他的求导就成了这个了y'=nx^(n-1) 所以其实f1+2*3*x*x-4*2*x+3-6
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
盘龙里面林雷的魔兽影鼠真正身份到底是什么
恶棍天使邓超开的是什么车?!
磷酸盐结晶是怎么一回事
什么是管理创新?管理创新有何基本特征
房屋背后三十米埋了个死人有什么影响
etc装在车上怎么充电呢?
开题报告需要准备什么
关于现货平仓.谢谢
外地人居然学我们本地话骂我 感觉很不爽 被外
花神客栈地址在哪,我要去那里办事
求a的平方的平方根和算术平方根。 注意:是“
如何快速搞定已婚同事
常德中老年人体检去哪里?有哪些项目要做?
网络工程和平面设计这两个专业哪个发展大呀?
为什么上上去瘦了好多但是称重只瘦了四斤
推荐资讯
吸血鬼日记第七季马特的女警搭档是怎么死的
我们厂里在招文员,需具备中专学历,熟悉电脑
西南大学自习室怎么开放?
齐鲁医院沂南分院地址有知道的么?有点事想过
狗狗突然伸着舌头喘气是怎么回事?原来从来没
二十八乘一百四十二减四十二乘八用简便计算
沪fy牌照 荣威550可以营运吗
帮我写一份20字左右的申请免费教科书的申请理
新绿洲医药连锁普济药店我想知道这个在什么地
如果自己改装轮胎,在车检的时候会不会受到影
有没有黑木耳的加工工厂
手机贷的五千额度真的有吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?