一元三次方程解法
有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根與根之差的絕對值>=1。要求由小到大依次在同一行輸出這三個實根(根與根之間留有空格),並精確到小數點後2位。
提示:記方程f(x)=0,若存在2個數x1和x2,且x1<x2,f(x1)*f(x2)<0,則在(x1,x2)之間一定有一個
根。
一個三次方程的各項係數
輸出描述 Output Description三個解
樣例輸入 Sample Input1 -5 -4 20
樣例輸出 Sample Output-2.00 2.00 5.00
#include <stdio.h> #include <math.h> double a=0,b=0,c=0,d=0; double getF(double); double search(double,double); int main(void) { double i=-100; //i用於從-100自增到100,尋找根的位置 double tmp=0,tmpi=-100,result=0; //tmp用於接收每個點的f(x)值,tmpi用於接收左邊一端的i,result用於接收結果 scanf("%lf %lf %lf %lf",&a,&b,&c,&d); tmp=getF(-100); for(i=-99;i<=100;i++){ if(fabs(tmp*getF(i))<=1e-4){ tmpi = i+1; tmp = getF(tmpi); printf("%.2lf ",i); }else if(tmp*getF(i)<0){ printf("%.2lf ",search(tmpi,i)); tmpi = i+1; tmp = getF(tmpi); } } return 0; } double search(double a,double b) { double c = (a+b)/2; while(fabs(getF(c))>=1e-4) { if(getF(c)*getF(a)>0) { a = c; } else if(getF(c)*getF(b)>0) { b = c; } c = (a+b)/2; } return c; } double getF(double x) { return a*x*x*x+b*x*x+c*x+d; }
相關推薦
一元三次方程解法
有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根與根之差
一元三次方程
同一行 提示 int 是我 分享圖片 == include urn opened 題目描述 有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的系數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根
洛谷 [P1024]一元三次方程求解【二分答案】
https 格式 -m 要求 ble 方程 print else 如果 題目鏈接:https://www.luogu.org/problemnew/show/P1024 題目描述 有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的系數(a,
luogu1024 一元三次方程求解
iostream ble tar names 註意 stream 左右 ret == 題目大意 已知一元三次方程\(ax^3+bx^2+cx+d=0\): 有且只有3個根 對\(\forall x, x\in[-100,100]\) 對\(\forall x_1,x_2,
洛谷 P1024 一元三次方程求解
cstring stream () pro fin targe target bsp reg 洛谷 P1024 一元三次方程求解 題目描述 有形如: ax3 + bx2 + cx1 + dx0 = 0 這樣的一個一元三次方程。給出該方程中各項的系數( a,b,c
一元二次不等式和一元三次不等式解法的思考
可能 記得 兩種 但是 延續 bsp 是什麽 我們 同時 說起一元二次不等式的解法真的不記得了,只是大概記得和一元二次方程的兩個根有關系。 (x+1)(x-3)<0 這個不等式的集解如果熟悉解法的同學可能一秒就知道答案了,-1<x<3 對於不熟悉解法的
[P1034][NOIP2001]一元三次方程求解 (二分)
二分 #include<bits/stdc++.h> using namespace std; double a,b,c,d; double fc(double x) { return a*pow(x,3)+b*pow(x,2)+c*x+d; } int main()
題解 luogu P1024 【一元三次方程求解】
這道題的二分原理題目已給出:f(x)*f(x+1)<0時,x至x+1中必有一根。那麼,我們只需要迴圈-100至100,再用分治考慮小數部分就可以了。下面附上程式碼: #include<bits/stdc++.h> using namespace std; double
zcmu-2116: 一元三次方程求解(二分,列舉)
2116: 一元三次方程求解 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 76 Solved: 31 [Submit][Status][Web
【Openjudge:Noi】7891:一元三次方程求解 c++
【Openjudge:Noi】7891:一元三次方程求解 總時間限制: 1000ms 記憶體限制: 65536kB 描述 有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。 給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程
藍橋杯一元三次方程求解
問題描述 有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根與根
演算法訓練 一元三次方程求解 藍橋杯
問題描述 有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根與根之差的絕對值>=1。要求三個實根。。 輸入格式 四個實
一元三次方程-盛金公式求解
原理參考-百度百科(http://baike.baidu.com/link?url=eA-bEvbcOBM2XmA4rzIG-lgci4MQdQcr7lCzCHBW-qG-qcPaDNovXp_jYxS2FUjlrOh1obH_D3Yv6ME2JYOxPyCgKhHIaXC
某葉C語言學習上重大的一步——一元三次方程求解
目前某葉編的最難的程式了......感覺算是跨越吧,之前最難的是一元二次方程求解,雖然是最“難”的,只是因為最長,但是寫起來還是很輕鬆的 不過一元三次方程可一點都不輕鬆,很累,因為沒學過一元三次方程解法,所以需要百度,不過在C語言學習的書上找到了解法,要用牛頓迭代法求...... 百度娘處充電,勉勉
藍橋網 演算法訓練 一元三次方程求解
問題描述 有形如:ax3+bx2+cx+d=0 這樣的一個一元三次方程。給出該方程中各項的係數(a,b,c,d 均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根與根之差的絕對值>=1。要求三個實根。。 輸入格式 四個實數:a,b
一元三次方程 (codevs 1038)題解
【問題描述】 有形如:ax3+bx2+cx+d=0這樣的一個一元三次方程。給出該方程中各項的係數(a,b,c,d均為實數),並約定該方程存在三個不同實根(根的範圍在-100至100之間),且根
C++求解一元三次方程
#include<iostream> #include<cmath> #include<iomanip> using namespace std; double fx(double nparam[3],double x) { <s
【資料結構查詢】POJ1840——求五元三次方程的整數解個數
問題描述: 給定五元三次方程的全部係數,求出解不等於0且為[−50,50][-50,50][−50,50]之間的整數的個數。 求解方法: 將後兩項移到等式的右邊,並將前三項的全部結果遍歷出來並打表
關於三次方程的一道題
三次方程的一道題 前幾天在水木社群數學版看到了一道題,題目如下: 設 x3−3x−1=0x^3-3x-1=0x3−3x−1=0 有三個實根從小到大依次x1x_1x1、x2x_2x2、x3x_3x3,求證: x32−x22=x3−x1 x_3^2-x_2^2
一元四次方程為什麼沒有12個解
高等代數的教科書裡面講到使用Ferrari(費拉里)解法求解四次方程時,從三次方程求得u的三個根,如果依次代入分解後得兩個二次方程引數,最後求的四次方程得解,如果對每一個u四次方程都有解那麼4個解,那麼是不是最後有3∗4=123*4=123∗4=12個解呢?很多