link:自適應辛普森法1
觀察題目 這個東西 憑藉我們的數學知識應該是化簡不了的。
可以直接認為是乙個函式 求定積分直接使用辛普森就行辣.
一種寫法:
double a,b,c,d;
double f(double x)
//區間[a,b]上的辛普森值
double simpson(double a,double b)
//區間[a,b]上的積分,精度限制為eps,已知整個區間的辛普森值a
double asr(double a,double b,double eps,double a)
const double eps=1e-7;
int main()
這種 寫法比較常見 精度也比較穩 值得注意的是 exp每次需要/2 然後積分的時候要乘上15.
最後注意 要加上辛普森餘項 (l-r-a)/15. (15是人類研究出來的結果 不要問 問就是前沿哥
一種比較偷懶的寫法:
const int maxn=1010;
db a,b,c,d,l,r;
inline db f(db x)
inline db simpson(db l,db r)
inline db jf(db l,db r,db ans)
{ db mid=(l+r)/2;
db l=simpson(l,mid),r=simpson(mid,r);
if(fabs(l+r-ans)eps開小點直接積分 不過要注意時間 問題 時間不夠就開大eps.
luogu P4525 模板 自適應辛普森法 1
題面傳送門 眾所周知,定積分可以推公式求。但是如果我們推不出來不想推怎麼辦呢?作為oi競賽肯定不會讓你寫個什麼輸出根號之類的,肯定會有絕對誤差或相對誤差不大於多少多少。那麼我們就可以用自適應辛普森法。就是二次函式擬合,沒別的。但是如果乙個亂七八糟的函式直接二次函式擬合會很奇怪的東西出來。所以我們採用...
Luogu4525 模板 自適應辛普森法1
題面 洛谷 講一講這東西吧。自適應辛普森法的原理就是用二次函式來擬合所給函式,然後計算二次函式的積分得到近似答案,這裡首先給出二次函式的積分公式 也就是所謂的辛普森公式 並證明。int f x x int ax 2 bx c x fracr 3 fracr 2 cr fracl 3 fracl 2 ...
自適應辛普森法
自適應辛普森法通過 simpson 公式,用二次函式來擬合,實現時用二分遞迴來自動控制區間分割的大小,既保證精度,又保證速度 simpson 公式推導 int a bf x dx frac b 3 a 3 frac b 2 a 2 c b a frac 2ab 2 2aab 2aa 2 3bb 3b...