用牛顿迭代法求2*x*x*x-4*x*x+3*x-6=0在1.5附近的一个根

L_jila 2007-05-13 10:53:20
#include"iostream.h"
#include"math.h"
void main()
{double x0,f,f1;
double 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);
cout<<"The root of the equation is "<<x<<endl;
}
能不能帮我解释一下,看不懂。。。
...全文
689 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixiao386 2007-05-13
  • 打赏
  • 举报
回复
牛顿迭代法不记得了
kouzhongling 2007-05-13
  • 打赏
  • 举报
回复
这是个数学问题
牵扯到编程的只是 while((fabs(x-x0))>1e-5);//计算机判断两个浮点相等
celftj 2007-05-13
  • 打赏
  • 举报
回复
程序本身很简单,2*x0*x0*x0-4*x0*x0+3*x0-6是把x0=1.5代入方程, 6*x0*x0-8*x0+3是过该点的切线方程f'
celftj 2007-05-13
  • 打赏
  • 举报
回复
牛顿迭代公式:
设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0) f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值
celftj 2007-05-13
  • 打赏
  • 举报
回复
不如先看牛顿迭代法的算法

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧