一元三次方程求解

2021-10-10 07:48:29 字數 760 閱讀 6913

因為區間很大,所以可以二分。

三個答案都在[-100,100]範圍內,兩個根的差的絕對值》=1,保證了每乙個大小為1的區間裡至多有1個解,也就是說當區間的兩個端點的函式值異號時區間內一定有乙個解,同號時一定沒有解。那麼我們可以列舉互相不重疊的每乙個長度為1的區間,在區間內進行二分查詢。

**1

#include

double a,b,c,d;

doublefc(

double x)

intmain()

//判斷左端點,是零點直接輸出。

//不能判斷右端點,會重複。

if(x1*x2<0)

//區間內有根。

printf

("%.2lf "

,r);

//輸出右端點。

s++;}

if(s==3)

break

;//找到三個就退出大概會省一點時間

}return0;

}**2

#include

#include

#include

using

namespace std;

intmain()

一元三次方程:ax的三次方+bx的二次方+cx+d=0

重根判別公式:

a=b的二次方-3ac

b=bc-9ad

c=c的二次方-3bd

當a=b=0時,x1=x2=x3= -b/3a= -c/b = -3d/c

一元三次方程求解

有形如 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 輸出格式 由小到大依次在同一行輸出這...

一元三次方程求解

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