一元三次方程 盛金公式求解

2021-07-26 05:45:29 字數 747 閱讀 9464

先說一下中間出現的問題,開三次方的時候不能直接pow(x,1.0/3.0); 要分x大於零小於零,pow只接受大於零的引數。

另外,由於工程中只考慮實數,這裡複數沒有實現。

#pragma once

class cubicsolute

void judge();

double getx1()

double getx2()

double getx3()

private:

double a,b,c,d;

double a,b,c;

double delt;//判別式

double x1,x2,x3;

};

#include "cubicsolute.h"

#include cubicsolute::cubicsolute(void)

cubicsolute::~cubicsolute(void)

//δ根的判別式

void cubicsolute::judge()

//δ=b2-4ac>0時,公式2

if (delt>0)

//當δ=b2-4ac=0時,公式3

if (delt==0&&(a!=0))

//當δ=b2-4ac<0時,公式4

if (delt<0)

{ double t = (2*a*b-3*a*b)/(2*a*pow(a,0.5));//(a>0,-1

有缺陷的一元三次方程求解設計(盛金公式)

先放 include include cube sqrt.h double abs double x double cube sqrt double x return middle include include include cube sqrt.h using namespace std equ...

一元三次方程求解

有形如 ax 3 bx 2 cx d 0這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求由小到大依次在同一行輸出這三個實根 根與根之間留有空格 並精確到小數點後2位。輸入有多行測試資料...

一元三次方程求解

問題描述 有形如 ax 3 bx 2 cx d 0 這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d 均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求三個實根。輸入格式 四個實數 a,b,c,d 輸出格式 由小到大依次在同一行輸出這...