
采用二分法求方程x^3-x^4+4*X^2-1=0 在[0,1]内的一个实根的程序代码 5
1个回答
展开全部
本程序由dev-c++编译,程序运行中演示二分法逼近0时每一步的运算结果,
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
double fun(double num)
{
return pow(num,3)-pow(num,4)+4*pow(num,2)-1;
}
int main()
{
double left=0,right=1,mid,M_fun,L_fun,R_fun;
int i=1;
L_fun=fun(left);
R_fun=fun(right);
do
{
mid=(left+right)/2;
M_fun=fun(mid);
cout<<setw(2)<<i++<<" : "<<setw(8)<<mid<<endl;
if(L_fun*M_fun>0 && M_fun*R_fun<0){left=mid;L_fun=fun(left);}
else if(L_fun*M_fun<0 && M_fun*R_fun>0){right=mid;R_fun=fun(right);}
else {cout<<"error"<<endl;break;}
}
while(abs(M_fun)>0.00001);
system("pause");
return 0;
}
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
double fun(double num)
{
return pow(num,3)-pow(num,4)+4*pow(num,2)-1;
}
int main()
{
double left=0,right=1,mid,M_fun,L_fun,R_fun;
int i=1;
L_fun=fun(left);
R_fun=fun(right);
do
{
mid=(left+right)/2;
M_fun=fun(mid);
cout<<setw(2)<<i++<<" : "<<setw(8)<<mid<<endl;
if(L_fun*M_fun>0 && M_fun*R_fun<0){left=mid;L_fun=fun(left);}
else if(L_fun*M_fun<0 && M_fun*R_fun>0){right=mid;R_fun=fun(right);}
else {cout<<"error"<<endl;break;}
}
while(abs(M_fun)>0.00001);
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询