怎样编程计算3次方程的根
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 20:50:10
怎样编程计算3次方程的根
就不能给我准确结果?
我想你是不理解编程语言对数据的存储方式.小数在计算机中是不能准确表示的,如2.9999998、2.9999997结果是3.所以,你想准确表示小数是不可能的,只能在一定范围内是准确的,如误差小于0.000001...所以
左值(result) - 右值(0)的误差小于0.000001就算是解
用C++编写的,已经编译运行调试,测试方程如下:
// 3x(3)+2x(2)+x(1)-6=0
// x(3)+10x(2)+x(1)+1=0
在编程中求解方程的解都是用“穷举”的思想(转化为程序就是循环)进行的,即不断判断在一定的数据范围内存不存在解.所以运算的次数会很多很多!
//@@@@@@@@@@@
double x=-0.001; //假设解的最小值,根据方程情况决定!
double M=100; //假设解的最大值,根据方程情况决定!
//@@@@@@@@@@@
根据方程情况决定!可以修改,但要控制好循环次数哦,假如你设置为x=-0.00001,M=1000000.估计程序要运行个几分钟才结束,搞不好死机哦.
说得这么详细,一定要给分哦!
#include //pow、fabs函数在这个库里
#include
using namespace std;
double x=-0.001; //假设解的最小值double M=100; //假设解的最大值
void main()
{
double a,b,c,d,result;
couta>>b>>c>>d;
while (1)
{
//左值(result) - 右值(0)的误差小于0.000001就算是解
result=a*pow(x,3)+b*pow(x,2)+c*pow(x,1)+d;
if ( fabs(result-0)
我想你是不理解编程语言对数据的存储方式.小数在计算机中是不能准确表示的,如2.9999998、2.9999997结果是3.所以,你想准确表示小数是不可能的,只能在一定范围内是准确的,如误差小于0.000001...所以
左值(result) - 右值(0)的误差小于0.000001就算是解
用C++编写的,已经编译运行调试,测试方程如下:
// 3x(3)+2x(2)+x(1)-6=0
// x(3)+10x(2)+x(1)+1=0
在编程中求解方程的解都是用“穷举”的思想(转化为程序就是循环)进行的,即不断判断在一定的数据范围内存不存在解.所以运算的次数会很多很多!
//@@@@@@@@@@@
double x=-0.001; //假设解的最小值,根据方程情况决定!
double M=100; //假设解的最大值,根据方程情况决定!
//@@@@@@@@@@@
根据方程情况决定!可以修改,但要控制好循环次数哦,假如你设置为x=-0.00001,M=1000000.估计程序要运行个几分钟才结束,搞不好死机哦.
说得这么详细,一定要给分哦!
#include //pow、fabs函数在这个库里
#include
using namespace std;
double x=-0.001; //假设解的最小值double M=100; //假设解的最大值
void main()
{
double a,b,c,d,result;
couta>>b>>c>>d;
while (1)
{
//左值(result) - 右值(0)的误差小于0.000001就算是解
result=a*pow(x,3)+b*pow(x,2)+c*pow(x,1)+d;
if ( fabs(result-0)