Luogu4525 模板 自適應辛普森法1

2022-05-07 22:48:20 字數 771 閱讀 6635

題面:洛谷

講一講這東西吧。

自適應辛普森法的原理就是用二次函式來擬合所給函式,然後計算二次函式的積分得到近似答案,這裡首先給出二次函式的積分公式(也就是所謂的辛普森公式)並證明。

\[=\int_^ f(x)x

\]\[=\int_^ (ax^2+bx+c)x

\]\[=\fracr^3+\fracr^2+cr-\fracl^3-\fracl^2-cl

\]\[=\frac

\]\[=(r-l)\frac

\]\[=(r-l)\frac)^2+4b\frac+4c}

\]\[=(r-l)\frac

\]然後它的思想是盡量用這個公式去計算積分,但是由於精度,所以要分段計算,容易計算的少分段,難以計算的多分段。如何判斷呢?分別計算左右兩部的積分加起來與當前積分比較就行了,具體實現請看**。

// luogu-judger-enable-o2

#includeusing namespace std;

const double eps=1e-7;

double a,b,c,d,l,r;

inline double f(double x)

inline double simpson(double l,double r)

inline double asr(double l,double r,double a)

inline double asr(double l,double r)

int main()

luogu P4525 模板 自適應辛普森法 1

題面傳送門 眾所周知,定積分可以推公式求。但是如果我們推不出來不想推怎麼辦呢?作為oi競賽肯定不會讓你寫個什麼輸出根號之類的,肯定會有絕對誤差或相對誤差不大於多少多少。那麼我們就可以用自適應辛普森法。就是二次函式擬合,沒別的。但是如果乙個亂七八糟的函式直接二次函式擬合會很奇怪的東西出來。所以我們採用...

洛谷P4525 模板 自適應辛普森法1

傳送門 我似乎連積分都不太熟練 總之就是對於乙個原函式,我們找乙個二次函式來近似它,那麼有 begin int a bf x dx frac b 3 a 3 frac b 2 a 2 c a b frac 2a b 2 ab a 2 3b b a 6c frac 2ab 2 2aab 2aa 2 3...

luogu P4525 自適應辛普森法1

link 自適應辛普森法1 觀察題目 這個東西 憑藉我們的數學知識應該是化簡不了的。可以直接認為是乙個函式 求定積分直接使用辛普森就行辣.一種寫法 double a,b,c,d double f double x 區間 a,b 上的辛普森值 double simpson double a,doubl...