本题单主要针对部分数值类型算法(在 OI 中并不常见)。另外,本题单不包含计算几何。
upd at 2024.8.16
求根
求根(即函数零点)有两种方法:二分和牛顿迭代。
二分首先需要有一个区间 (x_1,x_2),根存在的充要条件是函数连续且 f(x_1)f(x_2)<0。
牛顿迭代只需要按照 x\leftarrow x-\frac{f(x)}{f'(x)},得到零点后进行多项式除法即可。
- P1024 [NOIP2001 提高组] 一元三次方程求解。本题是二分求根的板子。
- UVA10428 The Roots。本题是牛顿迭代求根的板子。
- UVA10341 Solve It。本题是二分区间求根的板子,需要先通过求导判定根的存在性。
积分
求积分有两种方法:通过带入反函数直接计算,或使用自适应辛普森法进行近似计算。
反函数法,直接使用牛顿-莱布尼茨公式进行计算:
\int_a^bf(x)\mathrm dx=F(b)-F(a)
自适应辛普森法,可以这样描述:一个函数,在一个极小的区间内可以近似作为一条抛物线进行计算。有以下结论
\int_l^rf(x)\mathrm dx\approx\frac{r-l}{6}\left[f(l)+4f\left(\frac{l+r}4\right)+f(r)\right]
设这个解为 S(l,r),我们可以估计精确值。
这样,我们可以通过首先求 S(l,r),以及 S(l,\frac{l+r}2) 和 S(\frac{l+r}2,r),把后两个加起来,若减去最前面的差小于 \epsilon,我们就可以停止迭代。
- P4525 【模板】自适应辛普森法 1。本题可以采用
查表求反函数。
- P4526 【模板】自适应辛普森法 2。由于本题上界是正无穷大,我们首先估计上界在什么时候可以取到 \epsilon。当然,积分如果发散,你就似了。所以,我们当然可以使用神奇的方法判定积分是否收敛。详见题解。
- UVa1524 Hot or Cold?。本题可以直接采用反函数。
- UVa1356 Bridge。本题可以查表,也可以辛普森。需要弧长公式推导。
- UVa12528 Environment Protection。本题显然辛普森,因为这样的函数你查不了表。
先放这些。剩下的东西先留着。