C++编程:1.用牛顿迭代公式求方程2x3-4x2+3x-6=0在1.5附近的根。
展开全部
#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相差很小为止
#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相差很小为止
展开全部
#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;
}
#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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表示楼主如果知道什么是牛顿迭代就知道怎么写算法了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询