数学分析前四章专题练习(实数、数列、函数极限、连续)
本页对标《数学分析》前四章,按“基础-提高-挑战”配置多题训练。每题均支持点击展开过程与答案。
设 A={1−n1:n∈N+},求 supA,infA。
点击查看解析与答案
由 1−n1<1 且可任意逼近 1,得 supA=1;当 n=1 时取到 0,故 infA=0。
证明:对任意 x>0,存在 n∈N 使 n1<x。
点击查看解析与答案
由阿基米德性质,存在 n>1/x,两边取倒数得 1/n<x。
证明 limn→∞n+42n−3=2。
点击查看解析与答案
n+42n−3−2=n+411<n11.
给定 ϵ>0,取 N>11/ϵ,则当 n>N 时误差小于 ϵ。
求
limx→0x1+2x−1.
点击查看解析与答案
有理化:
x1+2x−1=1+2x+12→1.
求
limn→∞n21+3+⋯+(2n−1).
点击查看解析与答案
令 Xn=∑k=1n(2k−1),Yn=n2,则
limYnXn=limn2−(n−1)22n−1=lim2n−12n−1=1.
讨论函数
f(x)={xsinx,1,x=0,x=0
在 x=0 处是否连续。
点击查看解析与答案
因 limx→0xsinx=1=f(0),故在 0 处连续。
求函数
g(x)=ln(1−x−1)
的定义域。
点击查看解析与答案
需满足 x−1≥0 且 1−x−1>0。
后者等价于 x−1<1⇒x<2。
故定义域 [1,2)。
证明:
limx→0xsinx1=0.
点击查看解析与答案
由 ∣sin(1/x)∣≤1,得
−∣x∣≤xsinx1≤∣x∣.
两端在 x→0 时趋于 0,故中间极限为 0。
判断 f(x)=x2 在 (0,+∞) 上是否一致连续,并说明理由。
点击查看解析与答案
取 xn=n,yn=n+n1,则
∣xn−yn∣=n1→0,
但
∣f(xn)−f(yn)∣=n2−(n+n1)2=−2−n21→2=0.
故不一致连续。
证明方程 x5+x−1=0 在 (0,1) 内至少有一根。
点击查看解析与答案
设 h(x)=x5+x−1,多项式在 [0,1] 上连续。
h(0)=−1<0, h(1)=1>0,由介值定理存在 ξ∈(0,1) 使 h(ξ)=0。
设 A={q∈Q∣q≤0 或 q2<2},B={q∈Q∣q>0 且 q2>2}。证明 (A,B) 是 Q 的一个分割,但其间没有有理数。
点击查看解析与答案
解析:
- 非空性:0∈A,2∈B,均非空。
- 并集与不相交:显然 A∪B=Q 且 A∩B=∅(因为不存在有理数 q 使 q2=2)。
- 有序性:若 a∈A,b∈B,则 a<b 显然。
- 无边界有理数:若存在 ξ∈Q 是边界,则 ξ2=2,这与 2 是无理数矛盾。
结论:这证明了有理数集 Q 不具有连续性(完备性)。
证明:任何有界序列 {an} 必存在收敛子列。
点击查看解析与答案
解析:
这是 Bolzano-Weierstrass 定理。
- 数列有界,故其值域 S={an} 有界。
- 若 S 为有限集,则必有某个值重复出现无穷多次,取其对应的子序列即收敛。
- 若 S 为无限集,由聚点定理,S 至少有一个聚点 ξ。
- 在 ξ 的邻域 (ξ−1/k,ξ+1/k) 内取项 ank,可构造出收敛于 ξ 的子列。
证明:闭区间上的连续函数必一致连续。
点击查看解析与答案
解析:
- 设 f 在 [a,b] 上连续。对任意 ϵ>0 和 x∈[a,b],存在 δx 使得当 ∣y−x∣<δx 时 ∣f(y)−f(x)∣<ϵ/2。
- 考虑开覆盖 H={(x−δx/2,x+δx/2)∣x∈[a,b]}。
- 由有限覆盖定理,存在有限个点 x1,…,xk 使得 [a,b]⊂⋃i=1k(xi−δi/2,xi+δi/2)。
- 取 δ=min{δi/2}。若 ∣x−y∣<δ,则 x 属于某个 (xi−δi/2,xi+δi/2)。
- 通过三角不等式 ∣f(x)−f(y)∣≤∣f(x)−f(xi)∣+∣f(xi)−f(y)∣<ϵ/2+ϵ/2=ϵ。
结论:一致连续。
已知 Wallis 公式:
limn→∞∏k=1n4k2−14k2=2π
编写 C++ 程序验证该公式的收敛过程并计算相对误差。
点击查看 C++ 参考实现与解析
解析:该公式提供了一种通过有理数序列逼近 π 的方法。在程序中,我们通过迭代计算前 n 项的乘积。
#include <iostream>
#include <iomanip>
#include <cmath>
int main() {
const double PI_HALF = M_PI / 2.0;
double product = 1.0;
std::cout << std::fixed << std::setprecision(10);
std::cout << "Target PI/2: " << PI_HALF << "\n\n";
std::cout << "n\t\tApproximation\t\tError" << std::endl;
for (int n = 1; n <= 1000000; ++n) {
double term = (4.0 * n * n) / (4.0 * n * n - 1.0);
product *= term;
if (n == 10 || n == 100 || n == 1000 || n == 10000 || n == 100000 || n == 1000000) {
std::cout << n << "\t\t" << product << "\t\t" << std::abs(product - PI_HALF) << std::endl;
}
}
return 0;
}