C++编程:1.用牛顿迭代公式求方程2x3-4x2+3x-6=0在1.5附近的根。

==========注意是C++ ==========

#include
#include
int
main()
{
double
x0,x=1.5;
do
{
x0=x;
x=x0-(2*pow(x0,3)-4*pow(x0,2)+3*x0-6)/(6*pow(x0,2)-8*x0+3);
}
while
(fabs(x-x0)>1e-5);
printf("x=%f",x);
return
0
}
牛顿迭代法是先给定方程f(x)=0的一个较好的近似根x,然后用迭代公示:xn+1=xn-f(xn)/f'(xn)
直至xn与xn+1相差很小为止
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-02
#include<iostream>
#include<cmath>
using namespace std;

double f(double x);
double f1(double x);
void main()
{
double x1=1.51,x2;
x2=x1-f(x1)/f1(x1);
while(fabs(x1-x2)>0.001){
x1=x2;
x2=x1-f(x1)/f1(x1);
}
cout <<x2 <<endl;
}

double f(double x)
{
double rt=2*x*x*x-4*x*x+3*x-6;
return rt;
}
double f1(double x)
{
double rt=6*x*x-8*x+3;
return rt;
}本回答被提问者和网友采纳
第2个回答  2012-06-13
表示楼主如果知道什么是牛顿迭代就知道怎么写算法了。
相似回答