用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根.自己写的c程序,可是出错了.#include#includevoid main(){float x0x1,x2,fx0,fx1,fx2; x1=-10;x2=10;fx1=2*pow(x1,3)+4*pow(x1,2)+3*x1-6;fx2=2*pow(x2,3)+4*pow(x2,2)+3*x2-6;do{x0=(x1+x2)/2;fx0=2*pow(x0,3)+4*pow(x0,2)+3*x0-6;if(fx1*fx0=1e-5);printf("x=%6.2f",x0); }不知道为什么就是不对,改了一下fx0=2*pow(x0,3)+4*pow(x0,2)+3*x0-6;这句就行了,但是就是不知道为什么错,难道是pow用错了?大侠们,
问题描述:
用二分法求方程2x3-4x2+3x-6=0在(-10,10)之间的根.自己写的c程序,可是出错了.
#include
#include
void main()
{
float x0x1,x2,fx0,fx1,fx2;
x1=-10;
x2=10;
fx1=2*pow(x1,3)+4*pow(x1,2)+3*x1-6;
fx2=2*pow(x2,3)+4*pow(x2,2)+3*x2-6;
do
{
x0=(x1+x2)/2;
fx0=2*pow(x0,3)+4*pow(x0,2)+3*x0-6;
if(fx1*fx0=1e-5);
printf("x=%6.2f",x0);
}
不知道为什么就是不对,改了一下fx0=2*pow(x0,3)+4*pow(x0,2)+3*x0-6;这句就行了,但是就是不知道为什么错,难道是pow用错了?
大侠们,
答
#include <iostream>using namespace std;double p(double x){return 2*x*x*x-4*x*x+3*x-6;}int main(){double a,b;cin >> a >> b;double fa = p(a),fb = p(b),fm;do{fm = p((a+b)/2);if(fm...