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...