二分 求方程的根

2021-06-06 10:31:00 字數 1059 閱讀 5863

3    求方程的根

源程式名            equation.???(pas, c, cpp)

可執行檔名        equation.exe

輸入檔名          equation.in

輸出檔名          equation.out

【問題描述】

輸入m,n,p,a,b,求方程f(x)=mx+nx-px=0在[a,b]內的根。m,n,p,a,b均為整數,且a【樣例】

equation.in                          equation.out

2 3 4 1 2                             1.5071265916e+00

2.9103830457e-11

二分。至於下面那個是什麼,不太清楚。。亂輸了乙個,過了。

我們要分類討論,因為該函式在(-oo,+oo)上不是單增就是單減。如果m+n>p就單增,如果m+n

對於實數的二分,要注意乙個問題:更新區間的時候,mid+detla,mid-delta,delta必須要夠小,否則會出事的,或者直接忽略它

#include #include #include const double eps = 1e-11;

long a,b,m,n,p;

double lnn,lnm,lnp;

long getint()

do rs=(rs<<3)+(rs<<1)+tmp-'0';

while (isdigit(tmp=getchar()));

return sgn?rs:-rs;

}bool flag = false;

void binary(double l,double r)

if (rs * (m+n-p) > eps)

binary(x,r);

else

binary(l,x);

} }

int main()

求方程根 (二分法)

二分法求方程的根 求下面方程的乙個根 f x x3 5x2 10x 80 0 若求出的根是a,則要求 f a 10 6 解法 對f x 求導,得f x 3x2 10x 10。由一元二次方程求根公式知方呈f x 0 無解,因此f x 恆大於0。故f x 是單調遞增的。易知f 0 0且f 100 0,所...

二分法求方程根

二分法是計算機上的一種常用演算法,下面列出計算步驟 step1 計算 step2 計算 step3 若 0,則若若 如下 erfen.m 有根區間 a,b 函式 y x 2 2 呼叫了erfenhanshu a 1 b 6 e 10 cnt 0 while e 0.1 cnt cnt 1 fa er...

二分法求方程的根

求下面乙個方程的根 f x x 3 5x 2 10x 80f x x3 5x2 10x 80如果a是方程的根,則要求f a 1e 6f a 1e 6 通過對公式的求導可以發現,導函式開口向上,與x軸沒有交點,那麼導函式的值就是始終大於0的,所以原函式單調遞增 而且已知f 0 0 f 0 0,f 10...