From 335e307ddc649cdb6ed415565afd2851b7e81827 Mon Sep 17 00:00:00 2001 From: tink Date: Sun, 10 Nov 2024 17:45:22 +0800 Subject: [PATCH] add data science --- ...初中到大学的数学知识梳理.ipynb | 2445 +++++++++++++++++ mkdocs.yml | 2 + 2 files changed, 2447 insertions(+) create mode 100644 docs/data-science/初中到大学的数学知识梳理.ipynb diff --git a/docs/data-science/初中到大学的数学知识梳理.ipynb b/docs/data-science/初中到大学的数学知识梳理.ipynb new file mode 100644 index 0000000..33e9b32 --- /dev/null +++ b/docs/data-science/初中到大学的数学知识梳理.ipynb @@ -0,0 +1,2445 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b0818f63-cf74-42ae-8190-93abfb4e35a4", + "metadata": {}, + "source": [ + "# 初中到大学的数学知识梳理\n", + "\n", + "来源:https://www.cnblogs.com/mq0036/p/14899014.html\n", + "\n", + "资料:\n", + "- 高中数学必修和选修知识点全归纳:https://www.cnblogs.com/mq0036/p/14888945.html\n", + "- 数学常用符号及读法大全: https://www.cnblogs.com/mq0036/p/13892138.html\n", + "- 大学数学网:https://www.cnblogs.com/mq0036/p/8288329.html\n", + "- 直观理解图像的傅里叶变换: https://www.cnblogs.com/mq0036/p/14035633.html\n", + "- 高中数学必考公式大全总结:https://www.sohu.com/a/435285496_120387993\n", + "- 高中数学:https://github.com/Ayvytr/KnowledgeHierarchy/blob/master/%E9%AB%98%E4%B8%AD%E6%95%B0%E5%AD%A6.md\n", + "- Markdown 数学公式使用总结:https://www.cnblogs.com/fan223/articles/17122094.html\n", + "- LaTeX数学公式整理: https://muzing.top/posts/48740/\n", + "- LaTeX 数学公式总结:https://mathpretty.com/11235.html" + ] + }, + { + "cell_type": "markdown", + "id": "b074af39-ce32-4db0-bf45-afd87b90bca8", + "metadata": {}, + "source": [ + "数学包括对数量(数论/算术)、结构(代数)、空间(几何)、变化(分析)的研究,还包括逻辑、集合、应用数学等的研究。" + ] + }, + { + "cell_type": "markdown", + "id": "65f6fc20-c621-4e89-87dc-e6980953769a", + "metadata": {}, + "source": [ + "## 初中数学" + ] + }, + { + "cell_type": "markdown", + "id": "1bac289f-e319-4800-bf14-b93f85caf63b", + "metadata": {}, + "source": [ + "### 数论中的数学概念\n", + "\n", + "![](https://static.cyub.vip/images/202410/54667-20210618000428671-1570607480.png)\n", + "\n", + "- 整数:正整数,0,负整数统称为整数\n", + "\n", + "- 分数:正分数,负分数统称为分数\n", + "\n", + "- 有理数:整数和分数统称为有理数(rational number)\n", + "\n", + "- 相反数:正负的两个数互为相反数(opposite number)\n", + "\n", + "- 倒数:一个数x与其相乘为1的数,记为 $1/x$,其中 $x!=0$\n", + "\n", + "- 无理数:无限不循环小数叫无理数,包括正负无理数,如很多数的平方根或立方根是无理数。如 $\\sqrt{2}$, $\\sqrt[3]{3}$。\n", + "\n", + "- 实数:有理数 + 无理数统称为实数。包括正实数 + 负实数。对应平面上的横轴。\n", + "\n", + "- 虚数:将偶指数幂是负数的数定义为纯虚数(形如 $a+bxi$ 的数,其中$a$ , $b$ 是实数,且 $b≠0$, $i²=-1$ 。$a$ 为实部,$b$ 为虚部),虚数无算术根。对应平面上的纵轴。\n", + "\n", + "- 复数:实数 + 虚数称为复数。" + ] + }, + { + "cell_type": "markdown", + "id": "bb9020b9-65e8-4209-97f6-3cec3e7bc2b4", + "metadata": {}, + "source": [ + "### 整数乘法" + ] + }, + { + "cell_type": "markdown", + "id": "39def240-d350-4e44-bf23-3bf9cc03433b", + "metadata": {}, + "source": [ + "#### 多项式乘法\n", + "\n", + "多项式与多项式相乘,先用一个多项式的每一项乘另一个多项式的每一项,再把所得的积相加。\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "(a + b)(p + q) &= a(p + q) + b(p + q) \\\\ \n", + "&= ap + aq + bp + bq\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "70f9af4b-4f8b-42cb-b2bd-ce1d215fd04a", + "metadata": {}, + "source": [ + "#### 平方差\n", + "\n", + "formula for the difference of squares:两个数的和与两个数的差的积,等于这两个数的平方差。\n", + "\n", + "$$\n", + "(a+b)(a−b)=a^2 − b^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "029108b0-06cb-4155-9221-c829de9d077b", + "metadata": {}, + "source": [ + "#### 平方和公式\n", + "\n", + "formula for the square of the sum:两个数的和(或差)的平方,等于他们的平方和,加上(或减去)它们积的2倍。\n", + "\n", + "$$\n", + "(a+b)^2=a^2 + 2ab + b^2\n", + "$$\n", + "\n", + "$$\n", + "(a−b)^2=a^2−2ab+b^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "c2513066-f97d-44fc-9955-f06b6fb49884", + "metadata": {}, + "source": [ + "#### 因式分解\n", + "\n", + "$$\n", + "a^2−b^2=(a+b)(a−b)\n", + "$$\n", + "\n", + "$$\n", + "a^2+2ab+b^2=(a+b)^2\n", + "$$\n", + "\n", + "$$\n", + "a^2−2ab+b^2=(a−b)^2\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "3bae43af-ed1b-4592-859f-63935554738f", + "metadata": {}, + "source": [ + "### 一元二次方程\n", + "\n", + "考虑一元二次方程 $ax^2 + bx + c = 0$,其中 $a$、$b$、$c$ 是常数,且$ a \\neq 0 $。一元二次方程的解叫做根。在数学术语中,我们通常说求解一元二次方程的根,也就是找到满足方程的未知数的值。下面是求根的推导过程:" + ] + }, + { + "cell_type": "markdown", + "id": "9a5f33be-20fe-4ded-8333-5d3925414dbb", + "metadata": {}, + "source": [ + "$$\n", + "\\begin{aligned}\n", + "&ax^2 + bx + c = 0 \\\\\n", + "&\\Rightarrow ax^2 + bx = -c \\\\\n", + "&\\Rightarrow x^2 + \\frac{b}{a}x = -\\frac{c}{a}\\\\\n", + "&\\Rightarrow x^2 + 2\\frac{b}{2a}x + (\\frac{b}{2a})^2 = -\\frac{c}{a} + (\\frac{b}{2a})^2\\\\\n", + "&\\Rightarrow (x+\\frac{b}{2a})^2 = \\frac{b^2 - 4ac}{4a^2}\\\\\n", + "&\\Rightarrow x = \\pm{\\sqrt{\\frac{b^2 - 4ac}{4a^2}}} - \\frac{b}{2a}\\\\\n", + "&\\Rightarrow x = \\frac{-b\\pm{\\sqrt{b^2 -4ac}}}{2a}\n", + "\\end{aligned}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "367e0af9-e3a0-4117-a89e-ef02c4b423a1", + "metadata": {}, + "source": [ + "根号下的$b^2−4ac$被称为判别式,用$\\Delta$表示,即$\\Delta = b^2 - 4ac$\n", + "\n", + "根据 $\\Delta$ 的值,我们可以确定根的性质:\n", + "- 如果 $\\Delta > 0$,方程有两个不相等的实数根。\n", + "- 如果 $\\Delta = 0$,方程有两个相等的实数根(即一个实数根)\n", + "- 如果 $\\Delta < 0$,方程没有实数根,但有两个共轭复数根。\n", + "\n", + "当 $\\Delta \\geq 0$ 时,实根为:\n", + "\n", + "$x_1 = \\frac{-b + \\sqrt{\\Delta}}{2a}$\n", + "\n", + "$x_2 = \\frac{-b - \\sqrt{\\Delta}}{2a}$\n", + "\n", + "当 $\\Delta = 0$ 时,实根为:\n", + "\n", + "$x_1 = x_2 = \\frac{-b}{2a}$\n" + ] + }, + { + "cell_type": "markdown", + "id": "1593a6c7-ed76-459a-9593-1caddefa58b7", + "metadata": {}, + "source": [ + "### 多项式\n", + "\n", + "Polynomial,由称为未知数的变量和称为系数的常数通过有限次加减法、乘法以及自然数幂次的乘方运算得到的代数表达式。\n", + "\n", + "单项式:仅由一项构成的多项式称为单项式\n", + "\n", + "常数项:一项中不含未知数\n", + "\n", + "示例:\n", + "\n", + "- $5x^3$ 是单项式\n", + "- $3x^4−2x^3+5x^2−7^x+9$中9就是常数项\n", + "- $x^2+3x−4$ 是三项一元二次多项式\n", + "- $x^3+2y^2−4z$ 是三项三元三次多项式" + ] + }, + { + "cell_type": "markdown", + "id": "9463debf-e66b-4c2d-8e12-d0ec24aad06a", + "metadata": {}, + "source": [ + "## 高中数学" + ] + }, + { + "cell_type": "markdown", + "id": "7db4b6e9-2151-425d-9a2d-d653f3f41926", + "metadata": {}, + "source": [ + "### 集合" + ] + }, + { + "cell_type": "markdown", + "id": "221e6c9a-5161-4169-b885-34c29fa37b80", + "metadata": {}, + "source": [ + "把对象称为元素(element),把元素组成的总体叫集合,简称集(set)。如果两个集合的元素相同则两个集合相等。\n", + "\n", + "- $a$属于集合记为:$a\\in{A}$\n", + "\n", + "- $a$不属于集合B记为:$a\\notin{B}$" + ] + }, + { + "cell_type": "markdown", + "id": "dda06ae1-c3c1-495b-bbdf-ef9ac2a5290d", + "metadata": {}, + "source": [ + "#### 集合的表示" + ] + }, + { + "cell_type": "markdown", + "id": "aa5b1f26-6e55-4a7d-9c1d-9736f8563c9b", + "metadata": {}, + "source": [ + "- **列举法**:把集合里的所有元素一一列举出来,并用 ${}$ 括起来表示集合的方法。如:$\\{a, b\\}$\n", + "- **描述法**:无法用列举法表示的无穷个元素的集合,利用集合中元素的共同特征来表示的方法。如:$\\{x\\in{R} \\mid x<10\\}$ 或 $\\{ x \\in {R} \\mid x^2 + 1 > 0 \\} $" + ] + }, + { + "cell_type": "markdown", + "id": "ca3ad530-1eb8-4a5c-b130-fbf1a1694249", + "metadata": {}, + "source": [ + "#### 集合的关系" + ] + }, + { + "cell_type": "markdown", + "id": "1441719b-920d-4de5-9c2a-3bf28ed45e1d", + "metadata": {}, + "source": [ + "##### 子集\n", + "\n", + "对于两个集合A和B,如果集合A中任意一个元素都是B中的元素,则称集合A为B的子集。记作:$A\\subseteq{B}$ 或 $B\\supseteq{A}$\n", + "\n", + "韦恩图(Venn):平面上封闭曲线的内部代表集合。子集韦恩图:\n" + ] + }, + { + "cell_type": "markdown", + "id": "66fd3d2c-6512-4677-953d-77ea6792f314", + "metadata": {}, + "source": [ + "##### 真子集\n", + "\n", + "如果集合 $A\\subseteq{B}$,但存在元素 $x\\subset{B}$,且 $x\\notin{A}$ 则称集合A是集合B的真子集(propersubset)。记作:$A \\subseteqq B$ 或 $B\\supseteqq{A}$" + ] + }, + { + "cell_type": "markdown", + "id": "414cdbb9-f210-4952-a3cc-64751b44b255", + "metadata": {}, + "source": [ + "##### 空集\n", + "\n", + "不包含任何元素的集合叫空集(empty set)。记作:$\\emptyset$" + ] + }, + { + "cell_type": "markdown", + "id": "168a1dbc-e609-4700-96ab-59bc5b22f24b", + "metadata": {}, + "source": [ + "#### 集合的基本运算" + ] + }, + { + "cell_type": "markdown", + "id": "58aa0375-5b2f-4dc0-83c4-b6c3cea1b05b", + "metadata": {}, + "source": [ + "##### 交集\n", + "\n", + "由属于集合 $A$ 且属于集合 $B$ 的元素组成的集合,称为集合 $A$ 与 $B$ 的交集(intersection set),记作:$A\\cap{B}$。即: $A\\cap{B}=\\{x\\mid x \\in{A}, 且x\\in{B}\\}$" + ] + }, + { + "cell_type": "markdown", + "id": "76ebb815-5dcd-48af-a4f5-99b8666780ae", + "metadata": {}, + "source": [ + "##### 并集\n", + "\n", + "由所属集合 $A$ 及所属集合 $B$ 的元素组成的集合,称为集合 $A$ 与 $B$ 的并集(union set),记作:$A\\cup{B}$。即:$A\\cup{B}=\\{x \\mid x\\in{A},或x\\in{B}\\}$" + ] + }, + { + "cell_type": "markdown", + "id": "6def6b84-94ac-4de9-866f-2b24627edec1", + "metadata": {}, + "source": [ + "##### 补集\n", + "\n", + "补集是指在全集中不属于某个集合的所有元素组成的集合。对于一个集合,由全集$U$中不属于集合$A$的所有元素组成的集合称为集合$A$相对于全集$U$的补集(complementary set),记作:$\\complement_U A$,即:$\\complement_U A=\\{x \\mid x \\in{U},且 x \\notin{A}\\}$" + ] + }, + { + "cell_type": "markdown", + "id": "4b5f62c6-83f4-4e4e-bff4-875e5b803c0a", + "metadata": {}, + "source": [ + "##### 全集\n", + "\n", + "一个集合包含研究问题中涉及的所有元素,则该集合为全集(universe set),记作$U$。" + ] + }, + { + "cell_type": "markdown", + "id": "4ae1dc6d-6af4-4ed3-b412-0261078ed83a", + "metadata": {}, + "source": [ + "#### 差集\n", + "\n", + "差集是指两个集合中,属于第一个集合但不属于第二个集合的所有元素组成的集合。如果用集合 $A$ 和集合 $B$ 来表示,那么 $A$ 和 $B$ 的差集可以表示为 $A \\setminus B$ 或者 $A−B$,它包含了所有属于 $A$ 但不属于 $B$ 的元素。" + ] + }, + { + "cell_type": "markdown", + "id": "78159437-262e-4f1e-873e-30501e26aee1", + "metadata": {}, + "source": [ + "### 充要条件" + ] + }, + { + "cell_type": "markdown", + "id": "5aa69ee9-0a0f-415a-8ef0-1a95dd0d8aba", + "metadata": {}, + "source": [ + "#### 真命题\n", + "\n", + "若 $p$,则 $q$,即由 $p$ 可以推出 $q$,记作:$p \\Rightarrow q$\n", + "\n", + "- $p$ 是 $q$ 的充分条件(sufficient condition)\n", + "- $q$ 是 $p$ 的必要条件(necessary condition)\n" + ] + }, + { + "cell_type": "markdown", + "id": "704a79a2-fc86-4658-a9dd-d6367360b04b", + "metadata": {}, + "source": [ + "#### 假命题\n", + "\n", + "若 $p$,不能得出 $q$,即由 $p$ 不能得出结论 $q$。记作:$p \\nRightarrow q$。" + ] + }, + { + "cell_type": "markdown", + "id": "2b3aa16c-752e-4cbd-abf3-a931275fe0df", + "metadata": {}, + "source": [ + "#### 逆命题\n", + "\n", + "“若 $p$,则 $q$” 中的条件 $p$ 和结论 $q$ 互换,得到一个新的命题 “若 $q$,则 $p$”,则该命题为原命题的逆命题。" + ] + }, + { + "cell_type": "markdown", + "id": "039b35e2-8d8c-4384-8be1-1e1b0caa96b4", + "metadata": {}, + "source": [ + "#### 充要条件\n", + "\n", + "“若 $p$,则 $q$” 中的条件 $p$ 和结论 $q$ 互换,得到一个新的命题 “若 $q$,则 $p$”,均为真命题,即:$p \\Leftarrow q$,又 $q \\Rightarrow p$,记作:$p \\Leftrightarrow q$。\n", + "\n", + "此时 $p$ 即是 $q$ 的充要条件,也是 $q$ 的必要条件,则说 $p$ 是 $q$ 的充分必要条件,简称充要条件(sufficient adn necessary condition)\n" + ] + }, + { + "cell_type": "markdown", + "id": "c0187acd-e488-45c9-8be4-88d71af4e343", + "metadata": {}, + "source": [ + "#### 全称量词\n", + "\n", + "短语 “所有的”、“任意一个” 在逻辑中通常叫做全称量词(universal proposition)。用符号:$\\forall$ (一个倒写的字母 A)表示。它表示“对所有的”或“对任意的”。在数学逻辑中,全称量词用来表达某个属性对某个集合中的所有元素都成立。含有全称量词的命题称为全称量词命题(universal proposition)。\n", + "\n", + "对于 $M$ 中任意一个 $x$, $p(x)$ 成立,记作:$\\forall x \\in{M},\\ p(x)$\n", + "\n", + "对所有自然数n,n都大于或等于0,记作:$\\forall n \\in \\mathbb{N},\\ n \\geq 0$" + ] + }, + { + "cell_type": "markdown", + "id": "6e5d7226-881c-4ae6-9757-5d06d25bbec9", + "metadata": {}, + "source": [ + "#### 存在量词\n", + "\n", + "短语 “存在一个”,“至少有一个”在逻辑中通常叫做存在量词(existential quantifier),用符号:$\\exists$(一个正写的字母 E)表示。含有存在量词的命题称为存在量词命题(existential proposition)。\n", + "\n", + "存在 $M$ 中的元素 $x$,$p(x)$ 成立,记作:$\\exists x\\in {M},\\ p(x)$\n", + "\n", + "表示存在至少一个自然数n,它是偶数,记作:$\\exists n \\in \\mathbb{N},\\ n \\text{是偶数}$" + ] + }, + { + "cell_type": "markdown", + "id": "3b189706-3db7-4842-8992-1f603f7d4fde", + "metadata": {}, + "source": [ + "#### 全称量词的否定\n", + "\n", + "全称量词的否定的含义是:并非所有的元素都具有某种性质。换句话说,至少有一个元素不具有这种性质。否定符号 “$\\neg$” 可以用命令 \\neg 来表示。\n", + "\n", + "\n", + "全称量词 $\\forall x \\in {M}, p(x)$ 的否定表示:\n", + "\n", + "$$\n", + "\\exists x \\in {M}, \\neg p(x)\n", + "$$\n", + "\n", + "对于表达式: $\\exists x \\in M, \\neg p(x)$ 表示存在至少一个元素 $x$ 在集合 $M$ 中,使得命题 $p(x)$ 不成立。这里的 “$\\neg$” 是逻辑非操作符,表示对 $p(x)$ 的否定。" + ] + }, + { + "cell_type": "markdown", + "id": "2a4c5c58-7a1b-46bd-9936-33303bc22b15", + "metadata": {}, + "source": [ + "#### 存在量词的否定\n", + "\n", + "存在量词的否定意味着原本断言存在的元素实际上并不存在。在逻辑学中,如果一个命题声称“存在某个特定的条件或属性被至少一个元素所满足”(即 $\\exists x\\ p(x)$),那么这个命题的否定就是“对于所有的元素,这个条件或属性都不被满足”(即 $\\forall x\\ \\neg p(x)$)。\n", + "\n", + "用更通俗的话来说,如果有人说:“至少有一个人会通过这个考试”,那么这句话的否定就是:“没有人会通过这个考试”。换句话说,存在量词的否定是说没有任何一个元素能够满足原本被声称的条件。\n", + "\n", + "存在量词 $\\exists x \\in M,\\ p(x)$ 的否定表示:\n", + "\n", + "$$\n", + "\\forall x \\in M,\\ p(x)$\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "08eba427-e281-49fb-8528-d89837c5da31", + "metadata": {}, + "source": [ + "### 函数" + ] + }, + { + "cell_type": "markdown", + "id": "d8e98c8d-deef-451a-bace-f7cb9e595d6a", + "metadata": {}, + "source": [ + "函数是刻画变量之间对应关系的数学模型和工具。\n", + "\n", + "设 $A$ , $B$ 是非空的实数集,如果对于集合 $A$ 中的任意一个数 $x$,按照某种确定的对应关系 $f$, 在集合 $B$ 中都有唯一确定的数 $y$ 和它对应,则称$f: a→B$ 为从集合 $A$ 到 $B$ 的一个函数(function)。记作:$y=f(x),x \\in A$\n", + "\n", + "其中:\n", + "\n", + "- $x$: 自变量\n", + "- $x$ 的取值范围叫做函数的定义域(domain)\n", + "- 与 $x$ 值对应的 $y$ 值叫做函数值,也是函数的值域(range)。即 $\\{f(x) \\mid x \\in A\\}$\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "8e01d928-cedd-49ae-8316-a3063e206409", + "metadata": {}, + "source": [ + "#### 开闭区间\n", + "\n", + "研究函数时常会用到区间的概念,设$a$, $b$ 是两个实数,而且 $a" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# 定义函数\n", + "def f(x):\n", + " return np.sin(x)\n", + "\n", + "# 生成x值\n", + "x = np.linspace(-np.pi, np.pi, 100)\n", + "\n", + "# 计算y值\n", + "y = f(x)\n", + "\n", + "# 绘制函数图像\n", + "plt.plot(x, y)\n", + "\n", + "# 添加标题和标签\n", + "plt.title('Sine Wave')\n", + "plt.xlabel('x')\n", + "plt.ylabel('f(x)')\n", + "\n", + "# 显示网格\n", + "plt.grid(True)\n", + "\n", + "# 显示图像\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "1c5064f6-bda6-4547-bf3a-2b494fc4b85e", + "metadata": {}, + "source": [ + "#### 单调性与最大值、最小值\n", + "\n", + "- 单调性:$\\text{ 利用函数图像研究函数值随自变量的增大而增大(或减少)的性质叫函数的单调性}$\n", + "- 单调递增:$\\text{设函数 } f(x) \\text{ 的定义域为 } I \\text{,区间 } D \\text{ 是 } I \\text{ 的真子集。如果 } \\forall x_1, x_2 \\in D \\text{,当 } x_1 < x_2 \\text{ 时,都有 } f(x_1) \\leq f(x_2) \\text{,那么就称函数 } f(x) \\text{ 在区间 } D \\text{ 上单调递增}$\n", + "- 增函数:$\\text{当函数} f(x) \\text{在它的定义域上单调递增时,我们就称它是增函数(increase function)}$\n", + "- 单调递减:$\\text{设函数} f(x) \\text{的定义域为} I ,区间 D 是 I 的真子集。如果\\forall x_1, x_2 \\in D,当x_1 > x_2时, 都有 f(x_1) > f(x_2),那么就称函数f(x)在区间D上单调递减$\n", + "- 减函数:$当函数f(x)在它的定义域上单调递减时,我们就称它是减函数(increase function)$\n", + "- 单调区间:$如果函数y=f(x)在区间D上单调递增或单调递减, 那么就说函数y=f(x)在这一区间具有(严格的)单调性,区间D叫做y=f(x)的单调区间$\n", + "- 最大值: $设函数y=f(x)的定义域为I,如果存在实数M满足 (1) \\forall x \\in I ,都有f(x)≤M; (2)\\exists x_0 \\in I,使得f(x_0)=M 则M是函数y=f(x)的最大值( maximum value)$\n", + "- 最小值: $设函数y=f(x)的定义域为I,如果存在实数M满足 (1)\\forall x \\in I ,都有f(x)>=M; (2)\\exists x_0 \\in I,使得f(x_0)=M 则M是函数y=f(x)的最小值( minimum value)$\n" + ] + }, + { + "cell_type": "markdown", + "id": "54d0b3e3-17a4-4b52-acae-5fb35333b8ee", + "metadata": {}, + "source": [ + "#### 奇偶性\n", + "\n", + "- 偶函数(even function):$设函数f(x)的定义域为I, 如果\\forall x \\in I,都有-x \\in I, 且f(-x)=f(x),那么函数f(x)就叫做偶函数(even function)$\n", + "\n", + "- 奇函数(odd function):$设函数f(x)的定义域为I, 如果x \\in I,都有-x \\in I, 且f(-x)=-f(x), 那么函数f(x)就叫做奇函数( odd function)$\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "768436ff-3017-45a3-93fa-ce7b87ff509c", + "metadata": {}, + "source": [ + "#### 幂函数\n", + "\n", + "幂函数是指形如 $ f(x) = x^a $ 的函数,其中 $ a $ 是一个常数,$ x $ 是变量。幂函数的特点是底数是变量,指数是常数。例如,$ y = x^2 $,$ y = x^3 $ 等都是幂函数。" + ] + }, + { + "cell_type": "markdown", + "id": "cb73ce6d-7aca-4187-a4d4-457193aa5db1", + "metadata": {}, + "source": [ + "#### 指数函数" + ] + }, + { + "cell_type": "markdown", + "id": "0de7495c-e77a-4279-8736-5fe00a2889a3", + "metadata": {}, + "source": [ + "##### 指数(Exponentiation)" + ] + }, + { + "cell_type": "markdown", + "id": "c9a9099a-2c5b-404f-aab1-e502081dabce", + "metadata": {}, + "source": [ + "指数是数学中的一个概念,表示一个数(称为底数)自乘的次数。指数通常写在底数的右上角,例如 $ a^n $,其中 $ a $ 是底数, $ n $ 是指数。指数运算可以定义为:\n", + "\n", + "$ a^n = \\underbrace{a \\times a \\times \\cdots \\times a}_{n \\text{ 次}} $\n", + "\n", + "其中 $ a $ 是任意实数,$ n $ 是正整数。如果 $ n = 0 $,则 $ a^0 = 1 $(对于 $ a \\neq 0 $)。如果 $ n $ 是负整数,则 $ a^n = \\frac{1}{a^{-n}} $。\n", + "\n", + "例如:\n", + "- $ 2^3 = 2 \\times 2 \\times 2 = 8 $\n", + "- $ 10^{-2} = \\frac{1}{10^2} = \\frac{1}{100} $" + ] + }, + { + "cell_type": "markdown", + "id": "522bafc2-f177-44cb-9a52-cbb662767fdb", + "metadata": {}, + "source": [ + "##### 指数函数\n", + "\n", + "指数函数是指形如 $ f(x) = a^x $ 的函数,其中 $ a $ 是一个大于0且不等于1的常数,$ x $ 是变量。指数函数的特点是底数是常数,指数是变量。例如,$ y = 2^x $,$ y = e^x $ 等都是指数函数。\n" + ] + }, + { + "cell_type": "markdown", + "id": "5df32dd7-5258-4a08-b925-de6e2420ddbf", + "metadata": {}, + "source": [ + "##### $n$次方根" + ] + }, + { + "cell_type": "markdown", + "id": "c06d16f9-8e7e-46ad-a768-96fa75c3a425", + "metadata": {}, + "source": [ + "如果 $x^n=a$,则 $x$ 叫做 $a$ 的 $n$ 次方根,其中$ n>1$ 且 $n \\in N$。$a$ 的 $n$ 次方根用符号:$\\sqrt[n]{a}$ 表示\n", + "\n", + "$\\sqrt[n]{a}$ 叫根式(radical),$n$ 为根指数,$a$ 叫被开 $n$ 次方。\n", + "\n", + "$n$ 为奇数、偶数时 $n$ 次方根计算:\n", + "\n", + "- 当 $n$ 是奇数时, 正数的 $n$ 次方根是一个正数, 负数的 $n$ 次方根是一个负数. 这时, $a$ 的 $n$ 次方根用符号表示 $\\sqrt[n]{a}$\n", + "\n", + "- 当 $n$ 是偶数时, 正数的 $n$ 次方根有两个, 这两个数互为相反数. 正数 $a$ 的正的 $n$ 次方根用符号 $\\sqrt[n]{a}$ 表示, 负的 $n$ 次方根用符号$-\\sqrt[n]{a}$表示, 正的 $n$ 次方根与负的 $n$ 次方根可以合并写成$\\pm \\sqrt{a}(a>0)$." + ] + }, + { + "cell_type": "markdown", + "id": "fdb3420d-bd29-4a79-aacb-092fa1c81d03", + "metadata": {}, + "source": [ + "负数没有偶次方根。0的任何次方根都是0,记作0=0." + ] + }, + { + "cell_type": "markdown", + "id": "80146865-432e-43aa-b173-292752290fb4", + "metadata": {}, + "source": [ + "**性质**\n", + "\n", + "1. $(\\sqrt[n]{a})^n = a$" + ] + }, + { + "cell_type": "markdown", + "id": "3e55b783-0eb9-4a6d-b896-e1b6c6271fd3", + "metadata": {}, + "source": [ + "2. $\\sqrt[n]{a^m} = a^{\\frac{m}{n}}( a> 0, m, n \\in N, n > 1)$" + ] + }, + { + "cell_type": "markdown", + "id": "e07232eb-af74-462a-b138-186a58261dd7", + "metadata": {}, + "source": [ + "3. $\\frac{1}{\\sqrt[n]{a^m}} = a^{-\\frac{m}{n}}(a > 0, m, n \\in N, n>1)$" + ] + }, + { + "cell_type": "markdown", + "id": "715cadae-52ac-418f-9111-73fc07657889", + "metadata": {}, + "source": [ + "4. 0的正分数指数幂为0,0的负分数指数幂没有意义" + ] + }, + { + "cell_type": "markdown", + "id": "4f3ca122-df5b-4fc9-814a-82f8ae672b77", + "metadata": {}, + "source": [ + "5. $a^ra^s = a^{r+s}(a >0, r,s \\in R)$" + ] + }, + { + "cell_type": "markdown", + "id": "74bcb352-4a7e-4c8c-a872-3de2e1d06c3b", + "metadata": {}, + "source": [ + "6. $(a^r)^s = a^{rs}(a >0, r,s \\in R)$" + ] + }, + { + "cell_type": "markdown", + "id": "07271041-3b68-45ea-a306-1da51909d3ee", + "metadata": {}, + "source": [ + "7. $(ab)^r = a^rb^r(a>0, b>0, r \\in R)$" + ] + }, + { + "cell_type": "markdown", + "id": "b6f03723-f10e-488b-836a-3b72d874eb8d", + "metadata": {}, + "source": [ + "**指数函数乘除**\n", + "\n", + "同底数幂相除,底数不变,指数相减。\n", + "\n", + "$$\n", + "a^m \\div a ^n=a^{m−n}\n", + "$$\n", + "\n", + "同底数幂相乘,底数不变,指数相加。\n", + "\n", + "$$\n", + "a^m \\times a^n=a^{m+n}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "565fd55c-d771-49e0-8d3c-157ea181d405", + "metadata": {}, + "source": [ + "#### 对数函数" + ] + }, + { + "cell_type": "markdown", + "id": "52f96949-0aea-4e2c-97b8-1e87df1df4e7", + "metadata": {}, + "source": [ + "##### 对数" + ] + }, + { + "cell_type": "markdown", + "id": "cb9ab9ef-8ce6-4ef5-9f72-874581e72b79", + "metadata": {}, + "source": [ + "对数是指数的逆运算,它回答了这样的问题:“要将底数提高到什么幂次才能得到某个特定的数?”。如果 $ a^x = y $,那么 $ x $ 就是以 $ a $ 为底 $ y $ 的对数,记作 $ \\log_a(y) = x $。\n", + "\n", + "对数的定义可以写成:\n", + "$ \\log_b(y) = x \\iff b^x = y $\n", + "\n", + "其中 $ y $ 是底数,$ y $ 是真数,$ x $ 是对数值。对数的底数可以是任何正实数,但通常底数为10的对数称为常用对数($ \\log_{10} $),底数为 $ e $(自然对数的底数,约等于2.71828)的对数称为自然对数($\\ln $),底数为2的对数是$\\log_2$。\n", + "\n", + "例如:\n", + "- $ \\log_{10}(100) = 2 $,因为 $ 10^2 = 100 $\n", + "- $ \\ln(e) = 1 $,因为 $ e^1 = e $\n", + "\n", + "对数有一些重要的性质,包括:\n", + "- 负数与0没有对数\n", + "- $ \\log_a{1} = 0 $, $\\ \\log_a{a} = 1 $\n", + "- $ \\log_a{MN} = \\log_a{M} + \\log_b{N} $\n", + "- $ \\log_a\\left(\\frac{M}{N}\\right) = \\log_a(M) - \\log_a(N) $\n", + "- $ \\log_a(M^n) = n \\log_a(M) $\n", + "- 换底公式:$\\log_a{b} = \\frac{\\log_c{b}}{\\log_c{a}}\\ \\ $($a>0且a \\neq 1; b > 0; c> 0 且 c\\neq 1)$" + ] + }, + { + "cell_type": "markdown", + "id": "1c262eb7-51f8-4336-8d1d-b91981a57f03", + "metadata": {}, + "source": [ + "如果 $a^x=N$($a>0$且$a \\ne 1$),那么数$x$叫做以$a$为底$N$的对数(logarithm),记作:$x=\\log_a{N}$。其中$a$为对数的底数,$N$为真数。\n", + "\n", + "- 常用对数:common logarithm, 以10为底的对数,即$log_{10}{N}$,简写为:$lgN$\n", + "- 自然对数:natural logarithm, 以科技、经济、生活中常用的无理数$e=2.71828..$为底数的对象,即$log_{e}{N}=ln{N}(N>0)$\n", + "- 计算机以2为底的对数:$log_{2}{N}=lg{N}$" + ] + }, + { + "cell_type": "markdown", + "id": "b9634af7-aebf-41d8-896a-8c218437e22f", + "metadata": {}, + "source": [ + "##### 指数与对数的关系" + ] + }, + { + "cell_type": "markdown", + "id": "05215e9f-05d3-4927-814f-4a3ab1c9a6bc", + "metadata": {}, + "source": [ + "互为逆运算关系。\n", + "- 指数关系:$a^y = x$,此时a是底数, y是指数\n", + "- 对数关系:$\\log_a(x) = y$, 此时a是底数,x是对数\n", + "\n", + "即$a$ 是底数,$x$ 是指数运算的结果(或对数的真数),$y$ 是指数(或对数的结果)。" + ] + }, + { + "cell_type": "markdown", + "id": "9ad19bae-3424-40bb-9b24-cf2f8d4752fe", + "metadata": {}, + "source": [ + "#### 反函数" + ] + }, + { + "cell_type": "markdown", + "id": "1f5149e5-0f89-42c2-ac5c-94f7ed927983", + "metadata": {}, + "source": [ + "如果存在一个函数 $ f $ 将集合 $ A $ 中的元素映射到集合 $ B $ 中的元素,即 $ f: A \\rightarrow B $,那么反函数就是将这个过程逆转,将集合 $ B $ 中的元素映射回集合 $ A $ 中的元素,即 $ f^{-1}: B \\rightarrow A $。\n", + "\n", + "反函数存在的条件是原函数 $ f $ 必须是双射的,即:\n", + "\n", + "1. **单射(Injective)**:函数 $ f $ 是单射的,意味着集合 $ A $ 中的每个元素都映射到集合 $ B $ 中的唯一元素,没有两个不同的 $ A $ 中的元素映射到 $ B $ 中的同一个元素。\n", + "\n", + "2. **满射(Surjective)**:函数 $ f $ 是满射的,意味着集合 $ B $ 中的每个元素至少有一个 $ A $ 中的元素映射到它。\n", + "\n", + "只有当函数 $ f $ 既是单射又是满射时,它才是双射的,这时才存在反函数。\n", + "\n", + "反函数的性质包括:\n", + "\n", + "- **唯一性**:如果一个函数有反函数,那么这个反函数是唯一的。\n", + "- **复合性**:如果 $ f $ 和 $ g $ 是反函数,那么 $ f(g(x)) = x $ 和 $ g(f(x)) = x $ 对于所有 $ x $ 在定义域内都成立。\n", + "- **逆运算**:反函数可以看作是原函数的逆运算。比如 $x=log_a{b},y∈(0,1]$是函数$y=a^x,x∈ [0,+∞) $的反函数。" + ] + }, + { + "cell_type": "markdown", + "id": "e31d3c88-5398-40d2-bd94-c7eea4d74217", + "metadata": {}, + "source": [ + "#### 三角函数" + ] + }, + { + "cell_type": "markdown", + "id": "5352443b-7cfd-43d4-9d7c-b98eace46d37", + "metadata": {}, + "source": [ + "##### 正弦函数(Sine Function,sin)\n", + "\n", + "\n", + "$y=\\sin{x},\\ x \\in [0, 2\\pi] \\ , y \\in [-1, 1]$\n", + "\n", + "\n", + "**定义:**\n", + "- **直角三角形定义:** 在直角三角形中,对于一个锐角 $ \\theta $,正弦值定义为对边长度与斜边长度的比值,即 $ \\sin(\\theta) = \\frac{\\text{对边}}{\\text{斜边}} $。\n", + "- **单位圆定义:** 在单位圆(半径为1的圆)上,对于任意角度 $ \\theta $(以弧度为单位),正弦值是终边与单位圆相交点的y坐标。\n", + "\n", + "示意图:\n", + "![](https://static.cyub.vip/images/202411/sin_gif.png)\n", + "\n", + "示意图来源:https://www.geogebra.org/m/YEnGXvQu\n", + "\n", + "**性质:**\n", + "- 正弦函数是周期函数,周期为 $ 2\\pi $。\n", + "- 正弦函数的值域为 $[-1, 1]$。\n", + "- 正弦函数是奇函数,即 $ \\sin(-\\theta) = -\\sin(\\theta) $。\n", + "\n", + "**注意**:\n", + "\n", + "正弦函数 $\\sin(x)$ 的确是在 $x = 90^\\circ$ 时达到最大值 1。这是因为在直角三角形中,正弦函数定义为对边长度与斜边长度的比值。当角度为 $90^\\circ$ 时,对边长度等于斜边长度,因此比值为 1。\n", + "\n", + "然而,正弦函数通常使用弧度作为输入参数。弧度和角度之间的转换关系是 $180^\\circ = \\pi$ 弧度。因此,$90^\\circ$ 相当于 $\\frac{\\pi}{2}$ 弧度。\n", + "\n", + "所以,当使用弧度作为单位时,正弦函数在 $x = \\frac{\\pi}{2}$ 时达到最大值 1。这与角度制下的 $90^\\circ$ 是一致的,因为 $90^\\circ = \\frac{\\pi}{2}$ 弧度。\n", + "\n", + "总结来说,无论是使用角度还是弧度,正弦函数都是在 $90^\\circ$(或 $\\frac{\\pi}{2}$ 弧度)时达到最大值 1。" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f79cd269-ce86-4e69-a29e-9fda7f177930", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAscAAAINCAYAAADShdL8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACHYElEQVR4nOzdeVxU9f7H8dfMsAuIKKsiuO/7gphZuWeZZtlmmVZWli3Xlpv9yrK6Wd32MtvTSrNVb4uZqKmpuO/7Lm6AiuwCAzO/P0CSFEQEzszwfj4ePB7Ome+c8z5fx/Ezh+/5fk12u92OiIiIiIhgNjqAiIiIiIijUHEsIiIiIlJIxbGIiIiISCEVxyIiIiIihVQci4iIiIgUUnEsIiIiIlJIxbGIiIiISCEVxyIiIiIihdyMDuAKbDYbR48exc/PD5PJZHQcEREREfkHu91Oeno64eHhmM0lXx9WcVwBjh49SkREhNExREREROQCDh06RL169Up8XsVxBfDz8wMKOtvf37/Sj2e1Wpk3bx79+vXD3d290o9XXamfK5/6uGqon6uG+rnyqY+rhqv2c1paGhEREUV1W0lUHFeAM0Mp/P39q6w49vHxwd/f36XetI5G/Vz51MdVQ/1cNdTPlU99XDVcvZ8vNARWN+SJiIiIiBRScSwiIiIiUkjFsYiIiIhIIY05FhERkWrLbreTl5dHfn6+0VEchtVqxc3NjezsbKfqF4vFgpub2yVPq6viWERERKql3Nxcjh07RlZWltFRHIrdbic0NJRDhw453foNPj4+hIWF4eHhUe59qDgWERGRasdms7F//34sFgvh4eF4eHg4XSFYWWw2GxkZGfj6+pa6WIYjsdvt5Obmcvz4cfbv30+TJk3KnV3FsYiIiFQ7ubm52Gw2IiIi8PHxMTqOQ7HZbOTm5uLl5eU0xTGAt7c37u7uHDx4sCh/eTjPGYuIiIhUMGcq/uTCKuLvU+8IEREREZFCKo5FREREpNxMJhOzZ8++6NfdcccdvPzyy2Vu/9RTT/HQQw9d9HEulsYci4iIiEi5HTt2jFq1al3UazZu3MicOXOYMmVKmV/z+OOP07BhQ/71r3/RsGHDi41ZZrpyLCIiIiLlFhoaiqen50W95r333mPYsGH4+vqW+TV16tShf//+F1VQl4eKYxEREREn8eWXX1K7dm1ycnKKbR8yZAh33HFHpRwzNzeXsWPHEhYWhpeXF5GRkUyaNKno+bOHVRw4cACTycRPP/3EVVddhY+PD+3atSMuLq6ofX5+Pj/88AODBg0q2rZjxw58fHyYMWNG0bbvvvsOb29vtm3bVrRt0KBBzJw5s1LO8wynKo6XLFnCoEGDCA8PL/P4lkWLFtGxY0c8PT1p3LgxU6dOPafN5MmTiYqKwsvLi+joaFatWlXx4UVERMSh2e12snLzDPmx2+1lyjhs2DDy8/P5+eefi7YlJSXx22+/cdddd5X4ulatWuHr61viz9VXX13ia999911+/vlnvvvuO3bu3Mn06dOJiooqNef//d//8fjjj7NhwwaaNm3KrbfeSl5eHgCbNm0iNTWVzp07F7Vv3rw5r7/+Og888ADx8fEcPnyY+++/n1dffZWWLVsWtevatSuHDx/mwIEDF+ip8nOqMceZmZm0a9eOu+66i6FDh16w/f79+7nmmmu4//77mT59OgsWLOCee+4hLCyM/v37A/Dtt98ybtw4PvzwQ6Kjo3n77bfp378/O3fuJDg4uLJPSURERBzEaWs+LSf8Ycixt73QHx+PC5dl3t7e3HbbbXzxxRcMGzYMgK+//pr69etz5ZVXlvi6OXPmYLVaS91vSeLj42nSpAk9evTAZDIRGRl5wZyPP/4411xzDQATJ06kVatW7Nmzh+bNm3Pw4EEsFss5ddYDDzzAnDlzuP322/Hw8KBLly7n3IAXHh4OwMGDBy9YoJeXUxXHV199danfbP7pww8/pEGDBrzxxhsAtGjRgqVLl/LWW28VFcdvvvkmo0ePZtSoUUWv+e233/j888956qmnKv4kRERERC7B6NGj6dKlC0eOHKFu3bpMnTqVkSNHlrrCX1kK2pKMHDmSvn370qxZMwYMGMC1115Lv379Sn1N27Zti/4cFhYGFFzhbt68OadPn8bT0/O8eT///HOaNm2K2Wxm69at57Q5U8RX5pLfTlUcX6y4uDj69OlTbFv//v159NFHgYIxNGvXrmX8+PFFz5vNZvr06VNsbIyIM7Hb7aSdziMhLZuUrFyy82zkWPOxmE14u1vw9rBQx9eT0JpeuFucamSViEil8na3sO2F/oYdu6w6dOhAu3bt+PLLL+nXrx9bt27lt99+K/U1rVq14uDBgyU+f/nll/P777+f97mOHTuyf/9+fv/9d+bPn89NN91Enz59+OGHH0rcn7u7e9GfzxS4NpsNKLixLisri9zcXDw8PIq9buPGjWRmZmI2mzl27FhRYX1GcnIyAEFBQaWc7aVx6eI4ISGBkJCQYttCQkJIS0vj9OnTnDp1ivz8/PO22bFjR4n7zcnJKTYQPi0tDQCr1VrqrywqypljVMWxqjNn6Gdrvo0tR9JYdyiFnQnp7EjI4MDJTE5bbRd8rckEwX6eNA32pUWYHy3D/OkaVYsgv4u74/hSOEMfuwL1c9VQP1e+iuxjq9WK3W7HZrMVFW0AXm7GXDSw2+1lHncMcNddd/Huu+9y+PBhevfuTd26dYudxz/9+uuvFxxWceb1Z3Kc6R8AX19fhg0bxrBhwxg6dCgDBw7kxIkTBAYGAhT145n2//zz2dvOXFXesmUL7du3L8qQnJzMyJEjefrppzl27BjDhw9nzZo1xYZ8bNq0CXd3d1q0aHHe87XZbNjtdqxWKxZL8S8cZX3fuHRxXFkmTZrExIkTz9k+b968Kl2fPTY2tsqOVZ05Wj+nW2FzsonNySb2ppnIsZ3/12g13OzUcAN3M7iZwW6HXFvBT2ou5NtNJKblkJiWw197Tha9LtTbTrOadtrVttHAD8wl/5auwjhaH7sq9XPVUD9XvoroYzc3N0JDQ8nIyCA3N7cCUlWta6+9lieffJJPP/2UKVOmFF2oK0lZ5iH+5z7S09OBgokLQkJCaNu2LWazmW+++YaQkBDMZnPRa06fPk1aWhoZGRlAwX1iZ547s5+srCzS0tLw9PSkXbt2zJ8/v9h8xaNHjyY8PJyHHnqInJwcrrjiCh555BFef/31ojYLFiwgJiamxAuSubm5nD59miVLlhTdAHhGWYdiuHRxHBoaSmJiYrFtiYmJ+Pv74+3tjcViwWKxnLdNaGhoifsdP34848aNK3qclpZGREQE/fr1w9/fv2JP4jysViuxsbH07du32K8tpGI5Uj/nWPP5Y1sSP6w7wsr9ydjOurgQ4O1O58gAWoX70zzUj8bBNQj198KrlF/R2Wx2krNyOXTqNDsTMtiekMaGQ6lsT0gn4bSJhNMmFieYCfHz5Jo2odzcuR4Ng2pU+Hk5Uh+7MvVz1VA/V76K7OPs7GwOHTqEr68vXl5eFZSw6vj7+zN06FDmzJnDrbfeetHzDJfGbreTnp6On58fJpOJOnXqMHnyZHbv3o3FYqFLly789ttvBAQEFL3G29sbf3//onmLa9SoUVQTnbnC6+PjU7Rt9OjRfP311zz++ONAwRR1sbGxrF27tuhq9Ndff03Pnj25/vrri+45mz17NhMmTCix3srOzsbb25uePXue8/d6oS8QZ7h0cRwTE8OcOXOKbYuNjSUmJgYADw8POnXqxIIFCxgyZAhQ8Be4YMECxo4dW+J+PT09z/smdHd3r9IPxKo+XnVlZD8npmXz2dL9fLfmEClZf39DbluvJgNah3Jl02Cah/phLsfl3TBPD8Jq+dK14d/jtk5l5hK37yTztyUSuy2RxPQcPl9+kM+XH6R7o9rc2T2Kvi1CynW80ui9XDXUz1VD/Vz5KqKP8/PzMZlMmM1mzGbnvP/i6NGjDB8+vNSZJsrjTDF7pn/uu+8+7rvvvhLbnz0cpGHDhucMDwkMDDxn21133cWrr77KypUriYmJYeTIkYwcObJYm27duhW7qv/7779jNpu56aabSvw7M5vNmEym875HyvqecariOCMjgz179hQ93r9/Pxs2bCAwMJD69eszfvx4jhw5wpdffgnA/fffz/vvv8+TTz7JXXfdxcKFC/nuu++KDVofN24cd955J507d6Zr1668/fbbZGZmFs1eIWKE+JNZfLhkLz+sOUxufsGHVFhNL27uEsENHesREVg5w3dq1fBgYJswBrYJIycvn8U7j/PdmkMs3JHE8r0nWb73JE1DfHngysZc2zYMN93QJyJS5U6dOsWiRYtYtGgRH3zwgdFxysXb25svv/ySEydOlPk1mZmZfPHFF7i5VW756lTF8Zo1a7jqqquKHp8Z2nDnnXcydepUjh07Rnx8fNHzDRo04LfffuNf//oX77zzDvXq1ePTTz8tmsYN4Oabb+b48eNMmDCBhIQE2rdvz9y5c8+5SU+kKpzMyOGt+bv4ZtUh8gvHTnSOrMX9VzTiqubBWKpiAHAhTzcL/VqF0q9VKEdSTjN9xUG+ijvIrsQMHv12A5P/3MPTA1twZbOgUqcPEhGRitWhQwdOnTrFq6++SrNmzYyOU26lzct8PjfeeGPlBPkHpyqOr7zyylLv5Dzf6ndXXnkl69evL3W/Y8eOLXUYhUhly8nLZ+qyA7y/cA/pOQU3EFzepA5jr2pMdMPaBqeDugHePDmgOfdf2Yiv4g7yyV/72J2Uwaipq7mscW3+b2BLWoZX/nh7ERGhUleHEycrjkVc0eoDyfz7x03sO54JQKtwf565piUxjYwviv/J38udB69qzO3dIvngzz18sewAy/acZND7S7mnRwMe7dMUb4+yz9UpIiLiaFQcixgkIyeP1+bu4Mu4gknZg/w8eaJ/M27oWK9Kh0+UR01vd8YPbMHt3SKZ9Pt25mxO4KMl+5i7NYFJ17ehe+M6RkcUEREpFxXHIgZYcyCZR2Zu4EjKaQBu7hzB0wNbUNPHue5wjwj04YPhnYjdlsizs7dw8GQWt326kpHdo3jq6ualTicnIuIILmbhDXF8FfH3qeJYpArl2+xMWbSHt+bvJt9mJyLQm1eGtuUyJ7/S2rdlCN0aBvLq3B18vSKeqcsPsGp/Mu/e2oHGwb5GxxMROceZab2ysrIqfCo0Mc6ZhT4uZao/FcciVSQpPZtHZ25g+d6C1eiGdqjLC0Na4+vpGv8M/bzceWlIG3o1D+bx7zex7Vgag95byktDWnNDp3pGxxMRKcZisRAQEEBSUhJQsECFZt4pYLPZyM3NJTs722nmgLbb7WRlZZGUlERAQMA5S0dfDNf4X1nEwW08lMK9X60hMS0HHw8LLw523YKxV/MQ5j5yOf/6bgPL9pzkse83suVoKv83sIXmRRYRh3JmNdwzBbIUsNvtnD59Gm9vb6f7whAQEFDqKsdloeJYpJLNXn+EJ3/cRG6ejSbBvnx4RycaBbn2UINgfy++uiuadxbs5p0Fu/li2QF2JqQz+baO1KrhYXQ8ERGgYAW4sLAwgoODsVqtF35BNWG1WlmyZAk9e/Z0qtUe3d3dL+mK8RkqjkUqic1m57U/dvLh4r0A9GkRzFs3t8fPy3k+aC6F2WziX32b0iLMn3HfFQwnuW7yUqaO6uryXw5ExLlYLJYKKapchcViIS8vDy8vL6cqjiuKfscpUgly82z867sNRYXxg1c14uM7OlebwvhsA1qH8tMD3akf6MOh5NPcMGU5aw+eMjqWiIjIeak4FqlgGTl53DV1Nf/bcBQ3s4k3b2rHE/2bY3bwuYsrU/NQf2Y90J129WqSkmVl+KcriN2WaHQsERGRc6g4FqlAJzJyuOXjOJbuOYGPh4VP7+zM0I6ueePdxart68k393bjqmZBZFtt3PfVGr5fe8ToWCIiIsWoOBapIMfTc7j14xVsOZJGYA0PvhndjSubBRsdy6H4eLjxyYjO3NS5HjY7PD17K0sTqu8VdRERcTwqjkUqQFJ6Nrd+soLdSRmE+Hvy/f0xtIsIMDqWQ3KzmHn1hrbcdVkDAL7fb2Fq4RLaIiIiRlNxLHKJEtOyueXjFexJyiCsphff3huj2RguwGQy8ey1Lbj38igA/jNnJx8v2WtsKBEREVQci1ySpMLCeN/xTOoGePPtvTFE1alhdCynYDKZeLxvE/rXtQHw8pwdfBl3wNhQIiJS7ak4FimnlKxc7vhsFftPFBTGM+/tRv3aPkbHciomk4mB9W08cEVDACb8bys/rj1scCoREanOVByLlENWbsF0bTsT0wn28+Sb0d2ICFRhXF6P9m7EyO5RADzxw0bmbkkwNpCIiFRbKo5FLlJuno37vlrLuvgUanq789Xd0bpifIlMJhMTrm3JsE4Fs1g8/M16luw6bnQsERGphlQci1yEfJudcd9t4K/dJ/B2t/D5yC40C/UzOpZLMJtNvHJDWwa2CSU338b9X69ly5FUo2OJiEg1o+JY5CK88vt2ft10DHeLiY/u6ESnyFpGR3IpFrOJt2/uQI/GdcjKzeeuqas5knLa6FgiIlKNqDgWKaPpKw/yyV/7AXh9WDt6Ng0yOJFr8nAz88HtHWke6kdSeg53fbGatGyr0bFERKSaUHEsUgZLdh1nwv+2AvBY36YMbl/X4ESuzd/Lnc9HdiHYz5OdiemM+XotuXk2o2OJiEg1oOJY5AJ2Jabz4PR15NvsDO1Yl7G9GhsdqVoID/Dm85Fd8PGwsGzPSZ6ZvRm73W50LBERcXEqjkVKkW6Fe79eT3pOHl0bBDJpaBtMJpPRsaqN1nVrMvm2jphN8N2aw0xbfsDoSCIi4uJUHIuUwJpvY+ouC0dSsmlQpwYf3d4JTzeL0bGqnauaB/P0wBYAvPjbdpbvPWFwIhERcWUqjkVK8Nofu9iTZqKGh4VPRnSiVg0PoyNVW3f3aMD1HeqSb7Pz4PR1HErOMjqSiIi4KBXHIucxe/0RpsbFA/DaDa1pHKy5jI1kMpmYNLQNrev6cyrLyn1freV0br7RsURExAWpOBb5h61HU3nqp00A9Ktro1/LEIMTCYCXu4WP7uhM7RoebDuWxr9/3KQb9EREpMKpOBY5S0pWLvd9tZZsq42eTWpzdYSmD3MkdQO8+WB4R9zMJn7eeJTpK+ONjiQiIi5GxbFIIbvdzhM/bOLwqdPUD/ThzWFtMWtiCocT3bA2Tw5oBsALv27TEtMiIlKhVByLFPpi2QFityXiYTHzwfCO1PR2NzqSlGD05Q3p0yKY3DwbD85YpxX0RESkwqg4FgE2HU5h0u/bAfi/a1rQum5NgxNJaUwmE68Pa0fdAG8OnsziKY0/FhGRCqLiWKq9tGwrY2esx5pvp3+rEEbERBodScogwMeD92/rgLvFxJzNCXwZd9DoSCIi4gJUHEu1ZrfbGf/TZuKTs6hXy5vXbminFfCcSIf6tXjq6oIFQv4zZzs7EtIMTiQiIs5OxbFUa9+vPcxvm47hZjbx3q0dqOmjccbO5q7LoriqWRC5eTYenbmBbKvmPxYRkfJTcSzVVvzJLCb+vBWAcf2a0qF+LYMTSXmYTCZeu7EdtWt4sCMhndf/2Gl0JBERcWIqjqVayrfZGffdBjJz8+kaFch9PRsZHUkuQZCfJ6/d2BaAT5fuZ+nuEwYnEhERZ6XiWKqlDxfvZc3BU/h6uvHGTe2waEJjp9e7RQjDo+sD8Nj3GziVmWtwIhERcUYqjqXa2XIklbdidwHw3KCWRAT6GJxIKsoz17SkYVANEtNyeHrWZk3vJiIiF03FsVQr2dZ8Hv12A3k2OwNahXJjp3pGR5IK5O1h4Z2bO+BmNvH7lgRmrT9idCQREXEyKo6lWnlt7k72JGUQ5OfJy0PbaNo2F9SmXk0e7dMEgIm/bCMpLdvgRCIi4kxUHEu1sfZgMl8s3w/Aaze0JbCGh8GJpLLcf0Uj2tStSeppK0/P2qLhFSIiUmZOVxxPnjyZqKgovLy8iI6OZtWqVSW2vfLKKzGZTOf8XHPNNUVtRo4cec7zAwYMqIpTkSqUbc3niR82YbfDjZ3qcVXzYKMjSSVys5j577C2uFtMzN+eyM8bjxodSUREnIRTFcfffvst48aN47nnnmPdunW0a9eO/v37k5SUdN72P/30E8eOHSv62bJlCxaLhWHDhhVrN2DAgGLtvvnmm6o4HalC7yzYzb7jmQT5efLsNS2NjiNVoHmoPw/1Khhe8dzPW0lK1/AKERG5MKcqjt98801Gjx7NqFGjaNmyJR9++CE+Pj58/vnn520fGBhIaGho0U9sbCw+Pj7nFMeenp7F2tWqpcUgXMmmwyl8vGQfAP8Z0lqr4FUjY65sRMswf1KyrDyj4RUiIlIGbkYHKKvc3FzWrl3L+PHji7aZzWb69OlDXFxcmfbx2Wefccstt1CjRo1i2xctWkRwcDC1atWiV69evPTSS9SuXbvE/eTk5JCTk1P0OC0tDQCr1YrVar2Y0yqXM8eoimM5u9w8G098v5F8m51r2oRyVdPaZe439XPlq4o+fuX6Vgz9cAXztiUye90hrm0bVmnHclR6L1cN9XPlUx9XDVft57Kej8nuJJdSjh49St26dVm+fDkxMTFF25988kkWL17MypUrS339qlWriI6OZuXKlXTt2rVo+8yZM/Hx8aFBgwbs3buXp59+Gl9fX+Li4rBYLOfd1/PPP8/EiRPP2T5jxgx8fDRnriP5/ZCJuYct+LrZGd8+H19dNK6WzrwParjZ+b/2+dTQ+0BEpNrJysritttuIzU1FX9//xLbOc2V40v12Wef0aZNm2KFMcAtt9xS9Oc2bdrQtm1bGjVqxKJFi+jdu/d59zV+/HjGjRtX9DgtLY2IiAj69etXamdXFKvVSmxsLH379sXdXf/Ll2R3YgaPr4oD7PxnaDsGtgm9qNernytfVfVxnzwbe6fEsTspk3W2SCYNbFVpx3JEei9XDfVz5VMfVw1X7eczv+m/EKcpjuvUqYPFYiExMbHY9sTEREJDSy96MjMzmTlzJi+88MIFj9OwYUPq1KnDnj17SiyOPT098fT0PGe7u7t7lb6Jqvp4zsRms/Pcr9ux5tvp0yKE6zrUK/ecxurnylfZfezuDpOGtuXGD+P4Yd0RbuwcQbeGJQ+dclV6L1cN9XPlUx9XDVfr57Kei9PckOfh4UGnTp1YsGBB0TabzcaCBQuKDbM4n++//56cnBxuv/32Cx7n8OHDnDx5krCw6jcu0ZV8v/YQqw+cwsfDwguDW2mxD6FzVCC3dq0PwNOzNpOTl29wIhERcUROUxwDjBs3jk8++YRp06axfft2xowZQ2ZmJqNGjQJgxIgRxW7YO+Ozzz5jyJAh59xkl5GRwRNPPMGKFSs4cOAACxYsYPDgwTRu3Jj+/ftXyTlJxTuZkcOk33cAMK5vU8IDvA1OJI7iqQHNqePryb7jmXy4aJ/RcURExAE5zbAKgJtvvpnjx48zYcIEEhISaN++PXPnziUkJASA+Ph4zObi9f7OnTtZunQp8+bNO2d/FouFTZs2MW3aNFJSUggPD6dfv368+OKL5x02Ic7hP3O2k5JlpUWYPyO7RxkdRxxITR93JgxqycPfrGfyn3u4tl0YjYJ8jY4lIiIOxKmKY4CxY8cyduzY8z63aNGic7Y1a9asxLlNvb29+eOPPyoynhhs+d4T/LTuCCYTvHx9a9wsTvXLEakCg9qG8ePawyzedZz/m7WZb0Z307AbEREpospBXEZOXj7PzN4CwPDo+nSor8Vc5Fwmk4mXhrTGy93Min3JzFp/xOhIIiLiQFQci8v4ePG+oiWin+jf3Og44sAiAn2KlpZ+ec4O0rNda6J7EREpPxXH4hIOn8ri/T/3APDMNS2o6e06U89I5bjn8gY0qFODExk5vDN/t9FxRETEQag4Fpfw8pzt5OTZ6NYwkOvahRsdR5yAp5uF5wa1BGDq8gPsTkw3OJGIiDgCFcfi9JbvOcGczQmYTfD8dZrTWMruymbB9G0ZQp7NzvO/bC3x5l0REak+VByLU7Pm23j+l60A3NEtkuahlb98t7iWCde2xMPNzLI9J/l9S4LRcURExGAqjsWpfRV3kF2JGdTycWdc32ZGxxEnFBHow/1XNALgpV+3kZWbZ3AiERExkopjcVonMnJ4a/4uAJ7o35yaProJT8pnzBWNqBvgzdHUbD74c6/RcURExEAqjsVp/XfuTtKz82hd15+bu0QYHUecmLeHhWevLbg57+Ml+zhwItPgRCIiYhQVx+KUNh5K4bu1hwCYeF0rLGbdhCeXpn+rEC5vUofcfBuTft9udBwRETGIimNxOna7nYm/bMVuh6Ed6tIpMtDoSOICTCYTE65ticVs4o+ticTtPWl0JBERMYCKY3E6v20+xrr4FHw8LPz7aq2EJxWnSYgft3YtGKLz0m/bsNk0tZuISHWj4licSrY1n1fn7gDgvp6NCPH3MjiRuJp/9WmKn6cbW4+m8dP6I0bHERGRKqbiWJzKtOUHOJR8mhB/T0b3bGB0HHFBtX09GdurMQD//WOHpnYTEalmVByL00jOzOX9P/cABVO3+Xi4GZxIXNWd3aOICPQmMS2HjxbvMzqOiIhUIRXH4jTemb+L9Ow8WoX7M7RDXaPjiAvzcrfw1IAWAHy0ZC8JqdkGJxIRkaqi4licwt7jGUxfGQ/A/13TArOmbpNKNrBNKJ0ja5FttfHaHzuMjiMiIlVExbE4hUlzdpBns9OnRTDdG9UxOo5UAyaTiWcKFwb5ad0RNh1OMTaQiIhUCRXH4vCW7z3B/O2JWMwmnrq6hdFxpBppHxHAkPbhALzy+w7sdk3tJiLi6lQci0Oz2ey8PKdgtbLh0fVpHOxrcCKpbh7r1wwPi5nle0/y1+4TRscREZFKpuJYHNpvm4+x5Ugavp5uPNK7idFxpBqKCPTh9m6RALw6d4cWBhERcXEqjsVhWfNtvDFvJwD39mxIbV9PgxNJdTW2V2N8CxcG+WXTUaPjiIhIJVJxLA7r29WHOHAyizq+HtzdQwt+iHECa3hwX8+GALwxbxe5eTaDE4mISGVRcSwO6XRuPu8s2A3AQ72aUMNTC36Ise6+vAF1fD2JT87im1XxRscREZFKouJYHNLny/ZzPD2HiEBvbu1a3+g4Ivh4uPFIn4Jx7+8t3E1mjpaVFhFxRSqOxeGkZOXy4eK9ADzWtxkebnqbimO4pUsEUbV9OJGRy6d/7Tc6joiIVAJVHeJwpizaS3p2Hs1D/biuXbjRcUSKuFvMPN6/GQAfL9nLiYwcgxOJiEhFU3EsDuVY6mmmLj8AwL8HNNcy0eJwBrYOo03dmmTm5vP+wj1GxxERkQqm4lgcyjvzd5OTZ6NrVCBXNgsyOo7IOcxmE09d3RyA6SsPcig5y+BEIiJSkVQci8PYk5TBd2sOAfDvq5thMumqsTimyxrXoUfjOljz7by3cLfRcUREpAKpOBaH8db8Xdjs0KdFCJ0iA42OI1Kqcf2aAvDjuiPsP5FpcBoREakoKo7FIexISOO3TccAeKyw6BBxZB3r16JX82DybXbemb/L6DgiIlJBVByLQ3g7tuBX09e0DaNFmL/BaUTKZlzfgi9y/9t4lN2J6QanERGRiqDiWAy35Ugqc7cmYDLBo72bGB1HpMxa163JgFah2O0Fw4JERMT5qTgWw71dWFRc1y6cJiF+BqcRuTj/6tsUkwnmbE5g69FUo+OIiMglUnEshtp4KIX525Mwm+BhXTUWJ9Qs1I9BbQsWq3krVlePRUScnYpjMdSbhcXE9R3q0SjI1+A0IuXzSJ8mmE0wf3sSGw6lGB1HREQugYpjMczag8ks3nUci9nEw70bGx1HpNwaBfkytGM9AN6Yt9PgNCIicilUHIthzlw1vrFjPSJr1zA4jcileaR3E9zMJv7afYJV+5ONjiMiIuWk4lgMsWLfSZbtOYm7xcTYXrpqLM4vItCHm7pEAPBmrK4ei4g4KxXHUuXsdnvRVeObOkcQEehjcCKRijH2qsa4W0ys2JfMyn0njY4jIiLl4HTF8eTJk4mKisLLy4vo6GhWrVpVYtupU6diMpmK/Xh5eRVrY7fbmTBhAmFhYXh7e9OnTx92795d2adRrS3fe5JV+5PxsJh58CpdNRbXER7gzbDOBVeP31u4x+A0IiJSHk5VHH/77beMGzeO5557jnXr1tGuXTv69+9PUlJSia/x9/fn2LFjRT8HDx4s9vxrr73Gu+++y4cffsjKlSupUaMG/fv3Jzs7u7JPp1qy2+1F8xrfFl2f8ABvgxOJVKwxVzTCzWxi6Z4TrD2oscciIs7GqYrjN998k9GjRzNq1ChatmzJhx9+iI+PD59//nmJrzGZTISGhhb9hISEFD1nt9t5++23eeaZZxg8eDBt27blyy+/5OjRo8yePbsKzqj6WbEvmdUHTuFhMXP/FY2MjiNS4SICfbihcOaKdxfo6rGIiLNxmuI4NzeXtWvX0qdPn6JtZrOZPn36EBcXV+LrMjIyiIyMJCIigsGDB7N169ai5/bv309CQkKxfdasWZPo6OhS9ynl997CgiErN3WpR2hNrwu0FnFOD17VGIvZxOJdxzXvsYiIk3EzOkBZnThxgvz8/GJXfgFCQkLYsWPHeV/TrFkzPv/8c9q2bUtqaiqvv/463bt3Z+vWrdSrV4+EhISiffxzn2eeO5+cnBxycnKKHqelpQFgtVqxWq3lOr+LceYYVXGsirT24CmW7z2Jm9nEPZdFOnx+Z+1nZ+KqfRzm787gdmH8tP4ob8fu5JM7Ohqax1X72dGonyuf+rhquGo/l/V8nKY4Lo+YmBhiYmKKHnfv3p0WLVrw0Ucf8eKLL5Z7v5MmTWLixInnbJ83bx4+PlU380JsbGyVHasiTNlmBsx0qZPPxuV/stHoQGXkbP3sjFyxj1vYwYSFRbtO8NF3c4hwgAUgXbGfHZH6ufKpj6uGq/VzVlZWmdo5TXFcp04dLBYLiYmJxbYnJiYSGhpapn24u7vToUMH9uwpGAd45nWJiYmEhYUV22f79u1L3M/48eMZN25c0eO0tDQiIiLo168f/v7+ZT2lcrNarcTGxtK3b1/c3d0r/XgVYePhVHbErcRiNvHS8J7Ud4Lp25yxn52Nq/fxFvtm/rfxGBusYdw3sINhOVy9nx2F+rnyqY+rhqv285nf9F+I0xTHHh4edOrUiQULFjBkyBAAbDYbCxYsYOzYsWXaR35+Pps3b2bgwIEANGjQgNDQUBYsWFBUDKelpbFy5UrGjBlT4n48PT3x9PQ8Z7u7u3uVvomq+niX4sMl+wEY3D6cRiE1DU5zcZypn52Vq/bxQ72b8vOmY8zfcZxdx7NoFW7se99V+9nRqJ8rn/q4arhaP5f1XJzmhjyAcePG8cknnzBt2jS2b9/OmDFjyMzMZNSoUQCMGDGC8ePHF7V/4YUXmDdvHvv27WPdunXcfvvtHDx4kHvuuQcomMni0Ucf5aWXXuLnn39m8+bNjBgxgvDw8KICXC7d1qOpzN+ehMmE5jWWaqVxsC/Xtg0H4H3Neywi4hSc5soxwM0338zx48eZMGECCQkJtG/fnrlz5xbdUBcfH4/Z/He9f+rUKUaPHk1CQgK1atWiU6dOLF++nJYtWxa1efLJJ8nMzOTee+8lJSWFHj16MHfu3HMWC5HyO1MUXNs2nEZBDjDwUqQKPdSrMb9uOsrvWxLYmZBOs1A/oyOJiEgpnKo4Bhg7dmyJwygWLVpU7PFbb73FW2+9Ver+TCYTL7zwAi+88EJFRZSz7EpM5/ctBTN/jNVVY6mGmob4MbB1GL9tPsa7C3cz+TZjZ64QEZHSOdWwCnE+Z64aD2gVqitmUm2N7VXwxXDO5mPsPZ5hcBoRESmNimOpNPuOZ/DrpqPA38WBSHXUIsyfPi1CsNvho8V7jY4jIiKlUHEslWbyn3ux2aF382Ba13WuGSpEKtoDVxUsl/7TuiMcTTltcBoRESmJimOpFIdPZfG/DUcAXTUWAehYvxYxDWuTZ7PzyV/7jI4jIiIlUHEsleLTv/aTZ7NzWePadKhfy+g4Ig7hzNXjb1bFczIj5wKtRUTECCqOpcKdzMhh5up4AMZcoavGImf0aFyHtvVqkm21MXX5AaPjiIjIeag4lgo3dfkBsq022taryWWNaxsdR8RhmEwmHriy4Orx1OUHSM+2GpxIRET+ScWxVKiMnDymFV4RG3NFI0wmk7GBRBxMv5ahNAqqQXp2HtNXxhsdR0RE/kHFsVSob1bGk5adR8OgGvRvFWp0HBGHYzabGHNlwXCjT//aT7Y13+BEIiJyNhXHUmFy8vL5dGnBXfj392yE2ayrxiLnM7h9OHUDvDmRkcP3aw8bHUdERM6i4lgqzKx1R0hMyyHU34shHeoaHUfEYblbzNzbsyFQsChIXr7N4EQiInKGimOpEPk2Ox8tKbhqfM/lDfBw01tLpDQ3d4mgjq8Hh0+d5pfClSRFRMR4qmCkQszdksD+E5kE+Lhza9f6RscRcXhe7hZGXdYAgA/+3IvNZjc4kYiIgIpjqQB2u50pi/cAcGdMFDU83QxOJOIc7oiJxM/Tjd1JGczfnmh0HBERQcWxVICle06w5Uga3u4W7uweZXQcEafh7+XOHTGRAHywaC92u64ei4gYTcWxXLIP/twLwC1dIwis4WFwGhHnMuqygjH6Gw6lsPrAKaPjiIhUeyqO5ZKsjz9F3L6TuJlNjL68odFxRJxOkJ8nN3SsB8DHS/YanEZERFQcyyX5cHHBf+ZDOtQlPMDb4DQizmn05Q0wmWD+9iR2J6YbHUdEpFpTcSzlticpgz+2JmIywf1X6KqxSHk1DPKlX8sQAD75a5/BaUREqjcVx1Junxb+J963RQiNg/0MTiPi3O7t2QiA2euPkpiWbXAaEZHqS8WxlEtSejY/rTsCwH26aixyyTpF1qJLVC1y8218seyA0XFERKotFcdSLl8uP0huvo2O9QPoFBlodBwRl3Dm6vH0lQdJz7YanEZEpHpScSwXLSs3j69WHATg3p66aixSUXo3D6ZRUA3Ss/OYueqQ0XFERKolFcdy0b5fc5jU01aiavvQt2Wo0XFEXIbZbCr6wvn5sv1Y820GJxIRqX5UHMtFycu38enSghvx7r68IRazyeBEIq5lSIe6BPl5ciw1m182HjU6johItaPiWC7KH1sTOZR8mlo+7txYuHCBiFQcTzcLIwuXYf94yT4tKS0iUsVUHEuZ2e32ohW87oiJwtvDYnAiEdd0e3QkNTws7EhIZ/Gu40bHERGpVlQcS5mt2p/MxsOpeLqZGRETaXQcEZdV08edW7rWB+CjxVoURESkKqk4ljI7s3LXDZ3qUcfX0+A0Iq7trh4NsJhNxO07yebDqUbHERGpNlQcS5nsScpg/vYkTCa4p0cDo+OIuLy6Ad5c1y4cgI8KhzOJiEjlU3EsZXL2UtENg3wNTiNSPYy+vGBatzmbj3EoOcvgNCIi1YOKY7mgs5eK1qIfIlWnZbg/lzepg80OU5cfMDqOiEi1oOJYLuiruIKlojvUD6BTZC2j44hUK3cXDmP6dvUh0rSktIhIpVNxLKUqtlT05Q0xmbToh0hVuqJpEE2CfcnIyeO71VpSWkSksqk4llJ9v+YwKVlWImv70K+VlooWqWomk6no6vEXyw6QpyWlRUQqlYpjKVG+zV60VPQ9hdNKiUjVG9KhLrVreHAk5TRztyYYHUdExKWpOJYSzduawKHk0wT4uHNjpwij44hUW17uFm7vVrDwzid/7deS0iIilUjFsZTo82X7gYKlbLVUtIixbu8WiYebmY2HUlgXf8roOCIiLkvFsZzXpsMprD5wCneLiTu0VLSI4YL8PLm+fV0APv1rv8FpRERcl4pjOa/Plhb853tt23BC/L0MTiMiAHdfXnBj3h9bE4g/qUVBREQqg4pjOUdCaja/bToG/D3HqogYr2mIHz2bBmGzwxfLdfVYRKQyqDiWc0yLO0CezU7XBoG0rlvT6DgicpZ7Cr+wfrf6EKmntSiIiEhFc7riePLkyURFReHl5UV0dDSrVq0qse0nn3zC5ZdfTq1atahVqxZ9+vQ5p/3IkSMxmUzFfgYMGFDZp+GwsnLzmLEyHtBVYxFHdHmTOjQN8SUzN59vV8cbHUdExOU4VXH87bffMm7cOJ577jnWrVtHu3bt6N+/P0lJSedtv2jRIm699Vb+/PNP4uLiiIiIoF+/fhw5cqRYuwEDBnDs2LGin2+++aYqTsch/bjuCKmnrdQP9KFPixCj44jIP5hMJu7p0RCAqcsOYNWiICIiFcqpiuM333yT0aNHM2rUKFq2bMmHH36Ij48Pn3/++XnbT58+nQceeID27dvTvHlzPv30U2w2GwsWLCjWztPTk9DQ0KKfWrVqVcXpOBybzc4XhdO3jewepUU/RBzUde3DqePrwdHUbH7fokVBREQqkpvRAcoqNzeXtWvXMn78+KJtZrOZPn36EBcXV6Z9ZGVlYbVaCQwMLLZ90aJFBAcHU6tWLXr16sVLL71E7dq1S9xPTk4OOTk5RY/T0tIAsFqtWK2VPwbwzDEq+liLdh1n3/FMfD3duL59aJWciyOrrH6Wv6mPy8cC3NY1gncX7uXTJXsZ0KIOJlPJX2bVz1VD/Vz51MdVw1X7uaznY7I7yVJLR48epW7duixfvpyYmJii7U8++SSLFy9m5cqVF9zHAw88wB9//MHWrVvx8iqYnmzmzJn4+PjQoEED9u7dy9NPP42vry9xcXFYLOdf+OL5559n4sSJ52yfMWMGPj4+5TxD403eZmZXqpkrw2xcH6Vf1Yo4sgwrPLfWQp7dxCOt8mjob3QiERHHlpWVxW233UZqair+/iV/aDrNleNL9corrzBz5kwWLVpUVBgD3HLLLUV/btOmDW3btqVRo0YsWrSI3r17n3df48ePZ9y4cUWP09LSisYzl9bZFcVqtRIbG0vfvn1xd3evkH3uTEhnV1wcZhM8d+sV1KvlXSH7dWaV0c9SnPr40mxiK9+uOcJ2ezhjB7YvsZ36uWqonyuf+rhquGo/n/lN/4U4TXFcp04dLBYLiYmJxbYnJiYSGhpa6mtff/11XnnlFebPn0/btm1LbduwYUPq1KnDnj17SiyOPT098fT0PGe7u7t7lb6JKvJ4X648BMCA1qE0CNYlqLNV9d9rdaQ+Lp97Lm/Et2uOELs9iaNpuUTWrlFqe/Vz1VA/Vz71cdVwtX4u67k4zQ15Hh4edOrUqdjNdGdurjt7mMU/vfbaa7z44ovMnTuXzp07X/A4hw8f5uTJk4SFhVVIbmdwIiOH2RuOApq+TcSZNAnx44qmQdjt8MWyA0bHERFxCU5THAOMGzeOTz75hGnTprF9+3bGjBlDZmYmo0aNAmDEiBHFbth79dVXefbZZ/n888+JiooiISGBhIQEMjIyAMjIyOCJJ55gxYoVHDhwgAULFjB48GAaN25M//79DTlHI0xfEU9uno12EQF0rF89Z+oQcVZnvtD+sPYw6dmudfOMiIgRnKo4vvnmm3n99deZMGEC7du3Z8OGDcydO5eQkIL5eOPj4zl27FhR+ylTppCbm8uNN95IWFhY0c/rr78OgMViYdOmTVx33XU0bdqUu+++m06dOvHXX3+dd9iEK8rJy+erFQcBuOuyqFLveBcRx3N5kzo0DvYlIyeP79ccNjqOiIjTc5oxx2eMHTuWsWPHnve5RYsWFXt84MCBUvfl7e3NH3/8UUHJnNPPG45yIiOHsJpeDGxTfYaSiLgKk8nEyO5RPDN7C9PiDnCn5igXEbkkTnXlWCqW3W7ns6UFi36MiInC3aK3g4gzGtqxLv5ebhw8mcWfO86/YqiIiJSNqqFqLG7vSXYkpOPtbuG2rvWNjiMi5eTj4cathf+GPy9c5VJERMpHxXE1duaq8Y2d6lHTx3WmahGpju6IicRsguV7T7IjoWxzeYqIyLlUHFdT+09ksqDw16+jLosyNoyIXLJ6tXzo36pgzvepmtZNRKTcVBxXU18U/uq1d/NgGgb5GpxGRCrCXYXTus1af4TkzFyD04iIOCcVx9VQWraVH9YWTPl0lxb9EHEZnSNr0bquPzl5Nr5ZFW90HBERp6TiuBr6fs1hsnLzaRriS/dGtY2OIyIVxGQyMap7wRfer+IOYs23GZxIRMT5qDiuZvJtdqYtPwDAyO4NtOiHiIu5tl0YdXw9SUjLZu6WBKPjiIg4HRXH1cyinUnEJ2dR09udIR3CjY4jIhXM083C8GhN6yYiUl4qjquZLwrvYr+lSwQ+Hk63QKKIlMHwbvVxt5hYH5/ChkMpRscREXEqKo6rkd2J6SzdcwKzCW7vFml0HBGpJMF+XgxqW/CboS909VhE5KKoOK5GphaONe7bMoSIQB9jw4hIpRp1WcGNeb9tOkZiWrbBaUREnIeK42oiNcvKT+uOAAU34omIa2tTryadI2uRZ7MzY9Vho+OIiDgNFcfVxHdrDnHamk/zUD+6NQw0Oo6IVIEz85jPXHMIq2Z1ExEpExXH1UC+zc60uAMAjOwepenbRKqJfi1DqBvgTXKmlbUn9O9eRKQsVBxXAwu2J3L41GkCfNwZ3L6u0XFEpIq4WczcEVNw8+2SY2bsdrvBiUREHJ+K42rgzI14t3Spj7eHxdgwIlKlbukSgZe7mSNZJlYdOGV0HBERh6fi2MXtTEhn+d6TWMymoitIIlJ9BPh4MKR9wbRu0+LiDU4jIuL4VBy7uDNXjfu3Khh7KCLVz4huBSvmzd+RxKHkLIPTiIg4NhXHLiwlK5dZ6wumcNL0bSLVV5NgX5rVtGG3w7TCL8wiInJ+Ko5d2LerD5FttdEyzJ8uUbWMjiMiBroirOBmvG/XHCIjJ8/gNCIijkvFsYvKy7fxZdxBAEZepunbRKq7FgF2omr7kJ6dx0/rtCiIiEhJVBy7qPnbkziScprAGh5c1y7c6DgiYjCzCe4oHHs8dfkBbDZN6yYicj4qjl3U1OX7Abi1awRe7pq+TURgaIdwfD3d2Hc8k7/2nDA6joiIQ1Jx7IK2H0tjxb5kLGYTt3fT9G0iUsDX041hnesB8MWy/QanERFxTCqOXdDUZQcAGNA6lLCamr5NRP52Z0wUJhMs2nmcfcczjI4jIuJwVBy7mOTMXGZvOALAqO5RxoYREYcTVacGvZoFA5rWTUTkfFQcu5iZq+PJybPRuq4/nSI1fZuInGvkZVEA/LD2MGnZVmPDiIg4GBXHLiQv38ZXZ6Zv695A07eJyHn1aFyHxsG+ZObm88MaTesmInI2t4t9gc1mY/Hixfz1118cPHiQrKwsgoKC6NChA3369CEiIqIyckoZzNuWyLHUbGrX8ODatmFGxxERB2UymRjZPYpnZm9hWtwB7uwehcWsL9MiInARV45Pnz7NSy+9REREBAMHDuT3338nJSUFi8XCnj17eO6552jQoAEDBw5kxYoVlZlZSnDmRrzboutr+jYRKdXQjnXx93Lj4MksFu1MMjqOiIjDKPOV46ZNmxITE8Mnn3xC3759cXd3P6fNwYMHmTFjBrfccgv/93//x+jRoys0rJRsy5FUVh1Ixk3Tt4lIGfh4uHFL1/p8vGQfXyw7QO8WIUZHEhFxCGW+cjxv3jy+++47Bg4ceN7CGCAyMpLx48eze/duevXqVWEh5cLO3HU+sE0YIf5exoYREadwR7dIzCZYuucEuxPTjY4jIuIQylwct2jRosw7dXd3p1GjRuUKJBfvZEYO/9t4FPj7LnQRkQuJCPShb8uCK8ZTNa2biAhQztkqnn/+eWw22znbU1NTufXWWy85lFycmasPkZtno129mnSICDA6jog4kZHdGwDw07ojpGZpWjcRkXIVx5999hk9evRg3759RdsWLVpEmzZt2Lt3b4WFkwuznj1922VRmr5NRC5Kt4aBNA/147Q1n2/XxBsdR0TEcOUqjjdt2kS9evVo3749n3zyCU888QT9+vXjjjvuYPny5RWdUUrxx9YEEtKyqePrycA2mr5NRC6OyWRiVOFwrGnLD5JvsxsbSETEYBc9zzFArVq1+O6773j66ae57777cHNz4/fff6d3794VnU8u4Mz0bcOj6+PppunbROTiDW5fl1d+38GRlNPEbktkQOtQoyOJiBim3Cvkvffee7zzzjvceuutNGzYkIcffpiNGzdWZDa5gC1H0lhz8BTuFhPDo+sbHUdEnJSXu4VbuxZ8hkxdvt/gNCIixipXcTxgwAAmTpzItGnTmD59OuvXr6dnz55069aN1157raIzSgm+XFkwPvCaNmEEa/o2EbkEt3eLxGI2sWJfMtuPpRkdR0TEMOUqjvPz89m0aRM33ngjAN7e3kyZMoUffviBt956q0IDyvml5cKvm44BMPKyBganERFnFx7gzYBWBcMpzgzXEhGpjspVHMfGxhIeHn7O9muuuYbNmzdfcqjSTJ48maioKLy8vIiOjmbVqlWltv/+++9p3rw5Xl5etGnThjlz5hR73m63M2HCBMLCwvD29qZPnz7s3r27Mk+hQsQlmbDm22kfEUB7Td8mIhXgzI15szccITkz19gwIiIGKXNxbLeX7Q7mOnXqlDvMhXz77beMGzeO5557jnXr1tGuXTv69+9PUlLSedsvX76cW2+9lbvvvpv169czZMgQhgwZwpYtW4ravPbaa7z77rt8+OGHrFy5kho1atC/f3+ys7Mr7TwuVW6ejaUJBX91o7Toh4hUkE6RtWhd15+cPBvfrNK0biJSPZW5OG7VqhUzZ84kN7f0qwm7d+9mzJgxvPLKK5cc7p/efPNNRo8ezahRo2jZsiUffvghPj4+fP755+dt/8477zBgwACeeOIJWrRowYsvvkjHjh15//33gYKC/+233+aZZ55h8ODBtG3bli+//JKjR48ye/bsCs9fUf7Ylkia1USQrwdXt9b0bSJSMUwmE6MKFwX5esVBrPnnLvYkIuLqyjyV23vvvce///1vHnjgAfr27Uvnzp0JDw/Hy8uLU6dOsW3bNpYuXcrWrVsZO3YsY8aMqdCgubm5rF27lvHjxxdtM5vN9OnTh7i4uPO+Ji4ujnHjxhXb1r9//6LCd//+/SQkJNCnT5+i52vWrEl0dDRxcXHccsstFXoOFeXLFfHYyGZopzCsttNY//F9xWK24OX29w16mbmZJe7LbDLj7e5drrZZ1qwSf6NgMpnwcfcpV9vT1tPY7CX/p1zDo0a52mbnZZNvyy9z2+zcbLLzs8nMzcTd7l6srY+7T9GCKzl5OeTZ8krc78W09Xb3xmwq+M6am5+LNb/kFcsupq2XmxcWs+Wi21rzreTml/yF2NPNEzez20W3zbPlkZOXg9VqPW8fe1g8cLe4F2tbkrPb5tvyyc4r+bc+7hZ3PCweF93WZrdx2nq6Qtq6md3wdPMECr6gZ1mzKqRtaf/u/9nPpbW9qoU/tWrkcyQ1hf9t3Mc1berqM6KMbc/u55puNfUZwaV/RvzTmT625ltxd9dnREV9RvyT7R9fjCujjjhwIpPle08ypEM4Ph7lmlm40pQ5Te/evVmzZg1Lly7l22+/Zfr06Rw8eJDTp09Tp04dOnTowIgRIxg+fDi1atWq8KAnTpwgPz+fkJCQYttDQkLYsWPHeV+TkJBw3vYJCQlFz5/ZVlKb88nJySEn5+9/iGlpBXd2W61WrNbKXX514+FUNhxK5ZD3jTy9Cp4+z5Drqxtdzf9u/l/R4+DXg0v8B9Ozfk/m3z6/6HHU21GcOH3ivG07hXUibtTfX0RaTm7JwdSD523bok4LNt7799R+nT/uzPYT28/bNrJmJLsf/Huc9+VfXM7aY2vP27aOdx2O/uto0eMBXw9gSfyS87b1cfch5YmUosdDvx3K73t/P29bgNyn//7QHv7TcH7a8VPBg/MMoz/1+Kmi/yhH/zKarzZ/VeJ+jzxyhKAaQQA8OvdRPlz3YYltdz2wi6iAKADGLxjPmyvfLLHt+tHraRXUCoAXl7zIS0tfKrHt8pHL6RzeGYA3V7zJ+IXjS2wbOzyWKyKvAGDKmik8Mu+REtvOvmk2AxsPBODLTV9yz6/3lNh2xvUzuLFFwU28P2z/gdtm3fb3k//o40+v/ZQRbUcAMGfPHIZ8N6TE/b7T7x3GdC74Mr744GL6Tu9bYttJvSbxWLfHAFhzdA3dp3Yvse0zPZ5hQs8JAGw9vpUOn3Qose246HG80rvgt2UHUg7Q9IOmJba9v+P9vDvgXQCOZx6n7jt1S2x7R5s7+GzQZ0DBfzi1Xi/5s3Vo86HMHDqz6LHvJN9zGxX2c5k+I7xh2C/Qc6M+I84o8TPinzbrM+KMCvuM+IcP633IXR3uAvQZUaGfEYX6N+zPGP8xRTVNZdQRny3dx1cr4lm6O4l3bm5XYpaKVNYa7aJL9R49etCjR4+LDuRKJk2axMSJE8/ZPm/ePHx8fM7ziopzOBNaBJg5WPKXZJKOJxW78TA/v+QrISdPnizWtrRhM6kpqcXaZmWV/A01IyOjWNuMjIwS22ZlZRVrm5qSWmLb3NzcYm1PnjxZYtv8/PxibZOOn39s+hlnt004VvKXI4A//vgDL0vBN/DDhw+X2nb+gvnUdKsJwMHD5y8Uzvjzzz8J8Sz4srbvyL5S2/615C8Oehfsb/ex0m8iXbZ8GUk+Bee/I+n8XybPWLFiBZlbC775bz2+tdS2a1avgV0Ff954svR5ztevX4/P/oJ/H+tT1pfaduPGjcw5XPD3sSZ1Taltt27dypykgrab00u/IXjHjh3MSS5ouzur9D7bvXs3czIK2safLn387b59+5iTU9A2MSex1LYH4w8WvddS80p+r0PBe+tM2+z80u+DSDiWcM4NxyW5mM+Io0n6jDhDnxEFHOEzYuuWrcw5ps+IyvqMOHHiBPgXTMAAFV9HZOfBd2stgInI/KPMmXOkTLkuVWmfSWcz2ct6p53BcnNz8fHx4YcffmDIkCFF2++8805SUlL43//+d85r6tevz7hx43j00UeLtj333HPMnj2bjRs3sm/fPho1asT69etp3759UZsrrriC9u3b884775w3y/muHEdERHDixAn8/f0v+VwvxGq18r/ff6FP715Fv1Y6m4ZVnL/tRQ+ryMlm4cKF9Op1bj9rWEWBihhWcb4+1rCKi297oWEVZ/dzWT4jnpq1hTlbEhncNow3h3Upte0Z1e0z4nzDKs70c00fDauAyhlWsXDhQgb0HYCPl0+pbc/QZ0SBix1W8deff9G3b1/c3d0rvI74ckU8L/62g4Z1ajD34e5F7//KlpaWRp06dUhNTS21Xiv3II8FCxawYMECkpKSsNmKf/CUdIPcpfDw8KBTp04sWLCgqDi22WwsWLCAsWPHnvc1MTExLFiwoFhxHBsbS0xMDAANGjQgNDSUBQsWFBXHaWlprFy5stQx056ennh6ep6z3d3d/bzFamXwcfMioEZAmY4X4B5Q5v1eTNua7jUrpe3F9GFltvVy88LLcuF+dpS8ldXWh7L9NuSi2uKOt6c3Vqv1gn18pm1Z9+vlWbYFcS6mLYCnx7n/5iuirYeHR6W0Pfvf8oX6+Xz/7u+/ojVzt6Tyx9ZUUgbZCPLzLLFtSVz9M+KfSupnR81bUW0r8zPin870sY+XT1FOfUaUr21p/5bPDD84U9dUZB1hs9n5euUhoGDGrYvJfKnK+t4u1zzHEydOpF+/fixYsIATJ05w6tSpYj+VZdy4cXzyySdMmzaN7du3M2bMGDIzMxk1ahQAI0aMKHbD3iOPPMLcuXN544032LFjB88//zxr1qwpKqZNJhOPPvooL730Ej///DObN29mxIgRhIeHF7s6LSJS3ZyZQz0338aMlZrWTUQqxuLdx9l/IhM/TzeGdqxndJzzKteV4w8//JCpU6dyxx13VHSeUt18880cP36cCRMmkJCQQPv27Zk7d27RDXXx8fGYzX/X+927d2fGjBk888wzPP300zRp0oTZs2fTunXrojZPPvkkmZmZ3HvvvaSkpNCjRw/mzp2Ll5eWYxaR6m3UZVE8MnMDX688yJgrG+HhVq7rKSIiRaYtPwDAsM4R1PB0rFkqzihXqtzcXLp3L/kOzso0duzYEodRLFq06Jxtw4YNY9iwYSXuz2Qy8cILL/DCCy9UVEQREZdwdesw/uO3naT0HH7fcozB7Uu+a15E5EL2Hc9g0c7jmEwwIibS6DglKtdlgHvuuYcZM2ZUdBYREXEgHm5mbu9W8B/Y58sOGBtGRJzel3EFs6dc1SyYqDo1LtDaOOW6cpydnc3HH3/M/Pnzadu27TkDnN98s+R5F0VExHncFl2f9xfuYeOhFNbHn6JD/Yqfx15EXF96tpUf1hZMaziye5SxYS6gXMXxpk2bimZ32LJlS7Hnqmo6DhERqXx1fD0Z1C6cH9cdZuryAyqORaRcflx7mIycPBoF1eDyJnWMjlOqchXHf/75Z0XnEBERBzXqsih+XHeY3zYd4+mBLQjx1w3LIlJ2Npu9aEjFnd2jHP5Cqm49FhGRUrWuW5MuUbXIs9mZvqL0FdxERP5pye7j7HPw6dvOVuYrx0OHDmXq1Kn4+/szdOjQUtv+9FMJ682LiIhTGtm9AasPnGL6yngeuKoxXu4WoyOJiJOYetb0bb4OOn3b2cqcsGbNv5fCrFmz7CsZiYiI8+vfKoSwml4cS83m103HuLGT41/9ERHj7T+R6RTTt52tzMXxF198UfTnDz74AJvNRo0aBdNwHDhwgNmzZ9OiRQv69+9f8SlFRMRQbhYzd8RE8trcnXyxbD83dKzr8OMGRcR4Zxb9cPTp285WrjHHgwcP5quvvgIgJSWFbt268cYbbzBkyBCmTJlSoQFFRMQx3NqlPp5uZrYeTWPNwVNGxxERB5eRk+c007edrVzF8bp167j88ssB+OGHHwgJCeHgwYN8+eWXvPvuuxUaUEREHEOtGh5c36FglbypWhRERC7gzPRtDYNq0KOxY0/fdrZyFcdZWVn4+fkBMG/ePIYOHYrZbKZbt24cPKg7mUVEXNXIy6IAmLs1gaMpp40NIyIOy2azFw2pGNk9CrPZeYZhlas4bty4MbNnz+bQoUP88ccf9OvXD4CkpCT8/f0rNKCIiDiO5qH+xDSsTb7Nzlea1k1ESuBs07edrVzF8YQJE3j88ceJiooiOjqamJgYoOAqcocOHSo0oIiIOJYzV4+/WRVPtjXf2DAi4pDOXDW+sXM9p5i+7WzlKo5vvPFG4uPjWbNmDXPnzi3a3rt3b956660KCyciIo6nT4sQ6tXyJiXLyuz1R4yOIyIOZv+JTP4snL7tzpgoo+NctHKvkBcaGkqHDh0wm//eRdeuXWnevHmFBBMREcdkMZuK/sObuvwAdrvd2EAi4lC+jDsAONf0bWfT8tEiInLRbuocgbe7hR0J6cTtO2l0HBFxEBk5eXy/pmD6tjudaPq2s6k4FhGRi1bTx50bOmlaNxEp7uzp2y53ounbzqbiWEREyuXM0Ir52xM5lJxlbBgRMZzNZmda4ZAKZ5u+7WwqjkVEpFyahPhxeZM62Ox/jzEUkerrrz0n2Hc8E18nnL7tbCqORUSk3EYVTus2c/UhMnPyjA0jIoaaumw/AMOccPq2s6k4FhGRcruyaTBRtX1Iz85jlqZ1E6m29h3PKJq+bYQTTt92NhXHIiJSbmazqeiOdE3rJlJ9nVn0o1ezYBo44fRtZ1NxLCIil+TGTvWo4WFhT1IGS/ecMDqOiFSx1NNWvl9bMH3bqMsaGJzm0qk4FhGRS+Ln5c6wzhEAfKFp3USqne/XHCIrN5+mIb5c1ri20XEumYpjERG5ZGeGVizckcT+E5nGhhGRKpNvszO1cEjFyO4NMJmcc/q2s6k4FhGRS9agTg2uahYEaFo3kepk/vZEDp86TYCPO9d3qGt0nAqh4lhERCrEyMKxht+vOUx6ttXgNCJSFb4onL7t1q718fawGJymYqg4FhGRCtGzSR0aBdUgIyePHwtvzhER17X1aCor9iVjMZu4o1uk0XEqjIpjERGpECaTiZGFY4+nxR3EZtO0biKubGrhDbgDWocSHuBtbJgKpOJYREQqzNCO9fDzcmP/iUwW7zpudBwRqSQnM3L438ajANzlAtO3nU3FsYiIVJganm7cfGZat8I72EXE9cxYGU9uno129WrSsX6A0XEqlIpjERGpUCNiojCZYMmu4+xJyjA6johUsNw8G1+uOAgULPrhCtO3nU3FsYiIVKj6tX3o0yIE+HtJWRFxHXM2H+N4eg7Bfp4MbBNmdJwKp+JYREQq3KjCG/N+XHeY1NOa1k3EVdjt9qLp2+7oFomHm+uVkq53RiIiYriYRrVpFuJHVm4+3685ZHQcEakg6+JT2Hg4FQ83M7dF1zc6TqVQcSwiIhXOZDIx8rIoAKbFHSBf07qJuITPC68aD24XTm1fT4PTVA4VxyIiUimGtK9LgI87h5JPs2B7otFxROQSHU05zdwtCUDBjXiuSsWxiIhUCm8PC7d0Kfi161TdmCfi9L5acZB8m51uDQNpGe5vdJxKo+JYREQqzR0xkVjMJpbvPcnOhHSj44hIOZ3OzeebVfGAa181BhXHIiJSieoGeNO/VcG0blOX7zc4jYiU16z1R0jJshIR6F00VaOrUnEsIiKVamT3gqtMs9Yf4VRmrsFpRORi2e32oi+3d8ZEYTG71qIf/6TiWEREKlWXqFq0DPMn22pj5mpN6ybibJbtOcmuxAxqeFi4qUuE0XEqndMUx8nJyQwfPhx/f38CAgK4++67ycgoeVnS5ORkHnroIZo1a4a3tzf169fn4YcfJjU1tVg7k8l0zs/MmTMr+3RERKoNk8nEqMJp3b6KO0Bevs3YQCJyUc4s+nFjp3r4e7kbnKbyOU1xPHz4cLZu3UpsbCy//vorS5Ys4d577y2x/dGjRzl69Civv/46W7ZsYerUqcydO5e77777nLZffPEFx44dK/oZMmRIJZ6JiEj1M6hdOLVreHA0NZvYbZrWTcRZ7DuewcKdSQDcWbjypatzMzpAWWzfvp25c+eyevVqOnfuDMB7773HwIEDef311wkPDz/nNa1bt+bHH38setyoUSP+85//cPvtt5OXl4eb29+nHhAQQGhoaOWfiIhINeXlbuG26Pq8t3APXyw7wNVtwoyOJCJl8Pmy/djt0KdFMA2DfI2OUyWcojiOi4sjICCgqDAG6NOnD2azmZUrV3L99deXaT+pqan4+/sXK4wBHnzwQe655x4aNmzI/fffz6hRozCZSh5snpOTQ05OTtHjtLQ0AKxWK1ar9WJOrVzOHKMqjlWdqZ8rn/q4ajhKP9/UKZwpi/ay6kAyGw6epJWLzZPqKP3sytTHVeNM/x5PzeKHtYcBGBlT3+n7vaz5naI4TkhIIDg4uNg2Nzc3AgMDSUhIKNM+Tpw4wYsvvnjOUIwXXniBXr164ePjw7x583jggQfIyMjg4YcfLnFfkyZNYuLEiedsnzdvHj4+PmXKUxFiY2Or7FjVmfq58qmPq4Yj9HPbWmbWnTTz8g/LGd7YNcceO0I/uzr1cdX4z7eLybZaqFfDzoltK5iz3ehElyYrK6tM7Qwtjp966ileffXVUtts337pfxNpaWlcc801tGzZkueff77Yc88++2zRnzt06EBmZib//e9/Sy2Ox48fz7hx44rtPyIign79+uHvX/lXQqxWK7GxsfTt2xd3d9cfGG8U9XPlUx9XDUfq57A2Kdz08SrWJ1t4t+dV1Pb1NDRPRXKkfnZV6uOqYbVa+f2PWFae8gZyeXRAG65pf+4QVmdz5jf9F2JocfzYY48xcuTIUts0bNiQ0NBQkpKSim3Py8sjOTn5gmOF09PTGTBgAH5+fsyaNeuC/5iio6N58cUXycnJwdPz/B/anp6e533O3d29Sv+xVvXxqiv1c+VTH1cNR+jnLg3q0K5eTTYeTuWH9ccY26uJoXkqgyP0s6tTH1e+dSdNnMjIJcTfk+s6RODu5jRzOJSorO8ZQ4vjoKAggoKCLtguJiaGlJQU1q5dS6dOnQBYuHAhNpuN6OjoEl+XlpZG//798fT05Oeff8bLy+uCx9qwYQO1atUqsTAWEZHyK5jWrQGPfruBr1Yc5L4rGuFucf7/dEVcid1uZ9HRgn+Xd3aPwsMFCuOL4RRn26JFCwYMGMDo0aNZtWoVy5YtY+zYsdxyyy1FM1UcOXKE5s2bs2rVKqCgMO7Xrx+ZmZl89tlnpKWlkZCQQEJCAvn5+QD88ssvfPrpp2zZsoU9e/YwZcoUXn75ZR566CHDzlVExNUNbBNGkJ8niWk5/LbpmNFxROQfVuxP5kiWCW93M7d1rW90nCrnFDfkAUyfPp2xY8fSu3dvzGYzN9xwA++++27R81arlZ07dxYNtl63bh0rV64EoHHjxsX2tX//fqKionB3d2fy5Mn861//wm6307hxY958801Gjx5ddScmIlLNeLiZGdEtkjdid/HJX/sY3D681BmCRKRqfb7sIAA3dKxLgI+HwWmqntMUx4GBgcyYMaPE56OiorDb7UWPr7zyymKPz2fAgAEMGDCgwjKKiEjZ3N4tksmL9rD1aBpx+07SvVEdoyOJCLAnKYNFu05gws7ImEij4xjCKYZViIiIa6lVw4NhnSIA+PSv/QanEZEzPi9cKrp1LTuRtatuelpHouJYREQMcXePBphMsHBHEnuS0o2OI1LtJWfm8mPhoh9XhbvmPORloeJYREQMEVWnBn1bhAC6eiziCKavOEhOno02df1p6Gd0GuOoOBYREcPc27MhAD+tP8Lx9ByD04hUXzl5+UyLK7gRb1T3SKrzPbIqjkVExDCdImvRPiKA3DwbX604aHQckWrr5w1HOZGRQ1hNLwa0CjE6jqFUHIuIiGFMJhOjLy+4evxV3AFO5+YbnEik+rHb7Xy2tGBo08juUdV+YZ7qffYiImK4/q1CqFfLm1NZVn5cd9joOCLVzrI9J9mRkI6Ph4VbquGiH/+k4lhERAzlZjFzd48GAHy2dD82W+lz1ItIxfp06T4AbuocQU1vd4PTGE/FsYiIGO6mzhH4e7mx/0Qm87cnGh1HpNrYnZjOop3HMZngrssaGB3HIag4FhERw9XwdOO26ILVuDStm0jVOfPvrV/LEOpX00U//knFsYiIOISR3aNwM5tYdSCZjYdSjI4j4vKS0rKZtf4IAPf2bGRwGseh4lhERBxCaE0vrmsfDsAnf+0zOI2I6/ti+QFy8210iapFp8haRsdxGCqORUTEYdzTo2Batzmbj3EoOcvgNCKuKyMnj68L5xbXVePiVByLiIjDaBnuT4/GdbDZ4YtlB4yOI+KyZq6KJz07j0ZBNejdPNjoOA5FxbGIiDiU0YVLSn+7Op7U01aD04i4Hmu+rWjRj3t7NsRsrsZrRZ+HimMREXEoPZvUoVmIH5m5+XyzKt7oOCIu55eNRzmWmk2QnydDOtQ1Oo7DUXEsIiIOxWQycfflBfOtfrFsPzl5WlJapKLY7XY+XlJww+uoy6LwdLMYnMjxqDgWERGHM7h9OKH+XiSm5TC7cKopEbl0i3cdZ0dCOjU8LAwvnFtcilNxLCIiDsfTzVK0pPRHS/ZpSWmRCvLR4oKrxrd2ra+lokug4lhERBzSrdH18fdyY9/xTOZt05LSIpdq0+EU4vadxM1s4q4eWiq6JCqORUTEIfl6unFHTMGvfT9cvBe7XVePRS7FR4Vjja9rF054gLfBaRyXimMREXFYI7s3wMPNzIZDKazcn2x0HBGnFX8yi983HwPg3isaGpzGsak4FhERhxXk58lNnesBMGXRXoPTiDivT5fuw2aHK5oG0TzU3+g4Dk3FsYiIOLR7L2+E2VRwl/22o2lGxxFxOsmZuXy35hAA9+mq8QWpOBYREYdWv7YPA9uEAfDREl09FrlYX8YdINtqo03dmsQ0rG10HIen4lhERBze/Vc0AuDXTcc4lJxlcBoR55GVm8e05QeAgqWiTSYtFX0hKo5FRMThta5bk8ub1CHfZufTv/YZHUfEaXyz6hCnsqxEnfUbGCmdimMREXEKYwqvHn+75hAnM3IMTiPi+HLy8vmkcPq2+69ohMWsq8ZloeJYREScQkyj2rStV5Nsq63o18QiUrJZ646QkJZNiL8n13esa3Qcp6HiWEREnILJZCoaezwt7iCZOXkGJxJxXPk2Ox8uLriBdfTlDfF0sxicyHmoOBYREafRv1UoDerUIPW0lZmrDxkdR8Rhzdl8jAMnswjwcefWrvWNjuNUVByLiIjTsJhNjL68YJ7WT//aR26ezeBEIo7HbrfzQeGiOaO6N6CGp5vBiZyLimMREXEqQzvWJdjPk2Op2cxaf9joOCIOZ9HO42w/lkYNDwt3do80Oo7TUXEsIiJOxcvdwr09C64ef7BoL3n5unoscrbJf+4BYHi3SAJ8PAxO43xUHIuIiNO5Lbo+tXzcOXgyi982HzM6jojDWLU/mTUHT+FhMXNPjwZGx3FKKo5FRMTp+Hi4cU/h2OP3F+7BZrMbnEjEMZy5anxj53oE+3sZnMY5qTgWERGndEdMJH5ebuxOymDetgSj44gYbsuRVBbvOo7ZBPf3bGR0HKel4lhERJySv5c7I7tHAfDewj3Y7bp6LNXblMIZKq5rF0792j4Gp3FeKo5FRMRpjbqsAT4eFrYeTWPRzuNGxxExzN7jGczZUjD+fsyVjQ1O49xUHIuIiNMKrOHB7d0Kpqp6d+FuXT2WamvKor3Y7dCnRQjNQv2MjuPUVByLiIhTu+fyBni4mVkfn0Lc3pNGxxGpcvEns5i1/ggAY3vpqvGlUnEsIiJOLdjPi1u6RADwfuGd+iLVyeQ/95Bvs3NF0yDaRwQYHcfpOU1xnJyczPDhw/H39ycgIIC7776bjIyMUl9z5ZVXYjKZiv3cf//9xdrEx8dzzTXX4OPjQ3BwME888QR5eXmVeSoiIlLB7ruiEW5mE8v3nmTtwWSj44hUmUPJWfy4rmClyId7NzE4jWtwmuJ4+PDhbN26ldjYWH799VeWLFnCvffee8HXjR49mmPHjhX9vPbaa0XP5efnc80115Cbm8vy5cuZNm0aU6dOZcKECZV5KiIiUsHqBnhzQ8d6QMG8xyLVxZTFe8mz2enRuA6dImsZHcclOEVxvH37dubOncunn35KdHQ0PXr04L333mPmzJkcPXq01Nf6+PgQGhpa9OPv71/03Lx589i2bRtff/017du35+qrr+bFF19k8uTJ5ObmVvZpiYhIBRpzZSPMJvhz53G2HEk1Oo5IpTuScprv1xwC4JE+umpcUdyMDlAWcXFxBAQE0Llz56Jtffr0wWw2s3LlSq6//voSXzt9+nS+/vprQkNDGTRoEM8++yw+Pj5F+23Tpg0hISFF7fv378+YMWPYunUrHTp0OO8+c3JyyMnJKXqclpYGgNVqxWq1XtK5lsWZY1TFsaoz9XPlUx9XjerSz3VrenBNm1B+2ZTAO/N38cFt7av0+NWln42kPi7ug4W7sebb6dagFu3r+lVYv7hqP5f1fJyiOE5ISCA4OLjYNjc3NwIDA0lIKHlVpNtuu43IyEjCw8PZtGkT//73v9m5cyc//fRT0X7PLoyBosel7XfSpElMnDjxnO3z5s0rKryrQmxsbJUdqzpTP1c+9XHVqA793MoEv2IhdnsSH38/h3o1qj5Ddehno6mPISUHZq63ACa6eB9nzpw5FX4MV+vnrKysMrUztDh+6qmnePXVV0tts3379nLv/+wxyW3atCEsLIzevXuzd+9eGjUq/7KK48ePZ9y4cUWP09LSiIiIoF+/fsWGbVQWq9VKbGwsffv2xd3dvdKPV12pnyuf+rhqVLd+3py/id+2JLDBGs69A9tX2XGrWz8bQX38txd+20G+PZ4uUbV4+NYuFbpvV+3nM7/pvxBDi+PHHnuMkSNHltqmYcOGhIaGkpSUVGx7Xl4eycnJhIaGlvl40dHRAOzZs4dGjRoRGhrKqlWrirVJTEwEKHW/np6eeHp6nrPd3d29St9EVX286kr9XPnUx1WjuvTzo32bMmdrArHbk9iZlEXrujWr9PjVpZ+NVN37OCktm2/XFMxQ8WifppXWF67Wz2U9F0OL46CgIIKCgi7YLiYmhpSUFNauXUunTp0AWLhwITabrajgLYsNGzYAEBYWVrTf//znPyQlJRUN24iNjcXf35+WLVte5NmIiIgjaBLix6C24fy88Shvz9/Np3d2vvCLRJzIh4v3kZtno3NkLbo3qm10HJfjFLNVtGjRggEDBjB69GhWrVrFsmXLGDt2LLfccgvh4eEAHDlyhObNmxddCd67dy8vvvgia9eu5cCBA/z888+MGDGCnj170rZtWwD69etHy5YtueOOO9i4cSN//PEHzzzzDA8++OB5rwyLiIhzeLh3E8wmmL89kc2HNXOFuI6k9GymrzwIFLzPTSaTwYlcj1MUx1Aw60Tz5s3p3bs3AwcOpEePHnz88cdFz1utVnbu3Fk02NrDw4P58+fTr18/mjdvzmOPPcYNN9zAL7/8UvQai8XCr7/+isViISYmhttvv50RI0bwwgsvVPn5iYhIxWkc7Mvg9nUBeHv+LoPTiFScT5bsIyfPRof6AVzepI7RcVySU8xWARAYGMiMGTNKfD4qKgq73V70OCIigsWLF19wv5GRkZVyh6eIiBjroV6N+d+GIyzYkcTGQym007K64uSS0rL5aoWuGlc2p7lyLCIicjEaBvkypIOuHovr+GDRXrKtNjrWD+DKphe+Z0vKR8WxiIi4rId7NcFiNvHnzuOsjz9ldByRcjuScpoZK+MBeLxfM101rkQqjkVExGVF1anB9UVXj3cbnEak/N5fuIfcfBvdGgbSvbHGGlcmFcciIuLSHurVGIvZxOJdx1l7UFePxfkcPJnJ92sOAfBYv2YGp3F9Ko5FRMSlRdauwQ0dNfZYnNc7C3aTZ7NzRdMgukQFGh3H5ak4FhERl/dQrya4mU38tfsEK/edNDqOSJntSUpn9vojADzWr6nBaaoHFcciIuLyIgJ9uLlLBACv/bGz2NSfIo7srfm7sdmhX8sQ2tYLMDpOtaDiWEREqoWHezfBy93M2oOnWLgjyeg4Ihe07Wgav206BsC/+uqqcVVRcSwiItVCiL8Xd3aPAuC/f+zEZtPVY3FsbxWOkb+2bRgtwvwNTlN9qDgWEZFqY8wVjfDzcmNHQjq/bDpqdByREm08lELstkTMJni0j64aVyUVxyIiUm0E+HhwX8+GALwZuwtrvs3gRCLnstvtvPL7DgCGdKhL42BfgxNVLyqORUSkWhl1WQPq+Hpw8GQW364+ZHQckXMs2X2CuH0n8bCYGaexxlVOxbGIiFQrNTzdGHtVYwDeXbCb07n5BicS+ZvNZufVwqvGd8REUq+Wj8GJqh8VxyIiUu3cGl2fugHeJKXn8GXcAaPjiBT5ZdNRth1Lw8/TjQcLv8RJ1VJxLCIi1Y6nm6Voaqwpi/eSlm01OJEI5ObZeH3eTgDuv7IRgTU8DE5UPak4FhGRaun6DnVpEuxLSpaVjxfvMzqOCDNWHuRQ8mmC/DwZdVmU0XGqLRXHIiJSLVnMJh7v3wyAT5fuIyE12+BEUp2lZ1t5d+EeAB7t0wQfDzeDE1VfKo5FRKTa6tcyhM6Rtci22nij8NfZIkb45K/9JGfm0rBODW7qHGF0nGpNxbGIiFRbJpOJp69pAcAP6w6z/ViawYmkOjqensOnfxUM7XmifzPcLSrPjKTeFxGRaq1j/Vpc0zYMux1enrPd6DhSDb23cDdZufm0iwhgQOtQo+NUeyqORUSk2vt3/+a4W0z8tfsES3YdNzqOVCP7jmcwY2U8AE8NaI7JZDI4kag4FhGRaq9+bR/u6BYFFFw9zrfZjQ0k1cbLc3aQZ7PTq3kwMY1qGx1HUHEsIiICwEO9GuPn5caOhHR+XHfY6DhSDSzfc4L52xOxmE08PbCF0XGkkIpjERERoFYNDx7qVbAi2RvzdmpZaalU+TY7L/y6DYDbo+vTONjX4ERyhopjERGRQiNioqgb4E1i2t+zB4hUhh/WHmJHQjr+Xm482qep0XHkLCqORURECnm5W3hyQMHCIFMW79XCIFIpMnLy+O8fuwB4uHcTammZaIei4lhEROQs17ULp2P9ALJy83l17g6j44gLmrJoDycycoiq7cOImCij48g/qDgWERE5i8lk4rlBrQCYtf4Iaw+eMjiRuJLDp7L45K/9AIwf2AIPN5VijkZ/IyIiIv/QLiKAYZ3qAfDCL1uxaWo3qSCvzd1Jbp6Nbg0D6dcyxOg4ch4qjkVERM7jiQHN8PV0Y+PhVE3tJhVizYFkft54FJMJnrmmpRb8cFAqjkVERM4j2M+raGq3V+fuJD3banAicWb5NjvP/m8rADd3jqB13ZoGJ5KSqDgWEREpwcjLooiq7cOJjBze/3OP0XHEiU1feZDtx9Ko6e3OkwOaGx1HSqHiWEREpASebhaevbYlAJ8v3c/+E5kGJxJndDIjh9f/2AnA4/2aEqip2xyaimMREZFS9GoeTM+mQVjz7bxUuKKZyMX47x87ScvOo2WYP7dFRxodRy5AxbGIiEgpTCYTE65tiZvZxIIdSczbmmB0JHEiGw6l8O2aQwC8MLgVFrNuwnN0Ko5FREQuoHGwL6N7NgRg4i/byMrNMziROAObzc6E/23BboehHevSOSrQ6EhSBiqORUREyuDhXk2oG+DNkZTTvLNgt9FxxAl8u+YQmw6n4ufpxlNX6yY8Z6HiWEREpAy8PSxMvK5g5bzP/trPrsR0gxOJI0vJyuW1wuXHH+3blGA/L4MTSVmpOBYRESmjPi1D6NMihDybnWdmb8Fu18p5cn4vz9nOqSwrTUN8GRGjm/CciYpjERGRi/D8dS3xdrewan8yP647YnQccUAr9p3kuzUFqyq+fH0b3C0qt5yJ/rZEREQuQr1aPjzcuwkAk+ZsJyUr1+BE4khy8vJ5etZmAG6Lrq+b8JyQ0xTHycnJDB8+HH9/fwICArj77rvJyMgosf2BAwcwmUzn/fn++++L2p3v+ZkzZ1bFKYmIiJO6u0cDmgT7cjIzl1fn7jQ6jjiQD/7cy77jmQT5efJvrYTnlJymOB4+fDhbt24lNjaWX3/9lSVLlnDvvfeW2D4iIoJjx44V+5k4cSK+vr5cffXVxdp+8cUXxdoNGTKkks9GREScmYebmZeGtAbgm1XxrNx30uBE4gj2JGUwZdFeAJ4b1JKa3u4GJ5LycDM6QFls376duXPnsnr1ajp37gzAe++9x8CBA3n99dcJDw8/5zUWi4XQ0NBi22bNmsVNN92Er69vse0BAQHntBURESlNdMPa3No1gm9WHeKpnzbz8wPdjI4kBrLZ7Dw9azO5+TauahbENW3CjI4k5eQUxXFcXBwBAQFFhTFAnz59MJvNrFy5kuuvv/6C+1i7di0bNmxg8uTJ5zz34IMPcs8999CwYUPuv/9+Ro0ahclU8go2OTk55OTkFD1OS0sDwGq1YrVaL+bUyuXMMariWNWZ+rnyqY+rhvq58jzepzELtyex/0Qm78zfTRvUz5XJkd/L3689zKr9yXi7m5lwTXPy8px3oRhH7udLUdbzcYriOCEhgeDg4GLb3NzcCAwMJCGhbMt4fvbZZ7Ro0YLu3bsX2/7CCy/Qq1cvfHx8mDdvHg888AAZGRk8/PDDJe5r0qRJTJw48Zzt8+bNw8fHp0x5KkJsbGyVHas6Uz9XPvVx1VA/V45B4SY+3Wnh8+UHGddG/VwVHK2PU3LglY0WwES/cCub4v5kk9GhKoCj9fOlysrKKlM7Q4vjp556ildffbXUNtu3b7/k45w+fZoZM2bw7LPPnvPc2ds6dOhAZmYm//3vf0stjsePH8+4ceOKHqelpREREUG/fv3w9/e/5LwXYrVaiY2NpW/fvri7azxTZVE/Vz71cdVQP1eugcCxbzfx25YEvtlrYc6/rsTHy9PoWC7JEd/Ldrud0V+v53T+CdrW8+eVUV1xc/Kp2xyxnyvCmd/0X4ihxfFjjz3GyJEjS23TsGFDQkNDSUpKKrY9Ly+P5OTkMo0V/uGHH8jKymLEiBEXbBsdHc2LL75ITk4Onp7n/3Dz9PQ873Pu7u5V+iaq6uNVV+rnyqc+rhrq58ozcUhrlu87yZEsK1NXHOGRvs2MjuTSHOm9/MPawyzedQIPi5k3hrXH24W+GDlSP1eEsp6LocVxUFAQQUFBF2wXExNDSkoKa9eupVOnTgAsXLgQm81GdHT0BV//2Wefcd1115XpWBs2bKBWrVolFsYiIiL/VMfXk/8b2JzHf9jM+4v2MrBtOE1C/IyOJZUsITWbib9sBeBffZvq79xFOMV1/xYtWjBgwABGjx7NqlWrWLZsGWPHjuWWW24pmqniyJEjNG/enFWrVhV77Z49e1iyZAn33HPPOfv95Zdf+PTTT9myZQt79uxhypQpvPzyyzz00ENVcl4iIuI6rmsbSssAG9Z8O+O+24g132Z0JKlEdnvB7BTp2Xm0iwhg9OUNjI4kFcQpimOA6dOn07x5c3r37s3AgQPp0aMHH3/8cdHzVquVnTt3njPY+vPPP6devXr069fvnH26u7szefJkYmJiaN++PR999BFvvvkmzz33XKWfj4iIuBaTycTNDW3U9HZj85FU3l+4x+hIUol+XHeEhTuS8LCYef3Gtk4/zlj+5hSzVQAEBgYyY8aMEp+PiorCbrefs/3ll1/m5ZdfPu9rBgwYwIABAyoso4iIVG8BnvD8tS341/ebef/PPVzVPJj2EQFGx5IKlpCazQuFwyke7dtEwylcjL7miIiIVKBr24YxqF04+TY7477bwOncfKMjSQWyFf69pmXn0a5eTe69vKHRkaSCqTgWERGpYC8ObkWIvyf7jmfy6twdRseRCvTp0n0s33sSb3cLb93cXsMpXJD+RkVERCpYgI8Hr93YDoCpyw+wdPcJgxNJRdh6NJX//rETgAmDWtIwyNfgRFIZVByLiIhUgiuaBnF7t/oAPP79RpIzcw1OJJfidG4+j8zcgDXfTr+WIdzSJcLoSFJJVByLiIhUkqcHtqBhUA0S0rJ54vuN571xXJzDy3O2sycpg2A/T165oS0mk8noSFJJVByLiIhUEh8PN96/tSMebmYW7Eji82UHjI4k5bBwRyJfrTgIwOvD2hFYw8PgRFKZVByLiIhUopbh/jx7TQsAXvl9O5sOpxgbSC7K0ZTTPPbdRgDu7tGAnk0vvNquODcVxyIiIpXs9m6R9G8VgjXfzkPfrCc922p0JCkDa76Nh75Zz6ksK63r+vNE/2ZGR5IqoOJYRESkkplMJl67oR11A7w5eDKLp2dt0fhjJ/DfP3ay9uAp/Lzc+OC2Tni5W4yOJFVAxbGIiEgVqOnjzru3dsBiNvHLxqNMXxlvdCQpxbytCXy8ZB8A/72xHfVr+xicSKqKimMREZEq0imyFk8W/mp+4i9bWRd/yuBEcj6HkrN4/Pu/xxkPaB1qcCKpSiqORUREqtC9PRtydetQrPl2xny9lqT0bKMjyVlO5+Zz/9drScvOo0P9AP49oLnRkaSKqTgWERGpQiaTif8Oa0fjYF8S03IYO3091nyb0bEEsNvtPPnjJrYeTSOwhgfv31YwDZ9UL/obFxERqWK+nm58dEcn/DzdWHUgmf/8tt3oSAJ8tGQfv2w8ipvZxAfDO1I3wNvoSGIAFcciIiIGaBTkyxs3tQNg6vIDfLfmkMGJqrc/dybx6twdADw3qCXdGtY2OJEYRcWxiIiIQfq1CuXhXo0B+L9Zm1mx76TBiaqnfcczePib9djtcGvXCG7vFml0JDGQimMREREDPdqnKde0DcOab+e+r9ay73iG0ZGqleTMXO6aupr07Dw6RdZi4nWtMZlMRscSA6k4FhERMZDZbOKNYe1oHxFA6mkrd09bQ0pWrtGxqoVsaz73TFvNgZNZ1A3wZsrtugFPVByLiIgYzsvdwicjOlM3wJv9JzK576u15OZpBovKZLPZ+de3G1gXn4K/lxvT7upCsJ+X0bHEAag4FhERcQBBfp58PrILvp5urNyfzLjvNpBv0xLTleXlOdv5fUsCHhYzH4/oTONgP6MjiYNQcSwiIuIgmoX6MeX2jrhbTPy66RgT/rcFu10FckX7bOl+Pl26H4D/DmurmSmkGBXHIiIiDuTyJkG8dXN7TCaYvjKet2J3GR3JpXy7Op4Xf90GwBP9mzG4fV2DE4mjUXEsIiLiYK5tG84Lg1sD8O7CPXyxbL/BiVzDzxuP8tRPmwEYfXkDHriykcGJxBGpOBYREXFAd3SL5LG+TQGY+Ms2Zq6KNziRc5u/LZFx327Abofbouvz9MAWmrJNzkvFsYiIiIMa26sxd/doAMBTP23mGxXI5fLX7uM8MGMdeTY7Q9qH89JgzWUsJVNxLCIi4qBMJhPPXNOCUZdFATD+p83MWKkC+WIs3JHI3dPWkJtno3+rEF4f1g6zWYWxlEzFsYiIiAMzmUxMuLYld11WcAX56Vmb+XrFQYNTOYe5WxKK5ozu1zKEd2/tgJtFpY+UTu8QERERB2cymXj22hbcUzjE4pnZW/hw8V5N81aKnzce5cEZ67Dm27m2bRiTh3fE081idCxxAiqORUREnIDJZOL/rmnBfVc0BOCV33fwn9+2Y9NCIef4bOl+Hpm5nnybnaEd6/LOLR1w1xVjKSO9U0RERJyEyWRi/NUteHpgcwA+Xbqfcd9t0FLThWw2Oy/9uo0Xf92G3Q4jYiJ5/cZ2WDTGWC6Cm9EBRERE5OLc27MRdXw9efKHTczecJTEtBw+GN6RWjU8jI5mmGxrPo9/v5FfNx0D4N8DmnP/FQ01K4VcNF05FhERcUJDO9bjkzs7U8PDQty+kwyevIzdielGxzLEsdTT3PxRHL9uOoa7xcTbN7dnzJWNVBhLuag4FhERcVJXNQvmpwcuo14tb+KTs7j+g+Us2J5odKwqtfpAMoPeW8rGw6kE+LgzbVRXhnTQktBSfiqORUREnFizUD9+HtuD6AaBZOTkcfe0NUz6fTvWfNceh2y325m6bD+3fryCExm5NA/145exPejeuI7R0cTJqTgWERFxcoE1PPjq7mjujIkE4KPF+7jpozgOn8oyOFnlOJmZy93T1vD8L9vIs9m5pm0YPz3QnYhAH6OjiQtQcSwiIuICPNzMTBzcmg9v74iflxvr41MY+M5fzFp/2KXmQ96RYmLQ+8tZuCMJDzczzw1qyfu3dsDHQ3MMSMVQcSwiIuJCBrQOY87Dl9M+IoC07Dz+9e1G7pm2hoTUbKOjXZKUrFzGz9rKlO0Wjmfk0iTYl/89eBmjLmugG++kQqk4FhERcTERgT58f38MT/RvhofFzIIdSfR9czFfrThInpONRbbb7fy88Sh93lzMD+uOAHB7dAQ/j+1BizB/g9OJK1JxLCIi4oLcLWYevKoxvz3cg/YRAaTn5PHs7C1c+95Slu05YXS8Mtl4KIVbPl7Bw9+s50RGLo2CavBIqzyeu7YF3h5aCloqh4pjERERF9YkxI8fx3Rn4nWtCPBxZ0dCOsM/XcndU1ez+XCq0fHOK/5kFg99s57Bk5excn8yHm5mHu3ThP89EENDXSyWSqbR6yIiIi7OYjZxZ/coBrcP5+35u/lqxUEW7EhiwY4krmwWxEO9GtMpMtDomOxISGPKor38uukY+TY7JhNc36Euj/VrRt0Ab6xWq9ERpRpQcSwiIlJNBPh48Px1rbi9WyST/9zD/zYcYdHO4yzaeZx2EQEMj67PoLbhVTpkITfPxvzticxYGc/Ss4Z79GwaxJP9m9G6bs0qyyICTjSs4j//+Q/du3fHx8eHgICAMr3GbrczYcIEwsLC8Pb2pk+fPuzevbtYm+TkZIYPH46/vz8BAQHcfffdZGRkVMIZiIiIOIbGwb68dXN7Fj52JTd3jsDdYmLjoRSe/GETXV+ez2PfbWThjkRy8yrn5r28fBvL95zg2dlb6P7KAh6Yvo6le05gMsE1bcL49aEefHlXVxXGYginuXKcm5vLsGHDiImJ4bPPPivTa1577TXeffddpk2bRoMGDXj22Wfp378/27Ztw8vLC4Dhw4dz7NgxYmNjsVqtjBo1invvvZcZM2ZU5umIiIgYLqpODV69sS1PDGjG92sOM2PVQQ4ln+bHdYf5cd1hfD3d6NogkO6NatMlKpBmoX54uV/8VWVrvo29xzNYvT+ZuH0nidt7klNZfw+RCPLz5ObOEdzcJUILeYjhnKY4njhxIgBTp04tU3u73c7bb7/NM888w+DBgwH48ssvCQkJYfbs2dxyyy1s376duXPnsnr1ajp37gzAe++9x8CBA3n99dcJDw+vlHMRERFxJHV8PRlzZSPu69mQ1QeSmbP5GL9vSSApPYeFO5JYuCMJKBi73CioBlG1axAe4E1YTS/8vNzx9jDjYbGQm59PjtVGenYeCWnZJKRms+9EJnuS0rHmF1+IJMDHnX4tQ7i6dRg9mtTB3eI0v8wWF+c0xfHF2r9/PwkJCfTp06doW82aNYmOjiYuLo5bbrmFuLg4AgICigpjgD59+mA2m1m5ciXXX3/9efedk5NDTk5O0eO0tDQArFZrldwscOYYujGhcqmfK5/6uGqon6uGq/Rzxwh/Okb48/SApmxPSCduXzIr9iWz6Ugqp7Ks7ErMYFfixQ8/rOFpoW3dmkQ3CKRbg1q0rVfz74LYlo/Vln/BfbhKHzs6V+3nsp6PyxbHCQkJAISEhBTbHhISUvRcQkICwcHBxZ53c3MjMDCwqM35TJo0qehK9tnmzZuHj0/V/TooNja2yo5VnamfK5/6uGqon6uGq/VzODC0DlxfG1Jz4UiWieQcOJVjIjUXcvIh1wZ5NhNuZjvuZvC0QE13qOlpp7YnhPvYCfTMw2RKgqwkErdC7NbyZ3K1PnZUrtbPWVlZZWpnaHH81FNP8eqrr5baZvv27TRv3ryKEpXN+PHjGTduXNHjtLQ0IiIi6NevH/7+lT8Bo9VqJTY2lr59++Lu7l7px6uu1M+VT31cNdTPVUP9XPnUx1XDVfv5zG/6L8TQ4vixxx5j5MiRpbZp2LBhufYdGhoKQGJiImFhYUXbExMTad++fVGbpKSkYq/Ly8sjOTm56PXn4+npiaen5znb3d3dq/RNVNXHq67Uz5VPfVw11M9VQ/1c+dTHVcPV+rms52JocRwUFERQUFCl7LtBgwaEhoayYMGComI4LS2NlStXMmbMGABiYmJISUlh7dq1dOrUCYCFCxdis9mIjo6ulFwiIiIi4ric5tbQ+Ph4NmzYQHx8PPn5+WzYsIENGzYUm5O4efPmzJo1CwCTycSjjz7KSy+9xM8//8zmzZsZMWIE4eHhDBkyBIAWLVowYMAARo8ezapVq1i2bBljx47llltu0UwVIiIiItWQ09yQN2HCBKZNm1b0uEOHDgD8+eefXHnllQDs3LmT1NS/14l/8sknyczM5N577yUlJYUePXowd+7cojmOAaZPn87YsWPp3bs3ZrOZG264gXfffbdqTkpEREREHIrTFMdTp0694BzHdnvxORRNJhMvvPACL7zwQomvCQwM1IIfIiIiIgI40bAKEREREZHKpuJYRERERKSQimMRERERkUIqjkVERERECqk4FhEREREppOJYRERERKSQimMRERERkUIqjkVERERECqk4FhEREREppOJYRERERKSQimMRERERkUIqjkVERERECqk4FhEREREp5GZ0AFdgt9sBSEtLq5LjWa1WsrKySEtLw93dvUqOWR2pnyuf+rhqqJ+rhvq58qmPq4ar9vOZOu1M3VYSFccVID09HYCIiAiDk4iIiIhIadLT06lZs2aJz5vsFyqf5YJsNhtHjx7Fz88Pk8lU6cdLS0sjIiKCQ4cO4e/vX+nHq67Uz5VPfVw11M9VQ/1c+dTHVcNV+9lut5Oenk54eDhmc8kji3XluAKYzWbq1atX5cf19/d3qTeto1I/Vz71cdVQP1cN9XPlUx9XDVfs59KuGJ+hG/JERERERAqpOBYRERERKaTi2Al5enry3HPP4enpaXQUl6Z+rnzq46qhfq4a6ufKpz6uGtW9n3VDnoiIiIhIIV05FhEREREppOJYRERERKSQimMRERERkUIqjkVERERECqk4djKTJ08mKioKLy8voqOjWbVqldGRXM6SJUsYNGgQ4eHhmEwmZs+ebXQklzNp0iS6dOmCn58fwcHBDBkyhJ07dxody+VMmTKFtm3bFk3kHxMTw++//250LJf2yiuvYDKZePTRR42O4lKef/55TCZTsZ/mzZsbHcslHTlyhNtvv53atWvj7e1NmzZtWLNmjdGxqpSKYyfy7bffMm7cOJ577jnWrVtHu3bt6N+/P0lJSUZHcymZmZm0a9eOyZMnGx3FZS1evJgHH3yQFStWEBsbi9VqpV+/fmRmZhodzaXUq1ePV155hbVr17JmzRp69erF4MGD2bp1q9HRXNLq1av56KOPaNu2rdFRXFKrVq04duxY0c/SpUuNjuRyTp06xWWXXYa7uzu///4727Zt44033qBWrVpGR6tSmsrNiURHR9OlSxfef/99AGw2GxERETz00EM89dRTBqdzTSaTiVmzZjFkyBCjo7i048ePExwczOLFi+nZs6fRcVxaYGAg//3vf7n77ruNjuJSMjIy6NixIx988AEvvfQS7du35+233zY6lst4/vnnmT17Nhs2bDA6ikt76qmnWLZsGX/99ZfRUQylK8dOIjc3l7Vr19KnT5+ibWazmT59+hAXF2dgMpFLl5qaChQUblI58vPzmTlzJpmZmcTExBgdx+U8+OCDXHPNNcU+o6Vi7d69m/DwcBo2bMjw4cOJj483OpLL+fnnn+ncuTPDhg0jODiYDh068Mknnxgdq8qpOHYSJ06cID8/n5CQkGLbQ0JCSEhIMCiVyKWz2Ww8+uijXHbZZbRu3droOC5n8+bN+Pr64unpyf3338+sWbNo2bKl0bFcysyZM1m3bh2TJk0yOorLio6OZurUqcydO5cpU6awf/9+Lr/8ctLT042O5lL27dvHlClTaNKkCX/88Qdjxozh4YcfZtq0aUZHq1JuRgcQkertwQcfZMuWLRo/WEmaNWvGhg0bSE1N5YcffuDOO+9k8eLFKpAryKFDh3jkkUeIjY3Fy8vL6Dgu6+qrry76c9u2bYmOjiYyMpLvvvtOQ4QqkM1mo3Pnzrz88ssAdOjQgS1btvDhhx9y5513Gpyu6ujKsZOoU6cOFouFxMTEYtsTExMJDQ01KJXIpRk7diy//vorf/75J/Xq1TM6jkvy8PCgcePGdOrUiUmTJtGuXTveeecdo2O5jLVr15KUlETHjh1xc3PDzc2NxYsX8+677+Lm5kZ+fr7REV1SQEAATZs2Zc+ePUZHcSlhYWHnfHFu0aJFtRvCouLYSXh4eNCpUycWLFhQtM1ms7FgwQKNHxSnY7fbGTt2LLNmzWLhwoU0aNDA6EjVhs1mIycnx+gYLqN3795s3ryZDRs2FP107tyZ4cOHs2HDBiwWi9ERXVJGRgZ79+4lLCzM6Cgu5bLLLjtnWs1du3YRGRlpUCJjaFiFExk3bhx33nknnTt3pmvXrrz99ttkZmYyatQoo6O5lIyMjGJXI/bv38+GDRsIDAykfv36BiZzHQ8++CAzZszgf//7H35+fkXj5mvWrIm3t7fB6VzH+PHjufrqq6lfvz7p6enMmDGDRYsW8ccffxgdzWX4+fmdM1a+Ro0a1K5dW2PoK9Djjz/OoEGDiIyM5OjRozz33HNYLBZuvfVWo6O5lH/96190796dl19+mZtuuolVq1bx8ccf8/HHHxsdrWrZxam899579vr169s9PDzsXbt2ta9YscLoSC7nzz//tAPn/Nx5551GR3MZ5+tfwP7FF18YHc2l3HXXXfbIyEi7h4eHPSgoyN67d2/7vHnzjI7l8q644gr7I488YnQMl3LzzTfbw8LC7B4eHva6devab775ZvuePXuMjuWSfvnlF3vr1q3tnp6e9ubNm9s//vhjoyNVOc1zLCIiIiJSSGOORUREREQKqTgWERERESmk4lhEREREpJCKYxERERGRQiqORUREREQKqTgWERERESmk4lhEREREpJCKYxERERGRQiqORUSc2GeffUa/fv0qZd+LFi3CZDKRkpICwNSpUwkICKiUY51Pbm4uUVFRrFmzpsqOKSKi4lhExEllZ2fz7LPP8txzz1XJ8W6++WZ27dpVJccC8PDw4PHHH+ff//53lR1TRETFsYiIk/rhhx/w9/fnsssuK7FNbm5uhR3P29ub4ODgCttfWQwfPpylS5eydevWKj2uiFRfKo5FRAx2/PhxQkNDefnll4u2LV++HA8PDxYsWFDi62bOnMmgQYOKbRs5ciRDhgzhP//5D+Hh4TRr1gyAr776is6dO+Pn50doaCi33XYbSUlJxV47Z84cmjZtire3N1dddRUHDhwo9vw/h1Xs3buXwYMHExISgq+vL126dGH+/PnFXhMVFcXLL7/MXXfdhZ+fH/Xr1+fjjz8uej43N5exY8cSFhaGl5cXkZGRTJo0qej5WrVqcdlllzFz5szSO1FEpIKoOBYRMVhQUBCff/45zz//PGvWrCE9PZ077riDsWPH0rt37xJft3TpUjp37nzO9gULFrBz505iY2P59ddfAbBarbz44ots3LiR2bNnc+DAAUaOHFn0mkOHDjF06FAGDRrEhg0buOeee3jqqadKzZ2RkcHAgQNZsGAB69evZ8CAAQwaNIj4+Phi7d544w06d+7M+vXreeCBBxgzZgw7d+4E4N133+Xnn3/mu+++Y+fOnUyfPp2oqKhir+/atSt//fVXqVlERCqMXUREHMIDDzxgb9q0qf22226zt2nTxp6dnV1i21OnTtkB+5IlS4ptv/POO+0hISH2nJycUo+1evVqO2BPT0+32+12+/jx4+0tW7Ys1ubf//63HbCfOnXKbrfb7V988YW9Zs2ape63VatW9vfee6/ocWRkpP32228vemyz2ezBwcH2KVOm2O12u/2hhx6y9+rVy26z2Urc5zvvvGOPiooq9bgiIhVFV45FRBzE66+/Tl5eHt9//z3Tp0/H09OzxLanT58GwMvL65zn2rRpg4eHR7Fta9euZdCgQdSvXx8/Pz+uuOIKgKKrvNu3byc6OrrYa2JiYkrNm5GRweOPP06LFi0ICAjA19eX7du3n3PluG3btkV/NplMhIaGFg3pGDlyJBs2bKBZs2Y8/PDDzJs375zjeHt7k5WVVWoWEZGKouJYRMRB7N27l6NHj2Kz2c4Z7/tPtWvXxmQycerUqXOeq1GjRrHHmZmZ9O/fH39/f6ZPn87q1auZNWsWcGk37D3++OPMmjWLl19+mb/++osNGzbQpk2bc/bp7u5e7LHJZMJmswHQsWNH9u/fz4svvsjp06e56aabuPHGG4u1T05OJigoqNw5RUQuhpvRAUREpKBIvf3227n55ptp1qwZ99xzD5s3by5xdoj/b++OXVKLwzCOP9fBqYSEoCU3BYUQJZf+AVscBOVAk9Ti6hCijS1SIVFDjYKggyji4CyY2KggognhP1Bw1hbv0OGCt651A/Fe+n7Gw/m9vGc6Dy+H99jtdvl8Pg2Hww/3HI9GIz09PSmXy2l7e1uS3uwO9nq9ajQac9fu7+8X1u10OkokEopGo5JeJ8kfhfr3OBwOGYYhwzAUi8W0v7+v5+dnOZ1OSdJgMFAgEPjrugDwFUyOAeAfcHJyItM0dXV1pXQ6LY/Ho8PDw4VnwuGw7u7uPqztcrlkt9t1fX2tx8dHNRoNnZ6ezt2TTCY1mUx0fHys8XisUqmkQqGwsK7b7VatVlOv11O/39fBwcGvifBn5fN5lctljUYjPTw8qFKpaGtra24rRrvdXtqPTgDgd4RjAFixVquly8tLFYtFORwO2Ww2FYtFtdtt3dzc/PHc0dGRms2mTNNcWH9zc1OFQkGVSkU+n0+5XE4XFxdz97hcLlWrVdXrdfn9ft3e3s6tlntPPp/XxsaG9vb2FIlEFA6HFQwGP//gktbX13V2dqbd3V2FQiFNp1M1m03ZbK+vp263K9M033xqAQDL8mM2m81W3QQA4Gvi8biCwaAymcyqW1kKwzDk9/uVzWZX3QqAb4LJMQD8x87Pz7W2trbqNpbi5eVFOzs7SqVSq24FwDfC5BgAAACwMDkGAAAALIRjAAAAwEI4BgAAACyEYwAAAMBCOAYAAAAshGMAAADAQjgGAAAALIRjAAAAwEI4BgAAACw/AQNC+fa9LyJCAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# 定义x的范围,这里从0到2π,足够展示一个完整的正弦波周期\n", + "x = np.linspace(0, 2 * np.pi, 1000)\n", + "\n", + "# 计算对应的正弦值\n", + "y = np.sin(x)\n", + "\n", + "# 创建图形\n", + "plt.figure(figsize=(8, 6))\n", + "\n", + "# 画出正弦波\n", + "plt.plot(x, y, label='y = sin(x)')\n", + "\n", + "# 在y轴值等于0画一条直线\n", + "plt.hlines(y=0, xmin=0, xmax=2*np.pi, colors='green', linestyles='dashed')\n", + "\n", + "# 添加图例\n", + "plt.legend()\n", + "\n", + "# 添加网格\n", + "plt.grid(True)\n", + "\n", + "# 添加x和y轴标签\n", + "plt.xlabel('x (radians)')\n", + "plt.ylabel('sin(x)')\n", + "\n", + "# 显示图形\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "f29e3a52-3984-40b0-b565-0d4491445975", + "metadata": {}, + "source": [ + "##### 余弦函数(Cosine Function,cos)\n", + "\n", + "**定义:**\n", + "- **直角三角形定义:** 在直角三角形中,对于一个锐角 $ \\theta $,余弦值定义为邻边长度与斜边长度的比值,即 $ \\cos(\\theta) = \\frac{\\text{邻边}}{\\text{斜边}} $。\n", + "- **单位圆定义:** 在单位圆上,对于任意角度 $ \\theta $,余弦值是终边与单位圆相交点的x坐标。\n", + "\n", + "动态示意图:https://www.geogebra.org/m/cNEtsbvC\n", + "\n", + "**性质:**\n", + "- 余弦函数也是周期函数,周期为 $ 2\\pi $。\n", + "- 余弦函数的值域同样为 $[-1, 1]$。\n", + "- 余弦函数是偶函数,即 $ \\cos(-\\theta) = \\cos(\\theta) $。" + ] + }, + { + "cell_type": "markdown", + "id": "b961cc26-22b0-4010-ba84-d706143eca68", + "metadata": {}, + "source": [ + "##### 正切函数(Tangent Function,tan)\n", + "\n", + "**定义:**\n", + "- **直角三角形定义:** 在直角三角形中,对于一个锐角 $ \\theta $,正切值定义为对边长度与邻边长度的比值,即 $ \\tan(\\theta) = \\frac{\\text{对边}}{\\text{邻边}} $。\n", + "- **正弦余弦比值定义:** 正切函数也可以定义为正弦函数与余弦函数的比值,即 $ \\tan(\\theta) = \\frac{\\sin(\\theta)}{\\cos(\\theta)} $。\n", + "\n", + "**性质:**\n", + "- 正切函数是周期函数,周期为 $ \\pi $。\n", + "- 正切函数的值域为所有实数,即 $ (-\\infty, \\infty) $,但在 $ \\cos(\\theta) = 0 $ 时函数无定义(即 $ \\theta = \\frac{\\pi}{2} + k\\pi $,其中 $ k $ 是整数)。\n", + "- 正切函数是奇函数,即 $ \\tan(-\\theta) = -\\tan(\\theta) $。" + ] + }, + { + "cell_type": "markdown", + "id": "04df0578-f258-47bd-9a9b-030d3de49d75", + "metadata": {}, + "source": [ + "### 数列" + ] + }, + { + "cell_type": "markdown", + "id": "584c62e4-8003-4c7a-baf4-a23937e7d5bb", + "metadata": {}, + "source": [ + "按确定顺序排列的数称为数列。用正整数表示事物发展过程的先后顺序,把正整数作为自变量的取值,把事务对应数值看作是相应的函数值,数列是定义在正整数集上的一类离散函数。\n", + "\n", + "数列形式:$a_1, a_2, a_3, ..., a_n$,简记为: $\\{a_n\\}$\n", + "\n", + "因为:$\\{a_n\\}$ 中每一项$a_n$和它的序号$n$有关系,所以数列$a_n$是从正整数集$N$或它的子集 到 实数集$R$的函数,自变量为$n$。记为:$a_n=f(n)$" + ] + }, + { + "cell_type": "markdown", + "id": "fcb71517-d8c1-4e29-b92a-4f8c46823a00", + "metadata": {}, + "source": [ + "- 递增数列:每一项都大于它前一项的数列\n", + "- 递减数列:每一项都小于它前一项的数列\n", + "- 常数列:每一项都相等的数列\n", + "- 通项公式:数列 $\\{a_n\\}$ 的第 $n$ 项 $a_n$ 与序号 $n$ 之间的对应关系可用一个式子来表示,式子即为数列的通项公式\n", + "- 数列前${a_n}$前 $n$ 项和:$ S_n= a_1 + a_2 + ... + a_n$" + ] + }, + { + "cell_type": "markdown", + "id": "4dc5e293-c882-4671-a9d1-698c53ed6709", + "metadata": {}, + "source": [ + "#### 等差数列" + ] + }, + { + "cell_type": "markdown", + "id": "ee7cbff2-0ff9-4993-ac73-b3a75b07bcd8", + "metadata": {}, + "source": [ + "等差数列(Arithmetic Sequence)指的是一个数列中任意两个相邻项的差是一个常数,这个常数被称为等差数列的公差,通常用 $d$ 表示。\n", + "\n", + "##### 定义\n", + "等差数列可以定义为一个序列 $\\{a_n\\}$,其中 $a_n$ 是序列的第 $n$ 项,且对于所有的 $n$,满足以下条件:\n", + "$ a_{n+1} - a_n = d $\n", + "其中 $d$ 是一个常数。\n", + "\n", + "##### 通项公式\n", + "等差数列的第 $n$ 项可以通过以下公式计算:\n", + "$ a_n = a_1 + (n-1)d $\n", + "其中,$a_1$ 是数列的第一项,$d$ 是公差,$n$ 是项数。\n", + "\n", + "##### 求和公式\n", + "等差数列的前 $n$ 项和 $S_n$ 可以通过以下公式计算:\n", + "$ S_n = \\frac{n}{2} (a_1 + a_n) $\n", + "或者\n", + "$ S_n = \\frac{n}{2} [2a_1 + (n-1)d] $\n", + "这里 $S_n$ 是前 $n$ 项的和,$a_1$ 是第一项,$d$ 是公差,$n$ 是项数。\n", + "\n", + "##### 等差中项\n", + "\n", + "如果在$a$和$b$间存在一个数使得 $2A = a+b$,则$A$为$a$和$b$的等差中项。\n", + "\n", + "##### 性质\n", + "1. **对称性**:如果 $m + n = p + q$,那么 $a_m + a_n = a_p + a_q$。\n", + "2. **等差中项**:如果 $m + n = 2p$,那么 $a_m + a_n = 2a_p$。\n", + "3. **等差数列的任意两项的平均值等于它们中间项的值**。\n", + "\n", + "##### 例子\n", + "一个简单的等差数列例子是 $2, 4, 6, 8, \\ldots$,其中第一项 $a_1 = 2$,公差 $d = 2$。\n" + ] + }, + { + "cell_type": "markdown", + "id": "ca2ca5fb-b226-4f25-820c-b69b3da2840a", + "metadata": {}, + "source": [ + "#### 等比数列" + ] + }, + { + "cell_type": "markdown", + "id": "285569e2-8062-4c45-8644-2013022b27d8", + "metadata": {}, + "source": [ + "等比数列(Geometric Sequence)是数学中的另一个基本概念,它指的是一个数列中任意两个相邻项的比值是一个常数,这个常数被称为等比数列的公比,通常用 $r$ 表示。\n", + "\n", + "##### 定义\n", + "等比数列可以定义为一个序列 $\\{a_n\\}$,其中 $a_n$ 是序列的第 $n$ 项,且对于所有的 $n$,满足以下条件:\n", + "$ \\frac{a_{n+1}}{a_n} = r $\n", + "其中 $r$ 是一个常数。\n", + "\n", + "##### 通项公式\n", + "等比数列的第 $n$ 项可以通过以下公式计算:\n", + "$ a_n = a_1 \\cdot r^{n-1} $\n", + "其中,$a_1$ 是数列的第一项,$r$ 是公比,$n$ 是项数。\n", + "\n", + "##### 求和公式\n", + "等比数列的前 $n$ 项和 $S_n$ 可以通过以下公式计算:\n", + "$ S_n = a_1 \\frac{1 - r^n}{1 - r} \\quad \\text{(当 } r \\neq 1\\text{)} $\n", + "如果 $r = 1$,则数列中的每一项都等于 $a_1$,所以和为:\n", + "$ S_n = n \\cdot a_1 $\n", + "\n", + "##### 推导过程\n", + "我们来推导等比数列前 $n$ 项和的公式。设等比数列的前 $n$ 项和为 $S_n$,则有:\n", + "$ S_n = a_1 + a_1r + a_1r^2 + \\ldots + a_1r^{n-1} $\n", + "\n", + "将等式两边同时乘以公比 $r$,得到:\n", + "$ rS_n = a_1r + a_1r^2 + a_1r^3 + \\ldots + a_1r^n $\n", + "\n", + "将第一个等式从第二个等式中减去,得到:\n", + "$ rS_n - S_n = a_1r^n - a_1 $\n", + "$ S_n(r - 1) = a_1(r^n - 1) $\n", + "\n", + "由于 $r \\neq 1$,我们可以将等式两边同时除以 $r - 1$,得到:\n", + "$ S_n = a_1 \\frac{r^n - 1}{r - 1} $\n", + "\n", + "这就是等比数列前 $n$ 项和的公式。\n", + "\n", + "##### 性质\n", + "1. **等比中项**:如果 $m, n, p$ 满足 $m + n = 2p$,则 $a_m \\cdot a_n = a_p^2$。\n", + "2. **等比数列的任意两项的乘积等于它们中间项的平方**。\n", + "\n", + "##### 例子\n", + "一个简单的等比数列例子是 $2, 6, 18, 54, \\ldots$,其中第一项 $a_1 = 2$,公比 $r = 3$。" + ] + }, + { + "cell_type": "markdown", + "id": "7064e0f5-e096-4e68-be75-07622ede8da9", + "metadata": {}, + "source": [ + "### 导数" + ] + }, + { + "cell_type": "markdown", + "id": "b358d7ce-a773-4dc7-b4ae-168c5762cc59", + "metadata": {}, + "source": [ + "导数定量地刻画函数的局部变化,是研究函数增减、变化快慢、最大值、最小值等性质的基本方法,是解决如增长率、膨胀率、效率、密度、速度、加速度等实际问题的基本工具。" + ] + }, + { + "cell_type": "markdown", + "id": "9477a095-7b4b-4efb-b638-6d8470b5d99f", + "metadata": {}, + "source": [ + "#### 平均变化率" + ] + }, + { + "cell_type": "markdown", + "id": "f3b479f4-c82f-42ce-949e-8b3b8e9f9961", + "metadata": {}, + "source": [ + "对于函数 $y=f(x)$,设自变量$x$ 从$x_0$变化到$x_0+\\Delta{x}$,相应地值$y$就从$f(x_0)$变化到了$f(x_0+\\Delta{x})$。此时$x, y$的变化量为:\n", + "\n", + "$$\n", + "\\Delta{y}=f(x_0+\\Delta{x})−f(x_0)\n", + "$$\n", + "\n", + "比值 $\\frac{\\Delta{y}}{\\Delta{x}} =\\frac{f(x_0+\\Delta{x})−f(x_0)}{\\Delta{x}}$ 叫做函数 $y=f(x)$从$x_0$到 $x_0+\\Delta{x}$ 的平均变化率。\n", + "\n", + "**注意**:\n", + "\n", + "在数学中,符号 \"$\\Delta$\" 被称为 \"delta\",读作 \"德尔塔\"。Delta 是希腊字母表中的第四个字母,大写形式为 $\\Delta$,小写形式为 $\\delta$,小写读音跟大写的一样。在数学和科学中,大写的 $\\Delta$ 常用来表示变化量或差分,而小写的 $\\delta$ 常用来表示一个非常小的变化量或微分。" + ] + }, + { + "cell_type": "markdown", + "id": "67fa0800-b085-4392-a514-7c3e93d4b34f", + "metadata": {}, + "source": [ + "#### 导数" + ] + }, + { + "cell_type": "markdown", + "id": "b5c88748-0fa3-4ec0-a430-6c862bf50cf3", + "metadata": {}, + "source": [ + "导数可以用平均变化率的概念来表示。对于函数 $ f(x) $ 在点 $ x $ 的导数,可以理解为函数在 $ x $ 附近的瞬时变化率,它是平均变化率在区间长度趋近于零时的极限。\n", + "\n", + "具体来说,函数 $ f(x) $ 在区间 $[x, x+\\Delta x]$ 上的平均变化率定义为:\n", + "\n", + "$ \\text{平均变化率} = \\frac{f(x + \\Delta x) - f(x)}{\\Delta x} $\n", + "\n", + "当 $\\Delta x \\to 0$ 时, 平均变化率$\\frac{\\Delta y}{\\Delta x}$无限趋近于一个确定的值,即$\\frac{\\Delta y}{\\Delta x}$有极限,则称$y=f(x)$在 $x = x_0$处可导,并把这个确定的值叫做$y = f(x)$在$x=x_0$处的导数(derivative),也叫瞬时变化率, 记作 $ f'(x) $ 或 $ \\frac{df}{dx} $,或者$y'|_{x=x_{0}}$。用极限符号表示就是:\n", + "\n", + "$ f'(x) =\\lim_{\\Delta x \\to 0} \\frac{\\Delta y}{\\Delta x} = \\lim_{\\Delta x \\to 0} \\frac{f(x + \\Delta x) - f(x)}{\\Delta x} $\n", + "\n", + "这个极限过程描述了函数在某一点 $ x $ 的瞬时变化率,也就是曲线在该点的切线斜率。因此,导数可以被视为当 $\\Delta x$ 变得无限小,即接近于 0 时的平均变化率。\n" + ] + }, + { + "cell_type": "markdown", + "id": "5410e912-afb6-41b3-be4f-f6b4549aea22", + "metadata": {}, + "source": [ + "##### 求导数示例" + ] + }, + { + "cell_type": "markdown", + "id": "a331e1cc-0fef-4588-af41-812fba156706", + "metadata": {}, + "source": [ + "1. 设 $f(x)=\\frac{1} x$ ,求$f'(1)$" + ] + }, + { + "cell_type": "markdown", + "id": "ad15241a-fcd5-483d-8c1f-8ff394eeaaf8", + "metadata": {}, + "source": [ + "解:\n", + "\n", + "$\n", + "\\begin{aligned}\n", + "f'(1) &= \\lim_{\\Delta x \\to 0} \\frac {f(1+\\Delta x)-f(1)} {\\Delta x}\\\\\n", + "&= \\lim_{\\Delta x \\to 0} \\frac {\\frac {1} {1+\\Delta x } -1} {\\Delta x}\\\\\n", + "&= \\lim_{\\Delta x \\to 0} (-\\frac 1 {1+\\Delta x})\\\\\n", + "&=-1\n", + "\\end{aligned}\n", + "$\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "d5daa59a-76ff-449b-83de-e763937c0925", + "metadata": {}, + "source": [ + "2. 将原油精炼为汽油、柴油、塑胶等各种不同产,需要对原油进行冷却和加热。已知在$x$时,原油的温度为$y=f(x)=x2−7x+15,(0<=x<=8)$。计算第$2h$时、第$6h$时原油的瞬时变化率并说明它们的意义。" + ] + }, + { + "cell_type": "markdown", + "id": "4962e330-50b3-4ade-a2ef-d447d69b5a11", + "metadata": {}, + "source": [ + "在第$2h$和第$6h$时,原油温度的瞬时变化率就是$f'(2)$和$f'(6)$。根据导数的定义:\n", + "\n", + "$\n", + "\\begin{aligned}\n", + "f'(2) &= \\frac{\\Delta y} {\\Delta x} \\\\\n", + "&= \\frac {f(2+\\Delta x)-f(2)} {\\Delta x} \\\\\n", + "&= \\frac{(2+\\Delta x)^2-7(2+\\Delta x)+15-(2^2-7×2+15)} {\\Delta x} \\\\\n", + "&= \\frac{(4\\Delta x + (\\Delta x)^2-7\\Delta x)} {\\Delta x} \\\\\n", + "&= \\Delta x - 3 \\\\\n", + "\\end{aligned}\n", + "$\n", + "\n", + "所以$f'(2) = \\lim_{\\Delta x \\rightarrow 0} \\frac {\\Delta y} {\\Delta x} = \\lim_{\\Delta x \\rightarrow 0}(\\Delta x-3) = -3$,同理可得: $f'(6) = 5$\n", + "\n", + "在第$2h$与第$6h$时,原油温度的瞬时变化率分别为$\\frac{-3^\\circ}{h}$与$\\frac{5^\\circ}{h}$。说明在第$2h$附近,原油温度大约以$\\frac{3^\\circ}{h}$的速度下降;在第$5h$附近,原池温度大约以$\\frac{5^\\circ}{h}$的速率上升。一般地 $f'(x_0) (0≤x_0≤8)$ 反映了原油温度在时刻$x_0$附近的变化情况\n" + ] + }, + { + "cell_type": "markdown", + "id": "e469dd0d-ee3c-4a44-99f3-273f50fc72f9", + "metadata": {}, + "source": [ + "3. 一辆汽车在公路上沿直线变速行驶,假设$t s$时汽车的速度为$y=v(t)=−t^2+6t+60$,求汽车在第$2s$与第$6s$时的瞬时加速度,并说明他们的意义。" + ] + }, + { + "cell_type": "markdown", + "id": "4e5d7bed-a0f8-4b4a-a140-c51bd49384db", + "metadata": {}, + "source": [ + "分析: 瞬时加速度是速度关于时间的瞬时变化率, 因此在第$2s$与第$6s$时汽车的时加速度分别为$v'(2)$, $v'(6)$\n", + "\n", + "解: 在第$2s$和第$6s$时,汽车的瞬时加速度就是$v'(2)$和$v'(6)$,根据导数的定义:" + ] + }, + { + "cell_type": "markdown", + "id": "e7ff1a71-1b3c-4acd-a2a6-db14ad85ab38", + "metadata": {}, + "source": [ + "$\n", + "\\begin{aligned}\n", + "\\frac {\\Delta y} {\\Delta t} &= \\frac {v(2+\\Delta t) - v(2)} {\\Delta t}\\\\\n", + "&= \\frac {( 2 + \\Delta t)^2 + 6(2+\\Delta t) + 60 - (-2^2 + 6 * 2 + 60)} {\\Delta t}\\\\\n", + "&= -\\Delta t + 2\n", + "\\end{aligned}\n", + "$" + ] + }, + { + "cell_type": "markdown", + "id": "257dacc8-6957-49cb-80f4-fef279737bf3", + "metadata": {}, + "source": [ + "所以 $v'(2) = \\lim_{\\Delta t \\to 0} \\frac {\\Delta y} {\\Delta t} = \\lim_{\\Delta t \\to 0} (-\\Delta t + 2) =2$。同理可得: $v'(6)=-6$。" + ] + }, + { + "cell_type": "markdown", + "id": "16bd4db1-7a13-4b74-8b49-78e8f173aa6a", + "metadata": {}, + "source": [ + "在第$2s$与第$6s$时,汽车的瞬时加速度分别是$2m/s^2$与$-6m/s^2$. 说明在第$2s$附近汽车的速度每秒大约增加$2m/s$; 在第$6s$附近,汽车的速度每秒大约减少$6m/s$。\n", + "\n", + "**注意**:\n", + "\n", + "加速度是用来描述速度随时间的变化率。加速度是一个矢量量,这意味着它既有大小也有方向。加速度的方向与速度变化的方向相同。加速度可以是正的、负的或零,分别表示速度增加、减少或保持不变。数学定义如下:\n", + "\n", + "加速度 $a$ 定义为速度 $v$ 对时间 $t$ 的导数,即:\n", + "\n", + "$a = \\frac{dv}{dt} $\n", + "\n", + "其中,$v$ 是速度,$t 是时间。\n" + ] + }, + { + "cell_type": "markdown", + "id": "1b78f2d8-2864-496d-8c28-7d70703ee35e", + "metadata": {}, + "source": [ + "#### 导数的运算" + ] + }, + { + "cell_type": "markdown", + "id": "56747350-3ae5-422c-b798-965e588c499d", + "metadata": {}, + "source": [ + "1. 常用函数的导数" + ] + }, + { + "cell_type": "markdown", + "id": "b1ad5b5c-8925-42a1-a2c6-932316eb907b", + "metadata": {}, + "source": [ + "$\n", + "\\begin{aligned}\n", + "1)\\ y&=f(x)=c\\\\\n", + "f'(x) &= \\frac {\\Delta y} {\\Delta x} = \\frac {f(x+\\Delta x) - f(x)} {\\Delta x} = \\frac {c-c} {\\Delta x} = 0\n", + "\\end{aligned}\n", + "$\n" + ] + }, + { + "cell_type": "markdown", + "id": "5bb0808d-434c-47aa-9bde-ec8ee4b216cb", + "metadata": {}, + "source": [ + "$\n", + "\\begin{aligned}\n", + "2)\\ y&=f(x)=x\\\\\n", + "f'(x) &= \\frac {\\Delta y} {\\Delta x} = \\frac {f(x+\\Delta x) - f(x)} {\\Delta x} = \\frac {(x+\\Delta x-x)} {\\Delta x} = 1\n", + "\\end{aligned}\n", + "$\n" + ] + }, + { + "cell_type": "markdown", + "id": "b8ffbee0-ac81-4713-a2f3-873dc9a4da92", + "metadata": {}, + "source": [ + "$\n", + "\\begin{aligned}\n", + "3)\\ y&=f(x)=x^2\\\\\n", + "y' &=\\frac {\\Delta y} {\\Delta x} \\\\\n", + "&= \\frac {f(x+\\Delta x)-f(x)} {\\Delta x} \\\\\n", + "&= \\frac {(x+\\Delta x)^2-x^2} {\\Delta x}\\\\\n", + "&= \\frac {x^2 + 2x * \\Delta x + (\\Delta x)^2 - x^2} {\\Delta x} \\\\\n", + "&= 2x + \\Delta x\n", + "\\end{aligned}\n", + "$\n", + "\n", + "所以$y' = \\lim_{\\Delta x \\to 0} \\frac {\\Delta y} {\\Delta x} = \\lim_{\\Delta x \\to 0} (2x + \\Delta x) = 2x$\n" + ] + }, + { + "cell_type": "markdown", + "id": "2b8803fd-62d3-4c04-a8c1-6dd56965dbf7", + "metadata": {}, + "source": [ + "$\n", + "\\begin{aligned}\n", + "4)\\ y&=f(x)=\\frac 1 x\\\\\n", + "\\frac {\\Delta y} {\\Delta x} &= \\frac {f(x+\\Delta x) - f(x)} {\\Delta x}\\\\ \n", + "&= \\frac 1 {x+\\Delta x - 1/x } {\\Delta x}\\\\\n", + "&= \\frac {x - (x + \\Delta x)} {x (x + \\Delta x) \\Delta x}\\\\\n", + "&= - \\frac 1 {x^2 + x * \\Delta x}\n", + "\\end{aligned}\n", + "$\n", + "\n", + "所以$y' = \\lim_{\\Delta x \\to 0} \\frac {\\Delta y} {\\Delta x} = \\lim_{\\Delta x \\to 0} \\frac {- 1} {x^2 + x * \\Delta x} = - \\frac 1 {x^2}$\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "2ae67538-9e82-43e2-af84-a4b2c7f045b3", + "metadata": {}, + "source": [ + "$\n", + "\\begin{aligned}\n", + "5)\\ y&=f(x)=\\sqrt x\\\\\n", + "\\frac {\\Delta y} {\\Delta x}\n", + "&= \\frac {f(x+\\Delta x) - f(x)} {\\Delta x}\\\\\n", + "&=\\frac {\\sqrt {x+\\Delta x} - \\sqrt x} {\\Delta x}\\\\\n", + "&= \\frac 1 {\\sqrt {x+\\Delta x} + \\sqrt x}\n", + "\\end{aligned}\n", + "$\n", + "\n", + "所以$y' = \\lim_{\\Delta x \\to 0} \\frac {\\Delta y} {\\Delta x} = \\lim_{\\Delta x \\to 0} \\frac 1 {\\sqrt {x+\\Delta x} + \\sqrt x} = \\frac 1 {2\\sqrt x}$" + ] + }, + { + "cell_type": "markdown", + "id": "9d9ad755-1efc-4408-a732-ec57d946a9e5", + "metadata": {}, + "source": [ + "#### 基本初等函数的导数公式" + ] + }, + { + "cell_type": "markdown", + "id": "9d294dd2-df92-480c-adfd-ad8deb59ee9c", + "metadata": {}, + "source": [ + "基本初等函数是一类在数学中非常重要的函数,它们通常在初等数学和高等数学的入门课程中被介绍。这些函数因其简单性、基础性以及在数学和科学中的广泛应用而被称为“基本”。以下是一些最常见的基本初等函数:\n", + "\n", + "1. **常数函数**:\n", + " - $ f(x) = c $,其中 $ c $ 是一个常数。\n", + "\n", + "2. **幂函数**:\n", + " - $ f(x) = x^n $,其中 $ n $ 是实数,包括正整数、负整数和分数。\n", + "\n", + "3. **指数函数**:\n", + " - $ f(x) = a^x $,其中 $ a > 0 $ 且 $ a \\neq 1 $。\n", + "\n", + "4. **对数函数**:\n", + " - $ f(x) = \\log_a(x) $,其中 $ a > 0 $,$ a \\neq 1 $,且 $ x > 0 $。\n", + "\n", + "5. **三角函数**:\n", + " - 正弦函数:$ f(x) = \\sin(x) $\n", + " - 余弦函数:$ f(x) = \\cos(x) $\n", + " - 正切函数:$ f(x) = \\tan(x) $\n", + " - 以及它们的反函数:反正弦函数、反余弦函数和反正切函数。\n", + "\n", + "6. **反三角函数**(也称为弧函数):\n", + " - $ f(x) = \\arcsin(x) $\n", + " - $ f(x) = \\arccos(x) $\n", + " - $ f(x) = \\arctan(x) $\n", + "\n", + "7. **线性函数**:\n", + " - $ f(x) = mx + b $,其中 $ m $ 和 $ b $ 是常数。\n", + "\n", + "8. **绝对值函数**:\n", + " - $ f(x) = |x| $\n", + "\n", + "9. **符号函数**:\n", + " - $ f(x) = \\text{sgn}(x) $,返回 $ x $ 的符号,正数为 1,负数为 -1,零为 0。\n", + "\n", + "这些基本初等函数可以**通过加、减、乘、除等运算组合成更复杂的函数,称为初等函数**。初等函数包括所有可以通过有限次的初等运算(包括指数和对数)以及有限次的复合运算得到的函数。\n" + ] + }, + { + "cell_type": "markdown", + "id": "37bb6973-e212-4c01-9a0c-78387886596b", + "metadata": {}, + "source": [ + "基本初等函数的导数公式:\n", + "1. 若$f(x)=c$($c$为常数),则$f'(x)=0$\n", + "2. 若$f(x)=nx(n \\in Q)$,则$f'(x)=n$\n", + "3. 若$f(x)=sinx$,则 $f'(x)=cosx$\n", + "4. 若$f(x)=cosx$,则$f'(x)=-sinx$\n", + "5. 若$f(x)=a^x$,则$f'(x)=a^x \\ln{a}$,其中$ a $ 是一个大于0且不等于1的常数\n", + "6. 若$f(x)=e^x$,则$f'(x)=e^x$; **自然指数函数 e^x 的导数是其自身**\n", + "7. 若$f(x)=\\log_a x$,则 $\\frac{1}{x \\ln{a}}$,其中 $a$ 是一个大于0且不等于1的常数\n", + "8. 若$f(x)=\\ln x$,则$f'(x)=\\frac{1}{x}$" + ] + }, + { + "cell_type": "markdown", + "id": "c5e6ae6b-f856-4d20-94b9-6b32bd2cab8e", + "metadata": {}, + "source": [ + "#### 导数运算法则" + ] + }, + { + "cell_type": "markdown", + "id": "3f805293-cdcb-4184-a149-d07f6c35112a", + "metadata": {}, + "source": [ + "以下是一些常用的导数运算法则:\n", + "\n", + "1. **幂法则**:\n", + " 如果 $ f(x) = x^n $,其中 $ n $ 是实数,则 $ f'(x) = nx^{n-1} $。\n", + "\n", + "2. **常数法则**:\n", + " 如果 $ f(x) = c $,其中 $ c $ 是常数,则 $ f'(x) = 0 $。\n", + "\n", + "3. **和法则**:\n", + " 如果 $ f(x) = g(x) + h(x) $,则 $ f'(x) = g'(x) + h'(x) $。\n", + "\n", + "4. **差法则**:\n", + " 如果 $ f(x) = g(x) - h(x) $,则 $ f'(x) = g'(x) - h'(x) $。\n", + "\n", + "5. **常数倍法则**:\n", + " 如果 $ f(x) = c \\cdot g(x) $,其中 $ c $ 是常数,则 $ f'(x) = c \\cdot g'(x) $。\n", + "\n", + "6. **乘积法则**:\n", + " 如果 $ f(x) = g(x) \\cdot h(x) $,则 $ f'(x) = g'(x) \\cdot h(x) + g(x) \\cdot h'(x) $。\n", + "\n", + "7. **商法则**:\n", + " 如果 $ f(x) = \\frac{g(x)}{h(x)} $,则 $ f'(x) = \\frac{g'(x) \\cdot h(x) - g(x) \\cdot h'(x)}{[h(x)]^2} $。\n", + "\n", + "8. **链式法则**:\n", + " 如果 $ f(x) = g(h(x)) $,则 $ f'(x) = g'(h(x)) \\cdot h'(x) $。\n", + "\n", + "9. **反函数法则**:\n", + " 如果 $ y = f^{-1}(x) $,则 $ \\frac{dy}{dx} = \\frac{1}{f'(f^{-1}(x))} $。\n", + "\n", + "10. **复合函数法则**(链式法则的另一种表述):\n", + " 如果 $ y = f(g(x)) $,则 $ \\frac{dy}{dx} = f'(g(x)) \\cdot g'(x) $。\n", + "\n", + "这些法则是微积分中求导的基础,它们可以组合使用来求更复杂函数的导数。掌握这些运算法则对于解决微积分问题至关重要。\n" + ] + }, + { + "cell_type": "markdown", + "id": "5261fcc8-f4a7-4700-afab-f763c12c5ca6", + "metadata": {}, + "source": [ + "#### 导数在研究函数中的应用" + ] + }, + { + "cell_type": "markdown", + "id": "19567532-56b2-41be-9ad5-67f2bca16188", + "metadata": {}, + "source": [ + "##### 函数的单调性\n", + "在某个区间$(a,b)$内, 如果$f'(x)>0$,那么函数$y=f(x)$在这个区间内单调递增; 如果$f'(x)<0$,那么函数$y=f(x)$在这个区间内单调递减" + ] + }, + { + "cell_type": "markdown", + "id": "1150b9fc-c61c-403a-b6e0-11202a6a6365", + "metadata": {}, + "source": [ + "##### 函数的极值与导数\n", + "\n", + "求函数$y=f(x)$的极值的方法是:\n", + "\n", + "解方程$f'(x)=0$. 当$f(x_0)=0$时:\n", + "(1) 如果在$x_0$附近的左侧$f'(x)>0$,右侧$f'(x)<0$,那么$f(x_0)$是极大值;\n", + "(2) 如果在$x_0$附近的左侧$f'(x)<0$,右侧$f'(x)>0$,那么$f(x_0)$是极小值" + ] + }, + { + "cell_type": "markdown", + "id": "6818fc86-cfae-492b-a6a2-fafee8075d68", + "metadata": {}, + "source": [ + "### 定积分" + ] + }, + { + "cell_type": "markdown", + "id": "c56cd7ff-eba6-41a3-a4b8-74e6885eabc9", + "metadata": {}, + "source": [ + "定积分是微积分中的一个核心概念,它表示在指定区间内函数与x轴之间的有符号面积,或者更一般地,表示函数在该区间上的累积效应。定积分通常用于计算面积、体积、功、概率以及其他各种物理和工程问题中的量。\n", + "\n", + "#### 定义\n", + "\n", + "如果 $ f(x) $ 是区间 $[a, b]$ 上的连续函数,定积分 $\\int_{a}^{b} f(x) \\, dx$ 表示从 $ x = a $ 到 $ x = b $ 曲线 $ y = f(x) $ 下方的面积。这里的 $ dx $ 表示积分变量的微分,而 $[a, b]$ 是积分的上下限。\n", + "\n", + "#### 几何解释\n", + "\n", + "1. **面积解释**:如果 $ f(x) \\geq 0 $ 在 $[a, b]$ 上,那么 $\\int_{a}^{b} f(x) \\, dx$ 表示曲线 $ y = f(x) $、x轴以及垂直线 $ x = a $ 和 $ x = b $ 之间的面积。\n", + "2. **有符号面积**:如果 $ f(x) $ 在 $[a, b]$ 上取正值和负值,那么定积分表示的是x轴上方面积减去x轴下方面积的净结果。\n", + "\n", + "#### 计算方法\n", + "\n", + "1. **黎曼和**:定积分可以通过黎曼和的概念来近似计算。将区间 $[a, b]$ 分成 $ n $ 个小区间,每个小区间的宽度为 $\\Delta x$,然后计算每个小区间的矩形面积之和,当 $ n $ 趋向于无穷大时,这个和趋向于定积分的值。\n", + "2. **微积分基本定理**:如果 $ F(x) $ 是 $ f(x) $ 的一个原函数(即 $ F'(x) = f(x) $),那么 $\\int_{a}^{b} f(x) \\, dx = F(b) - F(a)$。这个定理提供了一种计算定积分的实用方法。" + ] + }, + { + "cell_type": "markdown", + "id": "4494be6c-1812-42dd-b1e8-7a2ad04fdae2", + "metadata": {}, + "source": [ + "下面是$f(x)=x^2$,在区间 $[0,0.8]$ 上的定积分之间的示意图:" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "331e4b5e-a804-46ff-ab26-ea3740911175", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# 定义函数 f(x) = x^2\n", + "def f(x):\n", + " return x**2\n", + "\n", + "# 生成x的值\n", + "x = np.linspace(0, 1, 100) # 从0到1生成100个点\n", + "\n", + "# 计算对应的y值\n", + "y = f(x)\n", + "\n", + "# 计算定积分的值,即曲线下面积从0到0.8\n", + "area = np.trapezoid(y[:81], x[:81]) # 使用梯形法则计算定积分,只取前81个点\n", + "\n", + "# 绘制函数图像\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(x, y, label='f(x) = x^2')\n", + "\n", + "# 填充定积分区域\n", + "plt.fill_between(x[:81], y[:81], alpha=0.4) # 只填充从0到0.8的部分\n", + "\n", + "# 显示定积分值\n", + "plt.text(0.4, 0.16, f'Area = {area:.2f}', horizontalalignment='center', verticalalignment='center')\n", + "\n", + "# 添加图例\n", + "plt.legend()\n", + "\n", + "# 添加网格\n", + "plt.grid(True)\n", + "\n", + "# 添加x和y轴标签\n", + "plt.xlabel('x')\n", + "plt.ylabel('f(x)')\n", + "\n", + "# 显示图形\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "328c4dc7-54ae-418d-9c16-e3e2b56dd351", + "metadata": {}, + "source": [ + "#### 定积分推导" + ] + }, + { + "cell_type": "markdown", + "id": "cf90fced-032c-49c5-9b24-12612d259570", + "metadata": {}, + "source": [ + "定积分的推导通常基于黎曼和的概念,这是一个将区间分割成许多小矩形来近似曲线下面积的过程。以下是定积分推导的基本步骤:\n", + "\n", + "1. **分割区间**:\n", + " 将区间 $[a, b]$ 分割成 $n$ 个小区间,每个小区间的宽度为 $\\Delta x = \\frac{b - a}{n}$。\n", + "\n", + "2. **选择样本点**:\n", + " 在每个小区间的右端点、左端点或中点选择一个样本点 $x_i$,其中 $x_i = a + i\\Delta x$。\n", + "\n", + "3. **形成黎曼和**:\n", + " 使用样本点的函数值和小区间的宽度形成黎曼和:\n", + " $ S_n = \\sum_{i=1}^{n} f(x_i) \\Delta x $\n", + " 这个和表示 $n$ 个矩形的面积之和,每个矩形的高度为 $f(x_i)$,宽度为 $\\Delta x$。\n", + "\n", + "4. **取极限**:\n", + " 当 $n$ 趋向于无穷大时,每个小区间的宽度 $\\Delta x$ 趋向于零,黎曼和趋向于定积分的精确值:\n", + " $ \\int_{a}^{b} f(x) \\, dx = \\lim_{n \\to \\infty} \\sum_{i=1}^{n} f(x_i) \\Delta x $\n", + "\n", + "5. **微积分基本定理**:\n", + " 如果 $f(x)$ 在 $[a, b]$ 上连续,并且 $F(x)$ 是 $f(x)$ 的一个原函数(即 $F'(x) = f(x)$),那么定积分可以被计算为:\n", + " $ \\int_{a}^{b} f(x) \\, dx = F(b) - F(a) $\n", + " 这个定理提供了一种使用原函数来计算定积分的方法。\n", + "\n", + "6. **几何解释**:\n", + " 定积分的几何解释是函数 $f(x)$ 在区间 $[a, b]$ 上的曲线与 x 轴之间的有符号面积。如果 $f(x)$ 在 $[a, b]$ 上非负,则定积分直接给出了面积;如果 $f(x)$ 取正值和负值,则定积分给出了净面积(x轴上方的面积减去x轴下方的面积)。\n", + "\n", + "这个推导过程展示了如何从离散的求和过渡到连续的积分,并且解释了为什么定积分可以用来计算曲线下的面积。定积分的这种推导是微积分中的一个重要里程碑,它连接了极限、连续性和积分的概念。\n" + ] + }, + { + "cell_type": "markdown", + "id": "9e88b360-c8e7-48b7-bc05-55af2c481e36", + "metadata": {}, + "source": [ + "## 矩阵" + ] + }, + { + "cell_type": "markdown", + "id": "2af3c425-6d05-4366-a236-e85a23824d79", + "metadata": {}, + "source": [ + "### 矩阵与向量" + ] + }, + { + "cell_type": "markdown", + "id": "2d531ca8-1d53-44f1-a7ee-10fd00b9117e", + "metadata": {}, + "source": [ + "#### 1. 矩阵" + ] + }, + { + "cell_type": "markdown", + "id": "d749fba9-6d5b-4336-a915-a7bb35e37e96", + "metadata": {}, + "source": [ + "矩阵是矩形的数组。\n", + "\n", + "- 矩阵表示:$A = (a_{ij})$, 其中$i$=1, 2; $j$=1,2,3。\n", + "- 矩阵元素表示:第$i$行,第$j$列的元素通常表示为$a_{ij}$。用大写字母表示矩阵,用小写字母表示矩阵中的元素。\n", + "- 矩阵集合:用$R^{m×n}$ 所有元素为实数的$m \\times n$矩阵集合。\n", + "- 矩阵来自集合表示:元素来自集合$S$的$m \\times n$ 矩阵的集合可用$S^{m×n}$表示。" + ] + }, + { + "cell_type": "markdown", + "id": "36728cc9-e1df-4844-a465-21466e2437da", + "metadata": {}, + "source": [] + }, + { + "cell_type": "markdown", + "id": "ff1c2b22-c671-4846-b472-c58725348027", + "metadata": {}, + "source": [ + "#### 2. 矩阵转置\n", + "\n", + "交换矩阵的行和列,获得的矩阵是矩阵$A$的转置$A^T$" + ] + }, + { + "cell_type": "markdown", + "id": "de6ccfba-5cde-4f40-9b4b-8b841ba72b42", + "metadata": {}, + "source": [ + "$$\n", + "A =\\begin{bmatrix}\n", + "a_{11} & a_{12} & a_{13} \\\\\n", + "a_{21} & a_{22} & a_{23} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "1 & 2 & 3 \\\\\n", + "4 & 5 & 6 \\\\\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "$$\n", + "A^T = \\begin{bmatrix}\n", + "a_{11} & a_{21} \\\\\n", + "a_{12} & a_{22} \\\\\n", + "a_{13} & a_{23} \\\\\n", + "\\end{bmatrix} = \\begin{bmatrix}\n", + "1 & 4 \\\\\n", + "2 & 5 \\\\\n", + "3 & 6 \\\\\n", + "\\end{bmatrix}\n", + "$$\n" + ] + }, + { + "cell_type": "markdown", + "id": "5b71656b-d0b9-4a18-8360-12516370cdcc", + "metadata": {}, + "source": [ + "#### 3. 向量" + ] + }, + { + "cell_type": "markdown", + "id": "125caa8b-2e5e-4e5b-9624-d56ab1da2719", + "metadata": {}, + "source": [ + "向量是一维数组。长度为n的向量称为n向量,用$x_i$表示向量中第$i$个元素,其中$i=1,2,3..n$。将向量的标准形式定义为列向量,是$n \\times 1$的矩阵,转置后是行向量。" + ] + }, + { + "cell_type": "markdown", + "id": "57a68719-6946-4e46-a4ec-6f37a443d7ea", + "metadata": {}, + "source": [ + "$$\n", + "x = \\begin{bmatrix}\n", + "2 \\\\\n", + "3 \\\\\n", + "5\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "$$\n", + "x^T = \\begin{bmatrix}\n", + "2 & 3 & 5\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "88b3882b-4999-43b4-9215-ef6490cd65fc", + "metadata": {}, + "source": [ + "单位向量:$e_i$是除第$i$个元素为1,其他均为0的向量。" + ] + }, + { + "cell_type": "markdown", + "id": "afeece60-0b7b-4dec-a7b3-d3a862904314", + "metadata": {}, + "source": [ + "### 各种矩阵" + ] + }, + { + "cell_type": "markdown", + "id": "a797321d-1478-4a6d-aa8e-ec1a5f35447f", + "metadata": {}, + "source": [ + "#### 零矩阵\n", + "\n", + "零矩阵(Zero Matrix)是一个所有元素都是零的矩阵。\n", + "\n", + "零矩阵可以用不同的方式表示,最常见的表示方法包括:\n", + "\n", + "1. **符号表示**:\n", + " - $ \\mathbf{0} $:表示一个未指定大小的零矩阵。\n", + " - $ \\mathbf{0}_{m \\times n} $:表示一个 $ m \\times n $ 的零矩阵。\n", + "\n", + "2. **数学表示**:\n", + " $$ \\mathbf{0}_{m \\times n} = \\begin{bmatrix}\n", + " 0 & 0 & \\cdots & 0 \\\\\n", + " 0 & 0 & \\cdots & 0 \\\\\n", + " \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + " 0 & 0 & \\cdots & 0\n", + " \\end{bmatrix}_{m \\times n} $$\n", + "\n", + "##### 性质\n", + "1. **加法单位元**:零矩阵是矩阵加法的单位元,即对于任何 $ m \\times n $ 矩阵 $ A $,有 $ A + \\mathbf{0}_{m \\times n} = A $。\n", + "2. **乘法零元**:零矩阵与任何矩阵相乘的结果都是零矩阵,即 $ A \\mathbf{0}_{n \\times p} = \\mathbf{0}_{m \\times p} $ 和 $ \\mathbf{0}_{m \\times n} B = \\mathbf{0}_{m \\times p} $,其中 $ A $ 是 $ m \\times n $ 矩阵,$ B $ 是 $ n \\times p $ 矩阵。\n" + ] + }, + { + "cell_type": "markdown", + "id": "7b4c893e-368d-4640-acc7-334701fc266c", + "metadata": {}, + "source": [ + "#### 方阵\n", + "\n", + "$n \\times n$的矩阵称为方阵" + ] + }, + { + "cell_type": "markdown", + "id": "6b939589-d809-4537-b243-1913e0c6d4db", + "metadata": {}, + "source": [ + "#### 对角矩阵\n", + "\n", + "对角矩阵(Diagonal Matrix)是方阵(即行数和列数相等的矩阵)中的一种特殊类型,其特点是除了主对角线上的元素外,所有其他元素都是零。主对角线上的元素可以是任意实数或复数。" + ] + }, + { + "cell_type": "markdown", + "id": "5b57ff06-51c5-48b4-939c-601adaa51848", + "metadata": {}, + "source": [ + "##### 定义\n", + "如果矩阵 $ A $ 的大小为 $ n \\times n $,且对于所有的 $ i \\neq j $,都有 $ a_{ij} = 0 $,则称 $ A $ 为对角矩阵。这里,$ a_{ij} $ 表示矩阵 $ A $ 中第 $ i $ 行第 $ j $ 列的元素。\n", + "\n", + "##### 数学表示\n", + "\n", + "对角矩阵可以表示为:\n", + "$$ A = \\begin{bmatrix}\n", + "a_{11} & 0 & \\cdots & 0 \\\\\n", + "0 & a_{22} & \\cdots & 0 \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "0 & 0 & \\cdots & a_{nn}\n", + "\\end{bmatrix} $$\n", + "其中,$ a_{11}, a_{22}, \\ldots, a_{nn} $ 是主对角线上的元素。" + ] + }, + { + "cell_type": "markdown", + "id": "7eb024f3-2691-49ab-955b-6d0b92d8b561", + "metadata": {}, + "source": [ + "#### 单位矩阵" + ] + }, + { + "cell_type": "markdown", + "id": "4691b010-54af-4772-a132-68b8fbebfc3a", + "metadata": {}, + "source": [ + "单位矩阵(Identity Matrix),通常表示为 $ I $ 或 $ I_n $(其中 $ n $ 是矩阵的大小),是一种特殊的对角矩阵。它的所有主对角线上的元素都是1,而所有非对角线上的元素都是0。单位矩阵在矩阵乘法中充当乘法单位元,类似于数的乘法中的数字1。\n", + "\n", + "##### 定义\n", + "单位矩阵是一个 $ n \\times n $ 的方阵,其中所有对角线元素 $ a_{ii} $ 都是1,所有非对角线元素 $ a_{ij} $($ i \\neq j $)都是0。\n", + "\n", + "##### 数学表示\n", + "单位矩阵可以表示为:\n", + "$$\n", + "I_n = \\begin{bmatrix}\n", + "1 & 0 & \\cdots & 0 \\\\\n", + "0 & 1 & \\cdots & 0 \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "0 & 0 & \\cdots & 1\n", + "\\end{bmatrix}_{n \\times n}\n", + "$$\n", + "\n", + "### 性质\n", + "1. **乘法单位元**:对于任何 $ n \\times n $ 矩阵 $ A $,有 $ A \\cdot I_n = I_n \\cdot A = A $。\n", + "2. **逆矩阵**:单位矩阵是它自己的逆矩阵,即 $ I_n^{-1} = I_n $。\n", + "3. **特征值**:单位矩阵的所有特征值都是1。\n", + "4. **行列式**:单位矩阵的行列式是1。\n", + "5. **迹**:单位矩阵的迹(即所有对角线元素的和)是 $ n $。" + ] + }, + { + "cell_type": "markdown", + "id": "1159d22b-3426-4a9a-b863-4e75561a78c0", + "metadata": {}, + "source": [ + "#### 对称矩阵\n", + "\n", + "若一个矩阵转置后 $A=A^T$,则$A$是对称矩阵。\n", + "\n", + "$$\n", + "A=\\begin{bmatrix}\n", + "1 & 2 & 3 \\\\\n", + "2 & 6 & 4 \\\\\n", + "3 & 4 & 5 \\\\\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "00841d3b-ffd4-4b3a-98b4-6685e3d46ff7", + "metadata": {}, + "source": [ + "### 矩阵基本操作" + ] + }, + { + "cell_type": "markdown", + "id": "477fdd56-4fad-4024-ad53-f69aa78a4070", + "metadata": {}, + "source": [ + "#### 矩阵加法\n", + "\n", + "矩阵加法是线性代数中的一种基本运算,只有当两个矩阵具有相同的维度时,它们才能进行加法运算。\n", + "\n", + "##### 定义\n", + "如果有两个相同大小的矩阵 $A $ 和 $B $,它们都是 $m \\times n $ 的矩阵,那么矩阵 $A $ 和 $B $ 的和,记作 $C = A + B $,也是一个 $m \\times n $ 的矩阵,其中每个元素 $c_{ij} $ 由下式给出:\n", + "$$ c_{ij} = a_{ij} + b_{ij} $$\n", + "这里,$a_{ij} $ 是矩阵 $A $ 中第 $i $ 行第 $j $ 列的元素,$b_{ij} $ 是矩阵 $B $ 中第 $i $ 行第 $j $ 列的元素,而 $c_{ij} $ 是结果矩阵 $C $ 中对应的元素。\n", + "\n", + "##### 数学表示\n", + "假设矩阵 $A $ 和 $B $ 是:\n", + "$$\n", + "A = \\begin{bmatrix}\n", + "a_{11} & a_{12} & \\cdots & a_{1n} \\\\\n", + "a_{21} & a_{22} & \\cdots & a_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "a_{m1} & a_{m2} & \\cdots & a_{mn}\n", + "\\end{bmatrix}\n", + "$$\n", + "$$\n", + "B = \\begin{bmatrix}\n", + "b_{11} & b_{12} & \\cdots & b_{1n} \\\\\n", + "b_{21} & b_{22} & \\cdots & b_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "b_{m1} & b_{m2} & \\cdots & b_{mn}\n", + "\\end{bmatrix} \n", + "$$\n", + "那么它们的和 $C = A + B $ 是:\n", + "\n", + "$$\n", + "C = \\begin{bmatrix}\n", + "a_{11} + b_{11} & a_{12} + b_{12} & \\cdots & a_{1n} + b_{1n} \\\\\n", + "a_{21} + b_{21} & a_{22} + b_{22} & \\cdots & a_{2n} + b_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "a_{m1} + b_{m1} & a_{m2} + b_{m2} & \\cdots & a_{mn} + b_{mn}\n", + "\\end{bmatrix} \n", + "$$\n", + "\n", + "##### 性质\n", + "1. **交换律**:$A + B = B + A $。\n", + "2. **结合律**:$(A + B) + C = A + (B + C) $。\n", + "3. **加法单位元**:存在一个零矩阵 $\\mathbf{0} $,使得对于任何矩阵 $A $,有 $A + \\mathbf{0} = A $。\n", + "4. **加法逆元**:对于每一个矩阵 $A $,存在一个矩阵 $-A $,使得 $A + (-A) = \\mathbf{0} $。\n" + ] + }, + { + "cell_type": "markdown", + "id": "b77cd168-21ab-4ad9-be24-cd1f84663735", + "metadata": {}, + "source": [ + "#### 矩阵数乘\n", + "\n", + "矩阵数乘,也称为标量乘法,是指将矩阵的每一个元素乘以一个标量(即一个单独的数字)。这个操作的结果是一个新矩阵,其维度与原矩阵相同,但每个元素都是原矩阵对应元素与该标量的乘积。\n", + "\n", + "##### 定义\n", + "如果有一个 $ m \\times n $ 的矩阵 $ A $ 和一个标量 $ k $,矩阵数乘的结果是一个同样大小的 $ m \\times n $ 矩阵 $ B $,其中每个元素 $ b_{ij} $ 由下式给出:\n", + "$$ b_{ij} = k \\cdot a_{ij} $$\n", + "这里,$ a_{ij} $ 是矩阵 $ A $ 中第 $ i $ 行第 $ j $ 列的元素,而 $ b_{ij} $ 是结果矩阵 $ B $ 中对应的元素。\n", + "\n", + "##### 数学表示\n", + "假设矩阵 $ A $ 是:\n", + "$$\n", + "A = \\begin{bmatrix}\n", + "a_{11} & a_{12} & \\cdots & a_{1n} \\\\\n", + "a_{21} & a_{22} & \\cdots & a_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "a_{m1} & a_{m2} & \\cdots & a_{mn}\n", + "\\end{bmatrix}\n", + "$$\n", + "那么标量 $ k $ 与矩阵 $ A $ 的数乘结果是:\n", + "$$ kA = \\begin{bmatrix}\n", + "k \\cdot a_{11} & k \\cdot a_{12} & \\cdots & k \\cdot a_{1n} \\\\\n", + "k \\cdot a_{21} & k \\cdot a_{22} & \\cdots & k \\cdot a_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "k \\cdot a_{m1} & k \\cdot a_{m2} & \\cdots & k \\cdot a_{mn}\n", + "\\end{bmatrix} $$\n", + "\n", + "##### 性质\n", + "1. **分配律**:$ k(A + B) = kA + kB $,其中 $ A $ 和 $ B $ 是同样大小的矩阵。\n", + "2. **结合律**:$ (k \\cdot l)A = k(lA) $,其中 $ k $ 和 $ l $ 是标量。\n", + "3. **恒等律**:$ 1A = A $,其中 1 是标量。\n" + ] + }, + { + "cell_type": "markdown", + "id": "aa123160-ac0d-44d9-9a66-dcd9421e3b15", + "metadata": {}, + "source": [ + "#### 矩阵减法" + ] + }, + { + "cell_type": "markdown", + "id": "9b227cdd-aa47-4ea2-aa76-90ebceb8243b", + "metadata": {}, + "source": [ + "矩阵减法是线性代数中的另一种基本运算,与矩阵加法类似,只有当两个矩阵具有相同的维度时,它们才能进行减法运算。\n", + "\n", + "##### 定义\n", + "如果有两个相同大小的矩阵 $ A $ 和 $ B $,它们都是 $ m \\times n $ 的矩阵,那么矩阵 $ A $ 和 $ B $ 的差,记作 $ C = A - B $,也是一个 $ m \\times n $ 的矩阵,其中每个元素 $ c_{ij} $ 由下式给出:\n", + "$ c_{ij} = a_{ij} - b_{ij} $\n", + "这里,$ a_{ij} $ 是矩阵 $ A $ 中第 $ i $ 行第 $ j $ 列的元素,$ b_{ij} $ 是矩阵 $ B $ 中第 $ i $ 行第 $ j $ 列的元素,而 $ c_{ij} $ 是结果矩阵 $ C $ 中对应的元素。\n", + "\n", + "##### 数学表示\n", + "假设矩阵 $ A $ 和 $ B $ 是:\n", + "$$\n", + "A = \\begin{bmatrix}\n", + "a_{11} & a_{12} & \\cdots & a_{1n} \\\\\n", + "a_{21} & a_{22} & \\cdots & a_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "a_{m1} & a_{m2} & \\cdots & a_{mn}\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "$$\n", + "B = \\begin{bmatrix}\n", + "b_{11} & b_{12} & \\cdots & b_{1n} \\\\\n", + "b_{21} & b_{22} & \\cdots & b_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "b_{m1} & b_{m2} & \\cdots & b_{mn}\n", + "\\end{bmatrix} \n", + "$$\n", + "那么它们的差 $ C = A - B $ 是:\n", + "$$ \n", + "C = \\begin{bmatrix}\n", + "a_{11} - b_{11} & a_{12} - b_{12} & \\cdots & a_{1n} - b_{1n} \\\\\n", + "a_{21} - b_{21} & a_{22} - b_{22} & \\cdots & a_{2n} - b_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "a_{m1} - b_{m1} & a_{m2} - b_{m2} & \\cdots & a_{mn} - b_{mn}\n", + "\\end{bmatrix} \n", + "$$\n", + "\n", + "##### 性质\n", + "1. **非交换律**:$ A - B \\neq B - A $。\n", + "2. **结合律**:减法不满足结合律,因为 $ (A - B) - C $ 和 $ A - (B - C) $ 通常不相等。\n", + "3. **减法单位元**:存在一个零矩阵 $ \\mathbf{0} $,使得对于任何矩阵 $ A $,有 $ A - \\mathbf{0} = A $。\n", + "4. **减法逆元**:对于每一个矩阵 $ A $,存在一个矩阵 $ -A $,使得 $ A - (-A) = A + A = 2A $。" + ] + }, + { + "cell_type": "markdown", + "id": "9abc1fd4-3cbb-4540-ab7e-24b94d810902", + "metadata": {}, + "source": [ + "#### 矩阵乘法" + ] + }, + { + "cell_type": "markdown", + "id": "5f0d51d3-168b-4b6d-8f89-bdf9112dc655", + "metadata": {}, + "source": [ + "两个相容的矩阵A和B,即A的列数与B的行数相等才能相乘。\n", + "\n", + "$$\n", + "A_{m \\times n}B_{n \\times p} = C_{m \\times p}\n", + "$$\n", + "$$\n", + "c_{ij}=\\sum_{k=1}^na_{ik}b_{kj}\n", + "$$\n", + "\n", + "##### 定义\n", + "如果有两个矩阵 $ A $ 和 $ B $,其中 $ A $ 是一个 $ m \\times n $ 矩阵,$ B $ 是一个 $ n \\times p $ 矩阵,那么它们的乘积 $ C = AB $ 是一个 $ m \\times p $ 矩阵。结果矩阵 $ C $ 中的每个元素 $ c_{ij} $ 是通过取 $ A $ 的第 $ i $ 行和 $ B $ 的第 $ j $ 列的点积得到的。\n", + "\n", + "##### 数学表示\n", + "假设矩阵 $ A $ 是:\n", + "$$\n", + "A = \\begin{bmatrix}\n", + "a_{11} & a_{12} & \\cdots & a_{1n} \\\\\n", + "a_{21} & a_{22} & \\cdots & a_{2n} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "a_{m1} & a_{m2} & \\cdots & a_{mn}\n", + "\\end{bmatrix} \n", + "$$\n", + "\n", + "矩阵 $ B $ 是:\n", + "$$\n", + "B = \\begin{bmatrix}\n", + "b_{11} & b_{12} & \\cdots & b_{1p} \\\\\n", + "b_{21} & b_{22} & \\cdots & b_{2p} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "b_{n1} & b_{n2} & \\cdots & b_{np}\n", + "\\end{bmatrix} \n", + "$$\n", + "那么它们的乘积 $ C = AB $ 是:\n", + "\n", + "$$\n", + "C = \\begin{bmatrix}\n", + "c_{11} & c_{12} & \\cdots & c_{1p} \\\\\n", + "c_{21} & c_{22} & \\cdots & c_{2p} \\\\\n", + "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", + "c_{m1} & c_{m2} & \\cdots & c_{mp}\n", + "\\end{bmatrix} \n", + "$$\n", + "\n", + "其中每个元素 $ c_{ij} $ 计算为:\n", + "$ c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \\cdots + a_{in}b_{nj} = \\sum_{k=1}^{n} a_{ik}b_{kj} $\n", + "\n", + "##### 性质\n", + "1. **结合律**:$ (AB)C = A(BC) $。\n", + "2. **分配律**:$ A(B + C) = AB + AC $ 和 $ (A + B)C = AC + BC $。\n", + "3. **非交换律**:一般情况下,$ AB \\neq BA $。\n", + "\n", + "**示例**\n", + "\n", + "对于矩阵$A =\\begin{bmatrix}\n", + "a_{11} & a_{12} & a_{13} \\\\\n", + "a_{21} & a_{22} & a_{23} \\\\\n", + "\\end{bmatrix}, B =\\begin{bmatrix}\n", + "b_{11} & b_{12} \\\\\n", + "b_{21} & b_{22} \\\\\n", + "b_{31} & b_{32} \\\\\n", + "\\end{bmatrix},求C=A \\times B$\n", + "\n", + "解:\n", + "\n", + "$\n", + "C=A \\times B=\\begin{bmatrix}\n", + "a_{11} \\times b_{11} + a_{12} \\times b_{21} + a_{13} \\times b_{31} & a_{11} \\times b_{12} + a_{12} \\times b_{22} + a_{13} \\times b_{32}\\\\\n", + "a_{21} \\times b_{11} + a_{22} \\times b_{21} + a_{23} \\times b_{31} & a_{21} \\times b_{12} + a_{22} \\times b_{22} + a_{23} \\times b_{32} \\\\\n", + "\\end{bmatrix}\n", + "$\n" + ] + }, + { + "cell_type": "markdown", + "id": "62ea3dff-fa08-4018-8ef8-3b810a9a6fea", + "metadata": {}, + "source": [ + "### 矩阵的基本性质" + ] + }, + { + "cell_type": "markdown", + "id": "6558647a-8570-476d-b8d0-394411199f83", + "metadata": {}, + "source": [ + "#### 矩阵的逆\n", + "\n", + "矩阵的逆是线性代数中的一个概念,它指的是一个方阵(即行数和列数相等的矩阵),当与另一个矩阵相乘时,能够得到单位矩阵。如果存在这样一个矩阵,那么这个矩阵被称为原矩阵的逆矩阵。\n", + "\n", + "##### 定义\n", + "对于一个 $ n \\times n $ 的方阵 $ A $,如果存在一个 $ n \\times n $ 的矩阵 $ B $,使得:\n", + "$ AB = BA = I_n $\n", + "其中 $ I_n $ 是 $ n \\times n $ 的单位矩阵,那么 $ B $ 被称为 $ A $ 的逆矩阵,记作 $ A^{-1} $。\n", + "\n", + "##### 性质\n", + "1. **唯一性**:如果一个矩阵的逆存在,那么它是唯一的。\n", + "2. **非所有矩阵都有逆**:只有方阵可能有逆,而且不是所有方阵都有逆。一个方阵有逆的充分必要条件是其行列式非零(即 $ \\det(A) \\neq 0 $)。\n", + "3. **乘积的逆**:如果 $ A $ 和 $ B $ 都是可逆矩阵,那么它们的乘积 $ AB $ 也是可逆的,并且 $ (AB)^{-1} = B^{-1}A^{-1} $。\n", + "4. **转置的逆**:如果 $ A $ 是可逆的,那么它的转置 $ A^T $ 也是可逆的,并且 $ (A^T)^{-1} = (A^{-1})^T $。\n", + "\n", + "##### 求逆矩阵的方法\n", + "1. **高斯-若尔当消元法**:通过将矩阵 $ A $ 与单位矩阵 $ I_n $ 增广,然后执行行变换,将 $ A $ 转换为单位矩阵,同时将 $ I_n $ 转换为 $ A^{-1} $。\n", + "2. **伴随矩阵法**:对于较小的矩阵,可以通过计算 $ A $ 的行列式和伴随矩阵,然后使用公式 $ A^{-1} = \\frac{1}{\\det(A)} \\text{adj}(A) $ 来求逆。" + ] + }, + { + "cell_type": "markdown", + "id": "f9858ea7-7f27-48a4-90e3-0950ae439642", + "metadata": {}, + "source": [ + "#### 计算$2 \\times 2$矩阵的逆" + ] + }, + { + "cell_type": "markdown", + "id": "ea8c8d21-dc80-4749-9f7e-e709869adeb0", + "metadata": {}, + "source": [ + "要计算一个 $2 \\times 2$ 矩阵的逆,可以使用以下公式。假设矩阵 $ A $ 是:\n", + "$$ A = \\begin{bmatrix}\n", + "a & b \\\\\n", + "c & d\n", + "\\end{bmatrix} $$\n", + "\n", + "矩阵 $ A $ 的逆,记作 $ A^{-1} $,由下式给出:\n", + "$$ A^{-1} = \\frac{1}{ad - bc} \\begin{bmatrix}\n", + "d & -b \\\\\n", + "-c & a\n", + "\\end{bmatrix} $$\n", + "其中 $ ad - bc $ 是矩阵 $ A $ 的行列式。行列式必须非零,矩阵才有逆。\n", + "\n", + "**步骤:**\n", + "\n", + "1. **计算行列式**:\n", + " $ \\det(A) = ad - bc $\n", + " 如果行列式为零,则矩阵没有逆。\n", + "\n", + "2. **形成伴随矩阵**:\n", + " 对于 $2 \\times 2$ 矩阵,伴随矩阵是:\n", + " $ \\text{adj}(A) = \\begin{bmatrix}\n", + " d & -b \\\\\n", + " -c & a\n", + " \\end{bmatrix} $\n", + "\n", + "3. **计算逆矩阵**:\n", + " $ A^{-1} = \\frac{1}{\\det(A)} \\text{adj}(A) = \\frac{1}{ad - bc} \\begin{bmatrix}\n", + " d & -b \\\\\n", + " -c & a\n", + " \\end{bmatrix} $\n", + "\n", + "**示例:**\n", + "考虑矩阵:\n", + "\n", + "$$ A = \\begin{bmatrix}\n", + "1 & 2 \\\\\n", + "3 & 4\n", + "\\end{bmatrix} $$\n", + "\n", + "1. **计算行列式**:\n", + " $ \\det(A) = (1)(4) - (2)(3) = 4 - 6 = -2 $\n", + "\n", + "2. **形成伴随矩阵**:\n", + " $ \\text{adj}(A) = \\begin{bmatrix}\n", + " 4 & -2 \\\\\n", + " -3 & 1\n", + " \\end{bmatrix} $\n", + "\n", + "3. **计算逆矩阵**:\n", + " $ A^{-1} = \\frac{1}{-2} \\begin{bmatrix}\n", + " 4 & -2 \\\\\n", + " -3 & 1\n", + " \\end{bmatrix} = \\begin{bmatrix}\n", + " -2 & 1 \\\\\n", + " 1.5 & -0.5\n", + " \\end{bmatrix} $\n", + "\n", + "因此,矩阵 $ A $ 的逆是:\n", + "$$ A^{-1} = \\begin{bmatrix}\n", + "-2 & 1 \\\\\n", + "1.5 & -0.5\n", + "\\end{bmatrix} $$\n", + "\n", + "这个过程展示了如何计算一个 $2 \\times 2$ 矩阵的逆。对于更大的矩阵,可以使用更高级的方法,如高斯-若尔当消元法或伴随矩阵法。\n" + ] + }, + { + "cell_type": "markdown", + "id": "5d77a0fc-5558-4eb6-8e6a-79209b7ca341", + "metadata": {}, + "source": [ + "#### 矩阵的线性相关和无关\n", + "\n", + "在线性代数中,向量(或矩阵的列)的线性相关性和线性无关性是描述向量集合之间关系的重要概念。\n", + "\n", + "##### 线性无关(Linear Independence)\n", + "如果一组向量集合中的任何一个向量不能被其他向量的线性组合所表示,那么这组向量就是线性无关的。换句话说,如果只有当所有系数都为零时,这些向量的线性组合才能等于零向量,那么这些向量就是线性无关的。\n", + "\n", + "数学上,对于向量集合 $\\{v_1, v_2, ..., v_n\\}$,如果方程\n", + "$ c_1v_1 + c_2v_2 + ... + c_nv_n = 0 $\n", + "的解只有 $ c_1 = c_2 = ... = c_n = 0 $,那么这些向量就是线性无关的。\n", + "\n", + "##### 线性相关(Linear Dependence)\n", + "如果至少有一个向量可以被其他向量的线性组合所表示,那么这组向量就是线性相关的。这意味着存在非零系数,使得这些向量的线性组合等于零向量。\n", + "\n", + "数学上,对于向量集合 $\\{v_1, v_2, ..., v_n\\}$,如果存在非零系数 $ c_1, c_2, ..., c_n $ 使得\n", + "$ c_1v_1 + c_2v_2 + ... + c_nv_n = 0 $ 那么这些向量就是线性相关的。\n", + "\n", + "比如行向量$x_1=(1,2,3),x_2=(2,6,4),x3=(4, 11,9)$是线性相关的,因为存在非全零$c_1,c_2,c_3$使得 $c_1x_1+c_2x_2+c_3x_3=0$,例如$2x_1+3x_2−2x_3=0$,即$(2,4,6)+(6,18,12)−(8,22,18)=0$" + ] + }, + { + "cell_type": "markdown", + "id": "31b63714-6ecb-45ba-a500-0ecbff8961ae", + "metadata": {}, + "source": [ + "#### 矩阵的秩\n", + "\n", + "矩阵的秩(Rank of a Matrix)是线性代数中的一个核心概念,它描述了矩阵中行向量或列向量所张成的向量空间的维度。矩阵的秩提供了关于矩阵线性独立行或列的信息,是衡量矩阵“大小”或“复杂度”的一个重要指标。\n", + "\n", + "##### 定义\n", + "矩阵 $ A $ 的秩,记作 $ \\text{rank}(A) $,是 $ A $ 中线性无关的行向量或列向量的最大数量。这意味着它是矩阵中行或列的最大线性无关组的大小。\n", + "\n", + "##### 计算方法\n", + "1. **行阶梯形**:\n", + " 将矩阵转换为行阶梯形(或简化行阶梯形),然后计算非零行的数量。这个数量就是矩阵的秩。\n", + "\n", + "2. **列空间**:\n", + " 考虑矩阵的所有列,找出其中线性无关的列的最大数量。这个数量也是矩阵的秩。\n", + "\n", + "3. **行列式**:\n", + " 对于方阵,可以通过计算其子矩阵的行列式来确定秩。如果最大的非零子行列式的阶数是 $ r $,那么矩阵的秩是 $ r $。\n", + "\n", + "##### 性质\n", + "1. **秩与零度**:\n", + " 对于 $ m \\times n $ 矩阵 $ A $,秩-零度定理表明 $ A $ 的秩加上 $ A $ 的零度($ A $ 的零空间的维度)等于 $ n $。\n", + "\n", + "2. **秩与线性变换**:\n", + " 矩阵的秩可以被解释为由矩阵表示的线性变换的像的维度。\n", + "\n", + "3. **秩与可逆性**:\n", + " 方阵 $ A $ 可逆当且仅当它的秩等于它的行数(或列数),即 $ \\text{rank}(A) = n $。" + ] + }, + { + "cell_type": "markdown", + "id": "16fad7fc-d620-412b-9c79-bdfddae12014", + "metadata": {}, + "source": [ + "#### 矩阵的行列式" + ] + }, + { + "cell_type": "markdown", + "id": "7eb3e1da-8cd1-4a9b-9e07-ede578d3c3d9", + "metadata": {}, + "source": [ + "矩阵的行列式是一个标量值,可以从方阵的元素计算出来,反映矩阵的某些重要性质和特征。行列式在数学、物理和工程中有广泛的应用,特别是在解线性方程组、研究线性变换和特征值问题中。\n", + "\n", + "### 定义\n", + "对于一个 $ n \\times n $ 的方阵 $ A $,行列式是一个标量值,记作 $ \\det(A) $ 或 $ |A| $。\n", + "\n", + "### 计算方法\n", + "行列式的计算方法取决于矩阵的大小:\n", + "\n", + "1. **对于 $ 2 \\times 2 $ 矩阵**:\n", + " $$ A = \\begin{bmatrix}\n", + " a & b \\\\\n", + " c & d\n", + " \\end{bmatrix} $$\n", + " 行列式计算为:\n", + " $$ \\det(A) = ad - bc $$\n", + "\n", + "2. **对于 $ 3 \\times 3 $ 矩阵**:\n", + " $$ A = \\begin{bmatrix}\n", + " a & b & c \\\\\n", + " d & e & f \\\\\n", + " g & h & i\n", + " \\end{bmatrix} $$\n", + " 行列式计算为:\n", + " $$ \\det(A) = a(ei - fh) - b(di - fg) + c(dh - eg) $$\n", + "\n", + "3. **对于更大的矩阵**:\n", + " 可以使用余子式展开(拉普拉斯展开)来计算行列式。对于 $ n \\times n $ 矩阵,选择任意一行或一列,行列式可以表示为该行(列)中每个元素与其对应的余子式的乘积之和。\n", + "\n", + "### 性质\n", + "行列式具有以下一些重要性质:\n", + "1. **多线性和交替**:行列式是多线性的,意味着在每一行(列)中,它线性地依赖于其他行(列)的元素,并且是交替的,意味着交换任意两行(列)会改变行列式的符号。\n", + "2. **单位矩阵的行列式**:单位矩阵的行列式为1。\n", + "3. **逆矩阵的行列式**:如果矩阵 $ A $ 可逆,那么 $ A^{-1} $ 的行列式是 $ A $ 行列式的倒数。\n", + "4. **矩阵乘积的行列式**:两个矩阵乘积的行列式等于它们行列式的乘积,即 $ \\det(AB) = \\det(A) \\det(B) $。\n", + "5. **行列式与体积**:对于 $ 3 \\times 3 $ 矩阵,行列式的绝对值表示由矩阵表示的线性变换改变的体积的缩放因子。\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5981f7f3-5cb4-43da-95b3-c6b9499f0ff1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/mkdocs.yml b/mkdocs.yml index 477218e..a7769f3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -215,6 +215,8 @@ nav: - 【英文】What every systems programmer should know about concurrency: what-should-you-know/concurrency-primer.pdf - 【中文】每个系统程序员都应该了解的并发知识: https://www.bilibili.com/read/cv26734224 - 【机翻中文】每个系统程序员都应该了解的并发知识: what-should-you-know/每个系统程序员都应该了解的并发知识.md + - 数据科学: + - 初中到大学的数学知识梳理: data-science/初中到大学的数学知识梳理.ipynb - 教程: - Jupyter: - Go-Frameworks-Github-Fork-Stats: jupyter/Go-Frameworks-Github-Fork-Stats.ipynb